2022年操作系统实验一模拟进程状态转换.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年操作系统实验一模拟进程状态转换.docx》由会员分享,可在线阅读,更多相关《2022年操作系统实验一模拟进程状态转换.docx(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选学习资料 - - - - - - - - - 试验一模拟进程状态转换及其PCB 的变化一、试验目的:自行编制模拟程序,通过形象化的状态显示,使同学懂得进程的概念、进程之间的状态转换及其所带来的 解进程与其 PCB间的一一对应关系;二、试验内容及要求:PCB内容、组织的变化,理1、设计并实现一个模拟进程状态转换及其相应 PCB内容、组织结构变化的程序;2、独立编写、调试程序;进程的数目、进程的状态模型 三状态、五状态、七状态或其它以及PCB的组织形式可自行挑选;3、合理设计与进程 PCB相对应的数据结构; PCB的内容要涵盖进 程的基本信息、掌握信息、资源需求及现场信息;4、设计出可视性较好
2、的界面, 应能反映出进程状态的变化引起的 对应 PCB内容、组织结构的变化;5、代码书写要标准,要适当地加入注释;6、勉励在试验中加入新的观点或想法,并加以实现;7、仔细进行预习,完成预习报告;8、试验完成后,要仔细总结,完成试验报告;三、实现 : 数据结构struct PCB 名师归纳总结 - - - - - - -第 1 页,共 14 页精选学习资料 - - - - - - - - - char name; int priority; int needtime; bool operator b.priority; ; 五状态进程模型最高优先数优先调度算法流程图名师归纳总结 - - - -
3、- - -第 2 页,共 14 页精选学习资料 - - - - - - - - - 四、运行结果:名师归纳总结 - - - - - - -第 3 页,共 14 页精选学习资料 - - - - - - - - - 图 1 创建 2 个进程,由于这时cpu 闲暇所以内核调度,b 优先级高先执行图 2 超时,由于这时cpu 闲暇所以内核调度,b 优先级仍是比a 高所以先执行名师归纳总结 - - - - - - -第 4 页,共 14 页精选学习资料 - - - - - - - - - 图 3 2 个进程均被堵塞,其中一旦进程被堵塞就会引发调度图 4 唤醒 1 个进程,从堵塞队列取队首放到就绪队列队尾
4、,由于这时 cpu 闲暇所以内核调度五、源代码:#include #include 名师归纳总结 - - - - - - -第 5 页,共 14 页精选学习资料 - - - - - - - - - using namespace std; int Ready_len=0; int Blocked_len=0; int CPU_state=0; struct PCB char name; int priority; int needtime; bool operator b.priority; ; PCB Ready100; PCB Blocked100; PCB Cpu; bool dispa
5、tch; bool creatint NUM/ 创建一个新的进程 whileNUM- printf 输入进程名 一个字符 、所需时间 一个整数 、优先级名师归纳总结 - - - - - - -第 6 页,共 14 页精选学习资料 - - - - - - - - - 一个整数 : n; scanf%s%d%d,&ReadyReady_len.name,&ReadyReady_len.needt ime,&ReadyReady_len.priority;getchar; Ready_len+; ifCPU_state=0/ 假如 CPU闲暇,就调度 dispatch; bool dispatch
6、ifCPU_state=0 ifReady_len.=0 sortReady,Ready+Ready_len; Cpu.name=Ready0.name;Cpu.needtime=Ready0.needtime;Cpu.pri ority=Ready0.priority; ifReady_len.=1/ 就绪队列剔除队首元素 forint indx=1;indxReady_len;indx+ Readyindx-1.name=Readyindx.name;Readyindx-1.needtime=Readyindx.needtime;Readyindx-名师归纳总结 - - - - - - -
7、第 7 页,共 14 页精选学习资料 - - - - - - - - - 1.priority=Readyindx.priority; Ready_len-; CPU_state=1; printf*%c 进程送往 CPU执行n,Cpu.name; Cpu.needtime-; Cpu.priority-; else printf* 就绪队列为空,无法调度 n; return false; else printf*CPU 忙,无法调度 n; bool time_out ifCPU_state=1 ifCpu.needtime=0 printf*%c 时 间片 用完 , 并且 执行 完毕 , 被
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 操作系统 实验 模拟 进程 状态 转换
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内