计算机学院设计性实验报告
一、实验目的
通过动态优先权调度算法和时间片轮转调度算法的模拟加深进程概念和进程调度过程的理解。
二、实验仪器或设备
一台笔记本电脑或者是一台台式机
三、总体设计(设计原理、设计方案及流程等)
本实验的目的就是用在Linux下用C语言编程模拟N个进程采用高优先权优先(要求采用动态优先权)进程调度算法。已知时间片轮转算法,可以根据时间片轮转的思路加以修改就行了。时间轮转调度算法与动态优先权的区别就是时间片轮转是在FIFO进程调度的基础上,队列中的进程按照进入的顺序,每个进程每次都执行一个时间片;如果运行完就把该进程释放掉,如果在一个时间片内未结束就插到队列尾部。而动态优先权进程调度算法就是按照优先权的大小运行进程,如果一个时间片内未运行完,则将优先权数减3后再插入到队列中(不是队尾而是队列中的适当位置,该位置前面的节点的优先级数大于该节点的优先级数,后面的节点的count值小于该节点的count值)。
四、实验要求:
(1)在Linux下用C语言编程模拟N个进程采用高优先权优先(要求采用动
态优先权)进程调度算法。为了清楚地观察每个进程的调度过程,程序
应将每个时间片内的进程情况显示出来;
(2)进程控制块是进程存在的唯一标志,因此,在模拟算法中每一个进程用
一个进程控制块PCB来代表,PCB用一结构体表示。包括以下字段:
●进程标识数id,或者进程的名称name;
●进程优先数priority,并规定优先数越大的进程,其优先权越高;
●进程需要运行的CPU时间ntime;
●进程的运行时间rtime;
●进程状态state;
●队列指针next,用来将PCB排成队列。