版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验三进程管理模拟实验阅读后面的C语言实例,修改程序,使其优先数在运行期间可以变化(动态优先数)。例如 当某进程被时间片中断次数增加到一定数目时,提高其优先权。设计思路:首先在进程控制块中增加一个记录进程被中断的次数的整形变量sum;然后在初始化函数中 对它初始化赋值为0;然后在block()函数中在每个进程被中断后sum进行加1操作,再显 示该被中断进程被中断的次数;然后再find()函数中设计当某个进程被中断的次数达到3时 修改该进程的优先权,并把该优先权设计为最高!然后再由find()函数返回被选中的进程的 进程号!然后通过原来的相关代码来执行它相应的操作(其他部分代码不用变动)!进程控
2、制块实现的关键代码:进程控制块struct F,-低就缉态等借奋 完成态 。下一个等饕进程的进拄号.int id; F,-低就缉态等借奋 完成态 。下一个等饕进程的进拄号.char status; 进程状态,.int nextwr; 等畚链指曾 int priority: 进建,秃数 int sum;/记录进程中断次数 pcb3;/共3个进程生成进程控制块for (j=B;j3;j+)pcbj.id=j; 进程号pcbj.status=J:r,;进程初始状态为高就绪状态pcbj.nextwr=NIL;pcbj.suiir0; 中断次数初值为9printf(n进程 初 的优先薮?scanFCd,
3、);pcbj.pririty=i;进程优先级uaid ack(int se)int w;int i;i=(se=fi)?1:2;.printFf进程常。甲清sMi时被阻塞nl,exe+1 ,i);.pcbexe.status=W ;当刖进程瑟用塞pcbeXe.sum+;/前进程中断次数加1printF(,矽,em+1 ,pcbExe -sum);pcbexe.nextwr=NTL; J空浏为队列的首个进程号.塞队列第一个进程if J空浏为队列的首个进程号.塞队列第一个进程semse-firstwr=exe;/当前进窿美阀墓队列票-elsewhile(pcbw .nextwr*=NIL)/寻找队
4、列的最后一个进程u w=pcbw.nextwr;pcbw.nextwr=exe;/将阻塞进程挂到队列尾部在3个进程中按就绪状态及其优先数选出进程。返回选出的进程号。int find()int j,pd=NIL,w=MAXPRI;for (j=0j3;j+) /选择高就绪状态优先级最高的进程if(pcbj.sum=3)pcbj.priority=0;pcbj.sum=0;printf(进程d中断次数达到3次,该进程优先权最高nj+1);w=pcbj.priority;pd=j;elseif (pcbj.status=r) & (pcbj.priorityw)w=pcbj.priority;pd=
5、j;if (pd=NIL) /没有高就绪状态的进程,寻找低就绪状态的进程。for (j=0;j3;j+)if(pcbj.sum=3)pcbj.priority=0;pcbj.sum=0;printf(进程d中断次数达到3次,该进程优先权最高nj+1);w=pcbj.priority;pd=j;elseif (pcbj.status=,t,) & (pcbj.priorityw)w=pcbj.priority;pd=j;return (pd);程序运行结果:火火火火火ZR与富占每毋典热火火火火火一与富占厚毋一M四焙右竣髀营枭军IHWJW出 H 驰军。t凶政坦ffiar火火火火火一与富占典热M四焙
6、右竣髀度枭军 上辛思出晶也 T凶畛坦ffiBTl丽gj观驱 最很:u.剧Z凶畛空肉HTZSim火史植煨旅2凶V罗乩的囊州 密躇曲斜普火蹿5 娜克出艰田了内嘘出 EZfTTTX/COCOUZSM匝z很凶z很凶艳 煨 旅 凶翌瞄弗尽史耳悲耳史 圈*混籍备好月好 度底蛤煽烈藏烈 雁田了艄出噂出蜉出T Z Z X/心 Z z4tHT4zM观观就脚观烈W拒观观映观映V ltlbl-h-tl T itliblibl v Wtlbl-h-t tl-h-tlsix!S3 MC:vc6.0+4-Debugxinde.exe2 为 数 次1时进行S2执请在-呈窄顶申正 正布nTI 2 2 1 2 12 2 22l
7、l.llt./l 2 1 1 t./ 2 2 t./ 1 1 2 1 2 t./ 1 1 t./ 1 =5.程程程2程程程程=5.程程程程进程程 1=6.程程程w=6程程=7程程一程 2庄片一 进81进进进进S1进进进进V进进时进Is2进进进时进进时进Is 1进K进Is2进进时进进时进f醒sl执 唤请在哄A在普正蕾正一醒s.、Ts:-_&: : 普在请是到拙在 循申正申史正得耕正 2 2 1 1 :I次蕾O 算时进行时进次行用,行 才J2Y : 数进次该1S E的, 断次态绪1就S2区入到在M在M 得正遇亍正进亍 , ,$5r- ?!断印-一赢 鬻中窘中洗2=1Q陟蚩1蕾喝醒.赛到资尊点 匮程
8、a得至!崩-正在临果区1 帖蔑补进程2薛浪就绪态 睡唇得到邑正在临界区a 阿间丘g哺,一进程逾么就绪态 桩程1止在孑丸行 m2 =11 倒虚2正在执行 1=10 闻释2循环计慕次数=5 圈程2己经完所 履岳正在执行 s2=12 |g3g计算次数壬s2=13 gg3g计算次数岌 -何片.桩程3止在执行;12=14 |g3g计算次数=至;i2=lb M尊3循环计募次数=S 唇性己经完成 最后结果:sl=10,s2=15Press any key to cont in Lie零2-正在临界区2 折,进程诚汰就绪态零2-正在临界区2 折,进程诚汰就绪态零2-正在临界区2 折,进程诚汰就绪态总结及进一步改善建议:该实验综合用了进程调度,进程控制,进程同步,进程调度算法等相应知识。进程调度程序 负责为各个进程分配处理机;时间片中断处理程序模拟
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 收购鲜果合同范本
- 2024年企业间资金借贷协议模板2
- 餐厅综合服务承包协议2024范例
- 农村二手房交易的合同范本
- 委托代管合同范本
- 雏鸡买卖双方2024年协议详细条款
- 2024年度个人单间租房协议
- 利润分红合同范本
- 分店店长合同范本
- 公司还债合同范本
- 安全生产专(兼)职管理人员职责
- 湖南省长沙市长沙市长郡集团联考2024-2025学年九年级上学期11月期中语文试题(含答案)
- 家具制造业售后服务预案
- 电子产品维修合同范本1
- 《篮球原地双手胸前传接球》教案 (三篇)
- 2024年秋季1530安全教育记录
- 邀请函单页模板
- 四大名著称四大小说三国演义西游记水浒传红楼梦中国古典章回小说PPT资料课件
- 港珠澳大桥项目管理案例分析PPT课件
- GB∕T 12810-2021 实验室玻璃仪器 玻璃量器的容量校准和使用方法
- 一般跨越架搭设施工方案
评论
0/150
提交评论