进程调度模拟实验

进程调度模拟实验

ID:42936056

大小:72.00 KB

页数:5页

时间:2019-09-24

进程调度模拟实验_第1页
进程调度模拟实验_第2页
进程调度模拟实验_第3页
进程调度模拟实验_第4页
进程调度模拟实验_第5页
资源描述:

《进程调度模拟实验》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、二.进程调度模拟实验1.实验目的通过对进程调度算法的模拟加深对进程概念和进程调度过程的理解。2.实验内容•用C语言实现对N(N=5)个进程的调度模拟,可以采用如简单轮转法RoundRobin、优先权高者优先算法HighestPriorityFirst筹,分别进行模拟调度。■每个川来标识进程的进程控制块PCB川结构(记录)来描述,根据需要,它包括以下字段:◊进程标识数ID。◊进程优先数Priority,并规定优先数越大的进程,其优先权越高。采用简单轮转法时该字段无用。◊进程己经占丿IJ的CPU时间CPUTIMEo◊进程还需占用的CPU时间ALETIME

2、o当进程运行完毕时,ALLTIME变为0。◊进稈状态STATEo◊队列指针NEXT,用来将PCB排成队列。■优先数改变的原则(釆用简单轮转法时该字段无用):◊进程在就绪队列屮等待一个时间片,优先数增加1;◊进程每运行一个时间片,优先数减3。•假设在进行调度前,系统中有5个进程,它们的初始状态对以编程输入(更具有灵活性),也可以初始化为如下内容:IDPRIORITYCPUTIMEALLTIMESTATE0903READY13803READY23006READY32903READY4004READY•为了清楚地观察诸进程的调度过程,程序应该将每个时间片内

3、各进程的情况显示出来并暂停,参考格式如门Running:IReadyQueue:Idi,Idj,・・・IDPRIORITYCPUTIMEALETIMESTATE0P0COAOSO1PlClAlSI2P2C2A2S23P3C3A3S34P4C4A4S4按上述要求编写程序如下:#includenstdio.hHtypedefstructPCB{intpriority,CPUTIME,ALETIME;char*STATE;structPCB*next;}pcb;structPCBqueue[5]={{9,0,3,Hready",&queue[1]},{3&

4、0,3,leady”,&queue[2]},{30,0,6,nreadyH,&queue[3]},{29,0,3,“ready”,&queue[4]},{0,0,4,Hready",&queue[0]}};pcb*p=&queue[0];pcb*search()〃找出优先级最大的一个进程{pcb*p=&queue[0];pcb*q=&queue[1];inti=0;for(i=0;i<4;i++)if(p->prioritypriority&&q・>STATE!="encT){p=q;q++;}elseq++;returnp;}voidcal

5、culate(pcb*p){inti;if(p->ALLTIME==O){p->STATE=nendn;p->priority=p・>priority-3;}else{p->STATE=HdoingH;++p->CPUTIME・-p->ALLTIME;—p->priority;}if(p->ALETIME==O){p->STATE=nendu;p->priority=p・>priority-2;for(i=0;i<5;i++)if(queue[i].STATE==nreadyn)queue[i].priority++;if(queue[i].ALET

6、IME>0)queue[i].STATE=HreadyH;}}voiddisplay(){inti;printf(nID,priority,CPUTIME,ALETIME,STATEH);for(i=0;i<5;i++)printf(n%d,%d,%d,%d,%s'i,queue[i].priority,queue[i].CPUTIME,queue[i].ALETIME,queue[i].STATE);}voidmain(){inti;printf("所有进程都没运行时的pcb的内容:");display();printf(n运行优先权

7、最高的进程:”);p=search();calculate(p);displayO;while(queue[O].STATE==nreadynllqueue[l].STATE==,'readynllqueue[3].STATE==nreadynllqueue[4].STATE==nreadyn){p二search。;calculate(p);}printf(”最后结果为:”);display();程序运行的结果如下:*eH:Debugpcbl.exe"所有进程都没运行时的Mb的内容:ID,priorit—CPUTIHE.ALLTIHE,S

8、TATE9,0,3,ready38,0.3.ready2,30,0.6.ready3.29.0,3.read

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

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

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