一、实验目的
一、实验目的
在采用多道程序设计的系统中,同时处于就绪态的进程往往有多个,当就绪态的进程数大于处理器的个数时,就需按照某种策略进行分配处理器.本次设计模拟在单处理器情况下采用基于优先数的时间片轮转调度算法进行处理器调度,加深了解处理器调度工作过程.
二、实验内容及要求
1、设计一个程序实现基于优先数的时间片轮转调度算法调度处理器.
2、假定系统有5个进程,每个进程用一个进程控制块PCB开代表,进程控制块的结构如下图1.2所示:
进程名
指针
到达时间
要求运行时间
已运行时间
优先数
进程状态
图1
其中:
进程名:作为进程的标识.
指针:进程按顺序排成循环链表,用指针指出下一个进程的进程控制块首地址,最后一个进程中的指针指出第一个进程的进程控制块首地址.
要求运行时间:假设进程需要运行的单位时间数.
已运行时间:假设进程已经运行的单位时间数,初值为0.
状态:可假设有两种状态,就绪状态和结束状态.进程的初始状态都为就绪状态.
3、每次运行所设计的处理器调度程序调度进程之前,为每个进程任意确定它的要求运行时间.
4、此程序是模拟处理器调度,因此,被选中的进程并不实际启动运行,而是执行
已运行时间+1
来模拟进程的一次运行,表示进程已经运行过一个单位时间.
.5、在所设计的程序中应有显示或打印语句,能显示或打印每次被选中的进程名以及运行一次后进程队列的变化.
6、为进程任意确定要求运行时间,运行所设计的处理器调度程序,显示或打印逐次被选中进程的进程名以及进程控制块的动态变化过程.
7、设有一个就绪队列,就绪进程按优先数(优先数范围0-100)由小到大排列(优先数越小,级别越高).当某一进程运行完一个时间片后,其优先级应下调(如优先数加2或3).
8、例如一组进程如下表:
进程名\x05 A B\x05 C D\x05 E F\x05G H\x05 J K\x05 L M
到达时间\x05 0 1\x05 2 3\x05 6 8\x0512 12\x05 12 18\x05 25 25
服务时间\x05 6 4\x0510 5\x05 1 2\x05 5 10\x05 4 3\x05 15 8
三、实验报告
1、程序中使用的数据结构及符号说明.
2、给出主要算法的流程图
3、给出程序清单并附上注释
4、打印程序运行时的初值和运行结果.(运行一个进程输出一次结果)
本来想花时间写一个的..查资料的时候找到一个很详细的
,有问题我们可以交流