资源描述:
《计算机操作系统处理机调度模拟实验》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、课程实验报告课程名称RR姓名号学实验名称实验目的及要求理敢根的处齟可行5]M求"实妇州要詆件前-nLF/、二o调间问况机时据状实验环境实验内容,zr】■3仇1;、,rv2明强实验步骤、2茅个个个/a一一一一E给写写写写di1Z3-4-5-6.create函数用于创建队列7.insert为插入函数,用于将一个时间片运行结束的进程插入到就绪进程的队尾8.priority函数:如果彗程就绪,就将处聖机分配给兰进程甘他执行。BD:作业臊作系统原理勉理机圍以处理机模拟Debug個…□一]I口II[^11ILf'■■iI
2、"4I*
3、11•IIJjI
4、
5、J-I*J-’丿IJQJ1Iv~l十彳;•*I"托心*II,g?^^4O"1"T'J
6、>%X■■■为-□HJ-■3X•••周-肆-需行炉对一色-•■■nHH、工呈土2口、DL4^"i二I/)调试过程及实验结果pcbl011R一当前就绪队列中进程的状态如下:hpcb2022wpcb3033w****当前正在运行的进程是pcbl,它的状态如下:进程名已运行时间剩余时间要求服务时间状态进程[pcbl]已完成.呂前正石运行是pcb2,它南囊态苏下:进程名已运行时间剩余时间要求服务时间状态pcb2
7、022R一当前就绪队列中进程的状态如下:pcb3033w呂前正石运行是pcb3,它南囊态苏下:进程名已运行时间剩余时间要求服务时间状态pcb3033R**当前就绪队列中进程的状态如下:cb2112™当前正在运行的进程是Mb2■它的状态如下:进程名已运行时间剩余时间要求服务时间状态pcb2112R**当前就绪队列中进程的状态如下:pcb3123U进程tpcb2J已完成・™当前正在运行的进程是Mb3■它的状态如下:进程名已运行时间剩余时间要求服务时间状态pcb3123Rbt绪队列为空?调试过程及实验结果pcbl011R一
8、当前就绪队列中进程的状态如下:hpcb2022wpcb3033w****当前正在运行的进程是pcbl,它的状态如下:进程名已运行时间剩余时间要求服务时间状态进程[pcbl]已完成.呂前正石运行是pcb2,它南囊态苏下:进程名已运行时间剩余时间要求服务时间状态pcb2022R一当前就绪队列中进程的状态如下:pcb3033w呂前正石运行是pcb3,它南囊态苏下:进程名已运行时间剩余时间要求服务时间状态pcb3033R**当前就绪队列中进程的状态如下:cb2112™当前正在运行的进程是Mb2■它的状态如下:进程名已运行时间
9、剩余时间要求服务时间状态pcb2112R**当前就绪队列中进程的状态如下:pcb3123U进程tpcb2J已完成・™当前正在运行的进程是Mb3■它的状态如下:进程名已运行时间剩余时间要求服务时间状态pcb3123Rbt绪队列为空?™当前正在运行的进程是Mb3■它的状态如下:进程名已运行时间剩余时间要求服务时间状态pcb3213R就绪队列为空?进程Cpcb3]已完成・就绪队列为空?进程已经定成.青按任意琏热续・・・每次运行一步,电脑将会将该时刻所有进程控制块的运行状态显示给用户。包括进程名、要求运行时间、已经运行时间、
10、还需要运行时间、状态等信息。当每个进程运行一个时间片之后将它从该队列中移除,添加到就绪队列队尾中以便使每个进程可以循环执行。当要求运行时间和已运行时间相等时,说明该进程运行结束,将该进程撤出该队列并口不再添加到就绪队列中。直到就绪队列中没有就绪进程为止#define_CRT_SECURE_NO_DEPRECATE#includeHstdio.h"#includeHstdlib.hH#includenstring.hntypedefstructnode{charpnameflO];//进程名intrtime;//已运行
11、时间intsytime;//剩余吋间intntime;//要求服务时间charstate;//状态structnode*next;}PCB;PCB^finish,*ready,*run;intN=3;〃探测就绪队列是否为空voidprintreadyO{讦(ready==NULL)printf(H就绪队列为空!”);}〃建立进程显示函数,用于显示当前进程;voiddisplay1()/*建立进程显示函数,用于显示当前进程*/{printf("进程名已运行时间剩余时间要求服务时间状态”);}〃显示进程信
12、息voiddisplay2(PCB*q)/*轮转法的输岀*/{printf("%3s%1Od%12d%1Od%1Ocu,q->pname,q->rtime,q->sytime,q->ntime,q->state);}〃总的显示函数,在此框架下调用其它子显示函数voiddisplayO{PCB*p;if(run!=NULL){printf("