计 计 计 计 计 计 计实 验 报 告计 计 计 计 计 计 计 计计 计 计 计 计 计 计计 计 计 计 计计 计 计 计 计 计 计计 算 机 与 通 信 工 程 学 院实验 1 使用动态优先权的进程调度算法的模拟1 实验目的 通过动态优先权算法的模拟加深对进程概念和进程调度过程的理解
2 实验容〔1 实现对 N 个进程采纳动态优先权优先算法的进程调度
〔2 每个用来标识进程的进程控制块PCB用结构来描述, 包括以下字段: 进程标识数 ID
进程优先数 PRIORITY,并规定优先数越大的进程,其优先权越高
进程已占用的 CPU 时间 CPUTIME
进程还需占用的 CPU 时间 ALLTIME
当进程运行完毕时,ALLTIME 变为 0
进程的堵塞时间 STARTBLOCK,表示当进程再运行 STARTBLOCK 个时间片后,将进入堵塞状态
进程被堵塞的时间 BLOCKTIME,表示已堵塞的进程再等待 BLOCKTIME 个时间片后,将转换成就绪状态
进程状态 STATE
队列指针 NEXT,用来将 PCB 排成队列
〔3 优先数改变的原则: 进程在就绪队列中停留一个时间片,优先数加 1
进程每运行一个时间片,优先数减 3
〔4 假设在调度前,系统中有 5 个进程,它们的初始状态如下: ID 0 1 2 3 4 PRIORITY 9 38 30 29 0 CPUTIME 0 0 0 0 0 ALLTIME 3 3 6 3 4 STARTBLOCK 2 -1 -1 -1 -1 BLOCKTIME 3 0 0 0 0 STATE ready ready ready ready ready〔5 为了清楚的观察各进程的调度过程,程序应将每个时间片的情况显示出来,参照的具体格式如下:RUNNING PROG:iREADY-QUEUE:->id1->id2BL