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

上传人:博****1 文档编号:498160182 上传时间:2023-12-31 格式:DOC 页数:19 大小:715.50KB
返回 下载 相关 举报
模拟进程创建、终止、阻塞、唤醒原语-操作系统原理_第1页
第1页 / 共19页
模拟进程创建、终止、阻塞、唤醒原语-操作系统原理_第2页
第2页 / 共19页
模拟进程创建、终止、阻塞、唤醒原语-操作系统原理_第3页
第3页 / 共19页
模拟进程创建、终止、阻塞、唤醒原语-操作系统原理_第4页
第4页 / 共19页
模拟进程创建、终止、阻塞、唤醒原语-操作系统原理_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《模拟进程创建、终止、阻塞、唤醒原语-操作系统原理》由会员分享,可在线阅读,更多相关《模拟进程创建、终止、阻塞、唤醒原语-操作系统原理(19页珍藏版)》请在金锄头文库上搜索。

1、操作系统原理题 目:模拟进程创立、终结、阻塞、唤醒原语院 (部): 管理工程学院专 业: 信息管理与信息系统班 级: 信管131姓 名: 栾庆一学 号: 16027实验题目一:模拟进程创立、终结、阻塞、唤醒原语一、题目类型:必做题目。二、实验目的:通过设计并调试创立、终结、阻塞、唤醒原语功能,有助于对操作系统中进程控制功能的理解,掌握操作系统模块的设计措施和工作原理。三、实验环境:1、硬件:p机及其兼容机。、软件:WindwsO,ro或+、VC+、S.net、aa等。四、实验内容:1、设计创立、终结、阻塞、唤醒原语功能函数。2、设计主函数,采用菜单构造(参见背面给出的流程图)。、设计“显示队列

2、”函数,目的能将就绪、阻塞队列中的进程信息显示在屏幕上,以供随时查看各队列中进程的变化状况。五、算法流程图 开始系统主菜单1创立阻塞3唤醒4终结5显示0退出请输入您需要的功能(05):输入选择=?543210退出创立阻塞唤醒终结显示结束六、程序清单#include icle tu ccha ame10;intsttus;nt rer;int time; nwtime; itytime;c1;/该构造体用于存储已经输入的进程struct char ne10;ntsau;ntoer;ttme;ghos11;/该构造体用于优先级调度时,进程的优先级排序hr a_ne1;in=0,y,0,x,z,ji

3、;voiinsert();oid ck();void os();oid top();vioutu();voi cnro();/实验二添加函数vod orr_cntrol();/实验二添加函数oid time_conto();/实验二添加函数void insert()jl=;/jilu是一种用于判断的变量,在反复时进行判断跳过if(i=10)prinf(进程已经存在1个,无法继续添加进程n);else prinf(请输入插入pb的数据:n);prinf(、进程名:);sn(%s,pcbi.name);pintf(、该进程的优先级(1-0):);sanf(%d,&cbiorer);pritf(3、

4、运营时间);scaf(%d,pcb.tme); fr(=;y)l=0;els prt(输入已经完毕您输入的数据为:n进程名: %sn优先级: %d运营时间: %dn,ci.name,pcbi.o,pci.time);prntf(-n);strcp(ghoti.am,pci.ne); ghosti.order=pcbi.ordr; gs.timepcb.time;cb.saus=1; ghosti.atus=1; pcbi.wtime=pbime; ci.tim=0; i+;void block()in;print(请输入您要变化状态的进程的进程名: );scaf(s,&a_nam);fr(y=

5、0;y=i;y+)f(strcm(cynme,a_nae)=0)a=1;if(cby.stau=0)prnt(您要修改的进程已经是阻塞状态,无法更改);f(pcby.tatus)pcy.satus0;or(m=0;m=i;m+)if(strcmp(ostm,a_name)=0)ostm.saus=0;pintf(操作已完毕,进程成功改为阻塞状态n);f(a=)prf(对不起!您查找的进程名不存在n);=0;voidrous()int ;print(n请输入您要变化状态的进程的进程名: );san(%s,&_na);fo(=0;y=;y+)if(srcmp(b.ame,name)=0)a=1;i

6、(pcb.ts=1)rinf(您要修改的进程已经是就绪状态,无法更改n);reak;if(pcby.satu=)pcb.sttu1;for(0;m=i;m+)f(srcp(hosm.name,nam)=0)ostm.status=1;rnt(操作已完毕,进程成功改为运营状态);break;if(=0)printf(对不起!您查找的进程名不存在n);a=0;d stop()pritf(n请输入您要变化状态的进程的进程名: );scnf(%s,&a_nam);or(=0;y=;y+)if(strmp(pcy.name,_na)0)a1;f(;;y)cb=by+;i-;rntf(操作已完毕,进程成功

7、删除n);rak;if(=)rin(对不起!您查找的进程名不存在n);a=0;voidotPt()(=)rintf(对不起,没有进程存在,无法显示n);pintf(nn 已存在进程分别为:(状态:2表达正在运营,1表达就绪,0表达阻塞)n);for(=0;i;+)(cby.status!3)pritf(进程d 进程名: 状态: %,y1,cby.name,pysatus);voi ctrol()for(;1;)pint(进程调度子菜单n0 :返回主菜单1:优先级调度n2 :时间片轮转调度n请输入您想要进行的操作的指令 :);scnf(d,x);i(x=0)bre;wt(x)a:brek;cas

8、 1:ordr_control();brak;case :time_cntro();ek;dfault:pint(您输入的指令有误,请重新输入n);re;voi ordr_conrol()intjis;/用于CU运营时间计时 jii=0; char pandan,anduan;/用于判断与否继续调度 structhos jiaouan;it gg,bl;or(gg=0;gg;g+)if(pcbgstas=2)fo(b=0;bli;bl+)if(strmp(ghostlae,pcgg.name)=)ghotl.status=2;for(=0;x-;x+)fo(yx+;y;y+)if(hox.ordergsty.rder)jaohuango;ghostx=ghoy;ghosty=jiaohan;/以上语句是根据优先级为进程排序printf(n按照优先级调度进程,具体内容为:);f(x=0;xi;x+)if(gotxus=1)pnf(正在运营的进程: %sn优先级: %dn运营时间: %dnn,gostm,hstx.orer,ghosx.time); for(y=0;y=i;+) if(trcmp(pcyn,hostx.nme)=)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号