《操作系统实验二 (1).ppt》由会员分享,可在线阅读,更多相关《操作系统实验二 (1).ppt(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、操作系统实验二操作系统实验二时间片轮转调度算法时间片轮转调度算法的实现的实现(1)假设系统有)假设系统有5个进程,每个进个进程,每个进程用一个进程控制块程用一个进程控制块PCB来代表,来代表,PCB的格式如右图所示。其中:的格式如右图所示。其中:q进程名:即进程标识。进程名:即进程标识。q链链接接指指针针:指指出出下下一一个个到到达达进进程程的的进进程程控控制制块块首首地地址址。按按照照进进程程到到达达的的顺顺序序排排队队。系系统统设设置置一一个个队队头头和和队队尾尾指指针针分分别指向第一个和最后一个进程。新生成的进程放队尾。别指向第一个和最后一个进程。新生成的进程放队尾。q估计运行时间:可由
2、设计者任意指定一个时间值。估计运行时间:可由设计者任意指定一个时间值。q到到达达时时间间:进进程程创创建建时时的的系系统统时时间间或或由由用用户户指指定定。调调度度时时,总是选择到达时间最早的进程。总是选择到达时间最早的进程。q进进程程状状态态:为为简简单单起起见见,这这里里假假定定进进程程有有两两种种状状态态:就就绪绪和和完完成成。并并假假定定进进程程一一创创建建就就处处于于就就绪绪状状态态,用用R表表示示。当当一个进程运行结束时,就将其置成完成态,用一个进程运行结束时,就将其置成完成态,用C表示。表示。进程名进程名链接指针链接指针到达时间到达时间估计运行时间估计运行时间进程状态进程状态(2
3、)为为每每个个进进程程任任意意确确定定一一个个要要求求运运行行时时间间和和到到达达时间。时间。(3)按按照照进进程程到到达达的的先先后后顺顺序序排排成成一一个个循循环环队队列列。再设一个队首指针指向第一个到达进程的首址。再设一个队首指针指向第一个到达进程的首址。(4)执执行行处处理理机机调调度度时时,开开始始选选择择队队首首的的第第一一个个进进程程运运行行。另另外外再再设设一一个个当当前前运运行行进进程程指指针针,指指向向当当前正运行的进程。前正运行的进程。(5)由由于于本本实实验验是是模模拟拟实实验验,所所以以对对被被选选中中进进程程并并不实际启动运行,而只是执行:不实际启动运行,而只是执行
4、:估计运行时间减估计运行时间减1个时间片个时间片;输出当前运行进程的名字。输出当前运行进程的名字。用这两个操作来模拟进程的一次运行。用这两个操作来模拟进程的一次运行。(6)进进程程运运行行一一次次后后,以以后后的的调调度度则则将将当当前前指指针针依依次次下下移移一一个个位位置置,指指向向下下一一个个进进程程,即即调调整整运运行行指指针针指指向向该该进进程程的的链链接接指指针针所所指指进进程程,即即指指示示应应运运行行进进程程。同同时时还还应应判判断断该该进进程程的的剩剩余余运运行行时时间间是是否否为为零零。若若不不为为零零,则则等等待待下下一一轮轮的的运运行行;若若该该进进程程的的剩剩余余运运
5、行行时时间间为为零零,则则将将该该进进程程的的运运行行状状态态置置为为完完成态成态C,并退出循环队列。并退出循环队列。(7)若若就就绪绪队队列列不不空空,则则重重复复上上述述的的(5)和和(6)步骤直到所有进程都运行完为止。步骤直到所有进程都运行完为止。(8)在在所所设设计计的的调调度度程程序序中中,应应包包含含显显示示或或打打印印语语句句。以以便便显显示示或或打打印印每每次次选选中中进进程程的的名名称称及及运运行行一一次后队列的变化情况。次后队列的变化情况。数据结构:数据结构:typedef struct pcb/*进程控制块定义进程控制块定义*/char pnameN;/*进程名进程名*/
6、int runtime;/*服务时间服务时间*/int arrivetime;/*到达时间到达时间*/char state;/*进程状态进程状态*/struct pcb*next;/*联接指针联接指针*/PCB;实验要求:实验要求:n给出程序中使用的数据结构及符号说明给出程序中使用的数据结构及符号说明n给出程序流程图和源程序,源程序中要附有详给出程序流程图和源程序,源程序中要附有详细的注释细的注释n输入:时间片,五个进程的进程名、到达时间、输入:时间片,五个进程的进程名、到达时间、服务时间服务时间n输出:打印程序运行时的初值和运行结果,要输出:打印程序运行时的初值和运行结果,要求如下:求如下:
7、(1)选中运行进程的名、运行后各进程控制块状态;)选中运行进程的名、运行后各进程控制块状态;(2)计算平均周转时间和带权平均周转时间。)计算平均周转时间和带权平均周转时间。n总结收获体会及对该题解的改进意见和见解总结收获体会及对该题解的改进意见和见解输入 时间片时间片 1 1 作业号作业号 A B C D EA B C D E 到达时间到达时间 0 1 2 3 40 1 2 3 4 服务时间服务时间 4 3 5 2 4 4 3 5 2 4完成时间开始时间服务时间完成时间开始时间服务时间周转时间完成时间到达时间周转时间完成时间到达时间带权周转时间周转时间带权周转时间周转时间/服务时间服务时间输出运行时刻运行时刻:1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 9 9 10 11 12 13 14 15 16 17 18 10 11 12 13 14 15 16 17 18 运行进程名运行进程名:A B A C BA B A C B D A E D A E C C B B D D A A E C E C E E C C E E C C运行后状态运行后状态:R R R R R R R R R R R R R R R R R R C C R R C C R R R R R R R R C C C C
限制150内