实验2进程状态转换及其pcb的变化

实验2进程状态转换及其pcb的变化

ID:30883399

大小:634.06 KB

页数:15页

时间:2019-01-03

实验2进程状态转换及其pcb的变化_第1页
实验2进程状态转换及其pcb的变化_第2页
实验2进程状态转换及其pcb的变化_第3页
实验2进程状态转换及其pcb的变化_第4页
实验2进程状态转换及其pcb的变化_第5页
资源描述:

《实验2进程状态转换及其pcb的变化》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验2进程状态转换及其PCB的变化1•目的自行编制模拟程序,通过形象化的状态显示,使学生理解进程的概念、进程之间的状态转换及其所带来的PCB内容、组织的变化,理解进程与其PCB间的一一对应关系。2.内容及要求1)设计并实现一个模拟进程状态转换及其相应PCB内容、组织结构变化的程序。2)独立编写、调试程序。进程的数目、进程的状态模型(三状态、五状态、七状态或其它)以及PCB的组织形式可自行选择。3)合理设计与进程PCB相对应的数据结构。PCB的内容要涵盖进程的基本信息、控制信息、资源需求及现场信息。4)设计出可视性较好的界面,

2、应能反映出进程状态的变化引起的对应PCB内容、组织结构的变化。5)代码书写要规范,要适当地加入注释。6)鼓励在实验中加入新的观点或想法,并加以实现。7)认真进行预习,完成预习报告。8)实验完成后,耍认真总结,完成实验报告。3.程序流程图进程的三种基本状态及其转换如下图所示。Y「结束J4•数据结构及说明在本实验中,主要的数据结构是PCB的数据结构,具体如下:structprocess{charname;〃进程名称intneedtime;OW所需要的运行吋间intpriority;//进程的优先级4•源程序#include

3、dio.h>#include#includestructprocess!charname;intneedtime;intpriority;};structprocessreadyQueue[5];structprocessrun;structprocessblockedQueue[5];conststructprocessnu归{NULL,0,0};intreadyQueueHead=O;intblockedQueueHead=0;intcpuState=0;intcpuTime=0;

4、voidOrder(structprocessparameter[],inthead);//将队列中的进程按优先级排列intCreat();voidDispath();intTimeout();intEventWait();intEventOccur();voidOrder(structprocessparameter[],inthead){intk,i;structprocesstemp;for(k=0;k

5、ty>=parameter[i+1].priority){temp=parameter[i];parameter[i]=parameter[i+1];parameter[i+1]=怕mp;}intCreat(){if(readyQueueHead>=5){printfC'TheReadyQueuehasbeenfull");return0;}labell:printf("inputnewprocessname(mustbealetter):rT);scanf(H%c",&(readyQueue[readyQueueHe

6、ad].name));getchar();intk;for(k=O;k

7、

8、readyQueue[readyQueueHead].name==readyQueue[k].name+32

9、

10、readyQueue[readyQueueHead].name==readyQueue[k].name・32){printf(Htheprocessisalreadyexist!rT);goto

11、labell;}for(k=0;k

12、

13、readyQueue[readyQueueHead].name==blockedQueue[k].name+32

14、

15、readyQueue[readyQueueHead].name==blockedQueue[k].name・32){printf("theprocessisalreadyexist!rT);gotolabell;}if

16、(readyQueue[readyQueueHead].name==run.name

17、

18、readyQueue[readyQueueHead].name==run.name+32

19、

20、readyQueue[readyQueueHead].name==run.name-32){printf("t

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。