实验名称:动态优先权调度过程中就绪队列的模拟2
实验要求:采用动态优先权的进程调度算法,用C语言编程模拟调度过程中每个时间片内的就绪队列
实验内容:(1)每个进程控制块PCB用结构描述,包括以下字段:*进程标识符id*进程优先数priority,并规定优先数越大的进程,其优先权越高
*进程已占用的CPU时间cputime*进程还需占用的CPU时间alltime,当进程运行完毕时,aiitime变为0*进程的阻塞时间startblock,当进程再运行startblock个时间片后,进程将进入阻塞状态*进程被阻塞的时间blocktime,已阻塞的进程再等待blocktime个时间片后,将转换成就绪状态*进程状态state*队列指针next,将PCB排成队列
2)调度前,系统中有五个进程,它们的初始状态如下:ID01234PRIORITY93830290CPUTIME00000ALLTIME33634STARTBLOCK2-1-1-1-1BLOCKTIME30000STATEREADYREADYREADYREADYREADY3)进程在就绪队列呆一个时间片,优先数增加1
4)进程每运行一个时间片,优先数减3
5)按下面格式显示每个时间片内就绪队列的情况:READY_QUEUE:->id1->id24
任务分析进程控制块用结构体来表示,包含它的各项属性
建立两个队列:一个就绪队列,一个阻塞队列
创建一个进程控制块表示当前正在运行的进程
程序开始运行时,所有进程都在就绪队列中
当startblock减少到0时,进程进入阻塞队列
在阻塞队列中的进程,当blocktime减少到0时,转入就绪队列
在就绪队列中的进程,如果优先级比当前正在执行的进程高,就可以取代当前进程获取时间片
当前进程如果运行完毕,就绪队列中优先级最高的进程就可以成为新当前进程
程序流程图#include〈i