| 注册
home doc ppt pdf
请输入搜索内容

热门搜索

年终总结个人简历事迹材料租赁合同演讲稿项目管理职场社交

模拟进程创建、终止、阻塞、唤醒原语操作系统原理

文***品

贡献于2020-12-21

字数:6220







操作系统原理




题 目:模拟进程创建终止阻塞唤醒原语
院 (部): 理工程学院
专 业: 信息理信息系统
班 级: 信
姓 名:
学 号:







实验题目:模拟进程创建终止阻塞唤醒原语
题目类型:必做题目
二实验目:通设计调试创建终止阻塞唤醒原语功助操作系统中进程控制功理解掌握操作系统模块设计方法工作原理
三实验环境:
1硬件:pc机兼容机
2软件:Windows OSTurbo CC++VC++VSnetJava等
四实验容:
1设计创建终止阻塞唤醒原语功函数
2设计函数采菜单结构(参见面出流程图)
3设计显示队列函数目绪阻塞队列中进程信息显示屏幕供时查队列中进程变化情况
五算法流程图
开始


系统菜单
1…创建
2…阻塞
3…唤醒
4…终止
5…显示
0…退出
请输入您需功(0-5):

输入选择?


5
4
3
2
1
0


退出
创建
阻塞
唤醒
终止
显示


结束


六程序清单
#include
#include
struct pcb
{
char name[10]
int status
int order
int time
int wtime
int ytime
}pcb[11]该结构体存储已输入进程
struct ghost
{
char name[10]
int status
int order
int time
}ghost[11]该结构体优先级调度时进程优先级排序
char a_name[10]
int i0ya0xzjilu
void insert()
void block()
void rouse()
void stop()
void outPut()
void control()实验二添加函数
void order_control()实验二添加函数
void time_control()实验二添加函数
void insert()
{
jilu0jilu判断变量重复时进行判断跳
if(i>10)
printf(进程已存10法继续添加进程\n)
else
{
printf(请输入插入pcb数\n)
printf(1进程名)
scanf(s&pcb[i]name)
printf(2该进程优先级(110))
scanf(d&pcb[i]order)
printf(3运行时间)
scanf(d&pcb[i]time)

for(y0y {
if (strcmp(pcb[i]namepcb[y]name)0)
{
printf(您输入进程名已存请重新输入\n)
jiluy+1
}

}
if(jilu>0)jilu0
else
{
printf(输入已完成\n您输入数\n进程名 s\n优先级 d\n运行时间 d\npcb[i]namepcb[i]orderpcb[i]time)
printf(\n)
strcpy(ghost[i]namepcb[i]name)
ghost[i]orderpcb[i]order
ghost[i]timepcb[i]time
pcb[i]status1
ghost[i]status1
pcb[i]wtimepcb[i]time
pcb[i]ytime0
i++
}
}
}
void block()
{
int m
printf(\n请输入您改变状态进程进程名 )
scanf(s&a_name)
for(y0y {
if(strcmp(pcb[y]namea_name)0)
{
a1
if(pcb[y]status0)
{
printf(您修改进程已阻塞状态法更改\n)

}
if(pcb[y]status2)
{
pcb[y]status0
for(m0m {
if(strcmp(ghost[m]namea_name)0)
{
ghost[m]status0
}
}
printf(操作已完成进程成功改阻塞状态\n)

}
}
}
if(a0)
{
printf(起您查找进程名存\n)
}
a0
}
void rouse()
{
int m
printf(\n请输入您改变状态进程进程名 )
scanf(s&a_name)
for(y0y {
if(strcmp(pcb[y]namea_name)0)
{
a1
if(pcb[y]status1)
{
printf(您修改进程已绪状态法更改\n)
break
}
if(pcb[y]status0)
{
pcb[y]status1
for(m0m {
if(strcmp(ghost[m]namea_name)0)
{
ghost[m]status1
}
}
printf(操作已完成进程成功改运行状态\n)
break
}
}
}
if(a0)
{
printf(起您查找进程名存\n)
}
a0
}
void stop()
{
printf(\n请输入您改变状态进程进程名 )
scanf(s&a_name)
for(y0y {
if(strcmp(pcb[y]namea_name)0)
{
a1
for(y {
pcb[y]pcb[y+1]
}
i
printf(操作已完成进程成功删\n)
break
}
}
if(a0)
{
printf(起您查找进程名存\n)
}
a0
}
void outPut()
{
if(i0)
{
printf(起没进程存法显示\n)
}
else
{
printf(\n\n 已存进程分(状态2表示正运行1表示绪0表示阻塞)\n)
for(y0y {
if(pcb[y]status3)printf(进程d 进程名 s 状态 d\ny+1pcb[y]namepcb[y]status)
}
}
}
void control()
{
for(1)
{
printf(进程调度子菜单\n0 返回菜单\n1 优先级调度\n2 时间片轮转调度\n请输入您想进行操作指令 : )
scanf(d&x)
if(x0)
break
switch(x)
{
case 0
break
case 1
order_control()
break
case 2
time_control()
break
default
printf(您输入指令误请重新输入\n)
break
}
}
}
void order_control()
{
int jishiCPU运行时间计时
jishi0
char panduan1panduan2判断否继续调度
struct ghost jiaohuan
int ggbl
for(gg0gg {
if(pcb[gg]status2)
{
for(bl0bl {
if(strcmp(ghost[bl]namepcb[gg]name)0)
{
ghost[bl]status2
}
}
}
}
for(x0x {
for(yx+1y {
if(ghost[x]order {
jiaohuanghost[x]
ghost[x]ghost[y]
ghost[y]jiaohuan
}
}
}语句根优先级进程排序
printf(\n\n优先级调度进程具体容\n)
for(x0x {
if(ghost[x]status1){

printf(正运行进程 s\n优先级 d\n运行时间 d\n\n\nghost[x]nameghost[x]orderghost[x]time)

for(y0y {
if(strcmp(pcb[y]nameghost[x]name)0)
{
pcb[y]status2
ghost[x]status2
}
}该语句更改结构体进程状态
printf(否继续运行直进程运行完毕(YN))
scanf(s&panduan1)
if(panduan1'Y'||panduan1'y')
{
if(ghost[x]status2)
{
jishijishi+ghost[x]time
printf(CPU运行时间 d 进程 s 运行完毕正关闭\njishighost[x]name)
for(y0y {
if(strcmp(pcb[y]nameghost[x]name)0)
{
pcb[y]status3
ghost[x]status3
}
}该语句更改结构体进程状态
if(x(i1))
{
printf(进程全部运行完毕\n\n)
}
else{
printf(\n否继续调度(yn))
scanf(s&panduan2)
if(panduan2'N'||panduan2'n')break}
}}else break
}
}printf(果输出容请检查绪队列否存进程)
}
void time_control()
{
int zkz1kz2kz3kz4kz5kz6kz1表示时间片运行时间计时kz2表示CPU运行总时间kz3进程时间输出kz4表示已完成进程数kz5表示状态绪进程数kz6更改ghost状态值
z0kz20kz40kz50
for(y0y {
if(pcb[y]status1)
{
kz5kz5+1
}
}
printf(\n\n请输入时间片长度 )
scanf(d&x)
printf(\n\n时间片轮转调度进程具体容\n)
if(kz50)
{
for(kz4 {
for(y0y {
if(pcb[y]status1||pcb[y]status2)
{
for(kz10kz1 {
if(pcb[y]status1||pcb[y]status2){
kz2kz2+1
pcb[y]wtimepcb[y]wtime1
pcb[y]ytimepcb[y]ytime+1
printf(CPU运行时间 d 正运行进程 s\nkz2pcb[y]name)
printf(进程名 已运行时间 未运行时间 求运行时间\n)
for(kz30kz3 {
if(pcb[kz3]status1||pcb[kz3]status2)
{
printf(s12d12d12d\npcb[kz3]namepcb[kz3]ytimepcb[kz3]wtimepcb[kz3]time)
}
}
if(pcb[y]wtime<0&&pcb[y]status3)
{
printf(进程 s 运行完毕正关闭\n\npcb[y]name)
kz4kz4+1
pcb[y]status3
for(kz60kz6 {
if(strcmp(ghost[kz6]namepcb[y]name)0)
{
ghost[kz6]status3
}
}
kz1x
break
}
printf(\n)
}}
}
}
}
}
printf(注意:果未输出程请检查绪列表否存进程\n)
}
void main()
{
char c
for(1)
{
printf(系统菜单\n)
printf(1创建\n)
printf(2阻塞\n)
printf(3唤醒\n)
printf(4终止\n )
printf(5显示\n)
printf(6调度\n)
printf(0退出\n)
printf(请输入操作指令 )
if(scanf(d&x))
{
if(x0)
break
switch(x)
{
case 1
insert()
break
case 2
block()
break
case 3
rouse()
break
case 4
stop()
break
case 5
outPut()
break
case 6
control()
break
case 0
break
default
printf(格式非法请重新输入\n)
break
}
}
else if(scanf(c&c))
{
printf(格式非法请重新输入\n)
}
}
}
七程序中数结构符号说明
struct pcb
{
char name[10]
int status
int order
int time
int wtime
int ytime
}pcb[11]该结构体存储已输入进程
struct ghost
{
char name[10]
int status
int order
int time
}ghost[11]该结构体优先级调度时进程优先级排序
void insert()添加进程
void block()阻塞进程
void rouse()唤醒进程
void stop()删进程
void outPut()输出
void control()实验二添加函数
void order_control()实验二添加函数
void time_control()实验二添加函数
八调试程序时出现问题解决方法
问题:
现象:阻塞功输出功法正常显示进程状态
解决:进程结构体中添加控制进程状态变量
文档香网(httpswwwxiangdangnet)户传

《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 2 香币 [ 分享文档获得香币 ]

该文档为用户出售和定价!

购买文档

相关文档

操作系统课外实践报告Linux进程管理

操作系统课外实践报告项 目 名 称: Linux 进程管理 所 在 班 级: 软件工程(10.Net) 小 组 成 员: 指 导 教 师:

z***u 1年前 上传319   0

操作系统进程管理实验报告

操作系统进程管理实验报告实验一 进程管理1.实验目的:(1)加深对进程概念的理解,明确进程和程序的区别;(2)进一步认识并发执行的实质;(3)分析进程争用资源的现象,学习解决进程互斥的方法;(4)了解Linux系统中进程通信的基本原理。2.实验预备内容(1)阅读Linux的sched.h源码文件,加深对进程管理概念的理解;(2)阅读Linux的fork()源码文件,分析进程的

文***享 1年前 上传377   0

操作系统精髓与设计原理课后答案

操作系统精髓与设计原理课后答案 第1章 计算机系统概述 1.1 列出并简要地定义计算机的四个主要组成部分。 主存储器,存储数据和程序;算术逻辑单元,能处理二进制数据;控制单元,解读存储器中的指令并且使他们得到执行;输入/输出设备,由控制单元管理。 1.2 定义处理器寄存器的两种主要类别。 用户可见寄存器:优先使用这些寄存器,可以使机器语言或者汇编语言的程序员减少对主存储器的访问次

n***s 5年前 上传1481   0

进程调度算法的实现计算机操作系统课程设计

题目2 进程调度算法的实现2.1 题目的主要研究内容及预期达到的目标(1)设计进程控制块; (2)设计多个进程队列; (3)设计多个进程(≥20); (4)动态生成时间片、执行时间和优先级,将这些信息输出至文件中; (5)设计基于时间片的多优先级调度算法; (6)动态调度,并把所有调度信息输出至文件中。(7)理解进程调度相关理论;(8)掌握时间片调度原理;(9)掌握高优先级

文***品 3年前 上传587   0

唤醒心灵

唤醒心灵——谈品德后进生的自我教育曾经在一本杂志上看到过这么一则触目惊心的报道:我国现有在校后进生人数超过5000万,相当于一个法国、十个瑞士的人口。这一惊人的数字不禁让我反思现在的教育现状:很多孩子盲目反抗、不诚实、易冲动、有很强大的攻击性、小皇帝脾气严重……这些品德后进生的教育刻不容缓!其实,对每个班主任来说,如何教育品德后进也一直是一大难题。一般的教育很难触及学生的灵魂深处,走

小***9 10年前 上传519   0

交通阻塞

交通阻塞交通阻塞道具:比参加人数多一个塑胶地垫说明:1、将塑胶地垫呈一字型在地上铺开,让学员全部站在地垫上,留中间一个地垫不站人;2、学员分成两边相对而站,通过中间的空格进行移动,3、移动的方式是只能前进一格或跳一格,不能后退4、完成两边人的互换,并且大家维持同一个方向。规则:1、学员只能前进不能后退,只要有人后退就要重来2、当有人知道答案时,我们要每个人

f***t 11年前 上传375   0

操作系统课程设计银行家算法的模拟实现

操作系统课程设计报告专业计算机科学与技术学生姓名班级学号指导教师完成日期信息工程学院题目: 银行家算法的模拟实现 一、设计目的本课程设计是学习完“操作系统原理”课程后进行的一次全面的综合训练,通过课程设计,更好地掌握操作系统的原理及实现方法,加深对操作系统基础理论和重要算法的理解,加强学生的动手能力。

文***品 3年前 上传688   0

机械原理模拟题

机械原理模拟题01一、选择题(共20分.每题2分)1.一般门与门框之间有两个铰链.这应为(C)。A复合铰链B 局部自由度 C 虚约束2.某机构中有6个构件.则该机构的全部瞬心的数目为(D)。A 3 B 6 C 9 D 15 3.若分布于回转件上的各个质量的离心惯性力的向量和为零.该回转件上是(A)回转件。A静平衡 B动平衡C静平衡但动不平衡4.在机械系统速度波动的一个

z***u 1年前 上传321   0

唤醒“沉睡”的教师

 唤醒“沉睡”的教师      作者简介:王海彦,37岁,内蒙古民族师范学院毕业,大学本科,中学高级教师,内蒙古毕拉河林业局中学副校长,内蒙古森工集团骨干教师,英语学科带头人,多年来一直工作在教学一线,承担英语教学工作。中国阅读学研究会会员,《语文报》特约编辑,《学习报》特约编辑,《语文周报》特约编辑、大兴安岭林区外语教学研究会理事,多年来受林业局及以上表彰17次,有十多篇论

j***i 10年前 上传427   0

备战操作系统

操作系统 操作系统概念:操作系统是控制其他程序运行,管理资源并为用户提供操作界面的系统软件的集合。 操作系统的功能有:处理机管理、存储管理、外围设备管理(又称I/0设备管理)、文件管理和操作系统接口 操作系统的基本特征有:异步性、虚拟性、并发性和共享性 进程 进程的概念:进程是一个可拥有资源的独立单位,又是一个可独立和分配的基本单位。 进程的组成:由程序段,相关的数据段和进程控制块(

t***u 9年前 上传7535   0

操作系统实验(进程调度+存储管理+磁盘调度++银行家算法+文件系统设计)

操作系统实验(进程调度+存储管理+磁盘调度++银行家算法+文件系统设计)实验三 进程调度一、 实验目的多道程序设计中,经常是若干个进程同时处于就绪状态,必须依照某种策略来决定那个进程优先占有处理机。因而引起进程调度。本实验模拟在单处理机情况下的处理机调度问题,加深对进程调度的理解。二、 实验要求1. 设计进程调度算法,进程数不定2. 包含几种调度算法,并加以实现3. 输出进程的调度

文***享 3年前 上传645   0

毕业实习进程安排

毕业实习进程安排  为进一步加强毕业实习管理工作,根据学院统一部署,现就管理系电子商务、公共事业管理专  业专科毕业实习计划安排如下:  一、XX-XX学年度第一学期   1、第4周前 完成提前毕业学生的统计及相关手续的办理。  2、第5-8周 各教研室与实习单位、实习基地的联系安排。  2、第9-10周 明确实习指导教师,毕业实习动员大会。  3、第11-12周 集

a***6 9年前 上传678   0

测量实习进程记录

测量实习进程记录  时间  组长  赵宗元  组别  第八组  组员  张雪、张震、周伟平、朱文超  7月11日  全体组员到实验室领取测量实习所需要的仪器。  在领取完仪器后,全体组员参与对经纬仪和水准仪的检校。  下午4点,张雪、张震、赵宗元、朱文超到建专校区确定六个控制点的位置,并进行了图根水准测量和距离测量。其中,大家分别读取过部分控制点的数据

肉***酱 10年前 上传654   0

恒星演化进程

人类世世代代生活在地球上,千百年来人们一直在思索,我们从何而来,我们为什么存在。随着科技水平的不断发展,人类对于我们这个世界的认识也越来越深刻,越来越清晰。现在我们已经知道,我们生存的地球围绕着太阳做周而复始的运动,也正是太阳,为我们的生命活动提供了能源和动力。也许有很多人还不知道,太阳其实就是一颗恒星,我们现在来说一下恒星的形成和演化。

曹***茂 4年前 上传1047   0

ccs总体进程

2006年2月ccs总体进程工作项目12345678910111213141516171819202122232425262728大纲设计收集资料

会***0 9年前 上传505   0

员工终止合同程序

   { 打印 }   本文档由香当网(https://www.xiangdang.net)用户上传

e***x 7年前 上传2860   0

终止收养契约

终止收养契约  立约人_________(以下简称甲方)于_________年_________月间收养_________(以下简称乙方)为养女,现在双方同意终止收养关系,并约定条款如下:  1.自本约成立起双方即无收养关系,乙方并回复本姓。  2.甲乙双方私人负债各自负责。  3.本约自双方签字后生效,各执一纸为证。  甲方(签字):_________        乙方(

老***1 12年前 上传769   0

终止收养契约

终止收养契约   立约人 (以下简称甲方)于 年 月间收养 (以下简称乙方)为养女,现在双方同意终止收养关系,并约定条款如下:   1.自本约成立起双方即无收养关系,乙方并回复本姓。   2.甲乙双方私人负债各自负责。   3.本约自双方签字后生效,各执一纸为证。

n***p 13年前 上传4598   0

终止合同书样本

终止合同书样本  ______同志,于______年___月___日进入本单位,原身份为优秀运动队运动员。根据国家及我省的有关规定,经本人申请,单位研究决定,于______年___月___日起与       同志(终止或解除)聘用关系。  特此证明。  单位(盖章)  法定代表人(签字盖章)  (或委托代理人)  年    月    日本文档由香当网(https://

l***1 11年前 上传723   0

交通阻塞应急处置预案

  为规范公路交通阻断的应急处理工作,落实信息报送工作,提高公路交通应急保障和公共服务能力,特成立应急领导小组名单,制定交通阻塞应急处置预案领导小组如下: 组  长:*** 副组长:***    *** 成  员:***   ***   ***   ***                   1、由于公路养护施工、重大社会活动等计划性事件或自然灾害、事故灾难、公共卫生事件、社会安全事

路***政 14年前 上传15953   0

操作系统习题及答案

操作系统习题与答案(经典型)第一章 引言(一)单项选择题1操作系统是计算机系统的一种( B )。A.应用软件 B.系统软件 c.通用软件 D.工具软件2.操作系统目的是提供一个供其他程序执行的良好环境,因此它必须使计算机(D ) A.使用方便 B.高效工作 C.合理使用资源 D.使用方便并高效工作3.允许多个用户以交互方式使用计算机的操作系统是( A )。 A.

文***品 3年前 上传847   0

高级操作系统试题

高级操作系统试题2.请求驱动式令牌传递方法中,若pi发出request消息后久未获得Token,该怎么处理?若引 入时戳,该算法应做何修改?答:在请求驱动式令牌传递方法中,或pi发出的request消息后久未获得Token,应该决定是站点故障还是Token丢失,需要有对应逻辑环重构方法和Token生成方法。可以引入时时戳增加算法的强健性,具体如下:(1)当request消息后久未获得

文***品 4年前 上传903   0

《操作系统》在线作业

《操作系统》在线作业

学***询 4年前 上传3332   0

操作系统实验心得

操作系统实验心得  每一次课程设计度让我学到了在平时课堂不可能学到的东西。所以我对每一次课程设计的机会都非常珍惜。不一定我的课程设计能够完成得有多么完美,但是我总是很投入的去研究去学习。所以在这两周的课设中,熬了2个通宵,生物钟也严重错乱了。但是每完成一个任务我都兴奋不已。一开始任务是任务,到后面任务就成了自己的作品了。总体而言我的课设算是达到了老师的基本要求。总结一下有以下体会。  1

薛***帅 12年前 上传984   0

操作系统知识整理

操作系统是位于硬件层之上,所有其他系统软件层之下的一个系统软件,使得管理系统中的各种软件和硬件资源得以充分利用,方便用户使用计算机系统。

q***t 5年前 上传1686   0