算法思想:
优先级调度算法:
(1)假设系统中有5个进程,每个进程有一个进程控制块(PCB)来标识。进程控制块内容包括:进程名,链接指针,进程的优先级,估计运行时间,进程状态。 进程的优先数由用户自己指定或程序任意设定,且优先数越低,优先级越高,调度时,总是选择优先级最高的进程运行。
(2)为了调度方便,设计一个指针指向5个进程排成的就绪队列的第一个进程,另外再设一个当前运行进程指针,指向当前正在运行的进程。
(3)处理机调度时总是选择队列中优先级最高的进程运行。为了采用动态优先级调度,进程每运行一次,其优先级就减1。由于本实验是模拟试验,所以对被选中进程并不实际启动运行,而只是执行:优先数加1和估计运行时间减1。用这两个操作来模拟进程的一次运行。
(4)进程运行一次后,若剩余的运行时间不为0,且其优先级低于就绪队列的优先级,则选择一个高优先级进程抢占CPU;若剩余时间为0,则把它的状态改为完成态(C),并撤出就绪队列。
(5)若就绪队列非空,则重复上述的(3)和(4),直到所有进程为完成态。