常用进程调度算法
考虑5个进程P1、P2、P3、P4、P5,它们的创建时间、运行时间及优先数如下表所示。规定进程的
优先数越小,优先级越高
。试描述在采用下述几种调度算法时各个进程运行过程,并计算采用每种算法时的进程平均周转时间。假设忽略进程的调度时间。
① 先来先服务调度算法。
② 短进程优先调度算法。
③时间片轮转调度算法(时间片为1ms)。
④非剥夺式优先级调度算法。
⑤剥夺式优先级调度算法。
⑥最高响应比优先调度算法。
进程 | 创建时间 | 运行时间(ms) | 优先数 |
---|---|---|---|
P1 | 0 | 3 | 3 |
P2 | 2 | 6 | 5 |
P3 | 4 | 4 | 1 |
P4 | 6 | 5 | 2 |
P5 | 8 | 2 | 4 |
①先来先服务调度算法
按照进程进入就绪队列的先后顺序调度并分配处理机执行。先来先服务调度算法是一种非抢占式的算法,先进入就绪队列的进程,先分配处理机运行。一旦一个进程占有了处理机,它就一直运行下去,直到该进程完成工作或者因为等待某事件发生而不能继续运行时才释放处理机。
进程 | 进入时间 | 运行时间(ms) | 开始执行时间 | 完成时间 | 周转时间 |
---|---|---|---|---|---|
P1 | 0 | 3 | 0 | 3 | 3 |
P2 | 2 | 6 | 3 | 9 | 7 |
P3 | 4 | 4 | 9 | 13 | 9 |
P4 | 6 | 5 | 13 | 18 | 12 |
P5 | 8 | 2 | 18 | 20 | 12 |
平均周转时间
:T=(3+7+9+12+12)/ 5=8.6ms
平均带权周转时间
:W=(3/3+7/6+9/4+12/5+12/2) / 5=2.56
②短进程优先
进程进入顺序:P1,P2,P5,P3,P4
进程 | 进入时间 | 运行时间(ms) | 开始执行时间 | 完成时间 | 周转时间 |
---|---|---|---|---|---|
P1 | 0 | 3 | 0 | 3 | 3 |
P2 | 2 | 6 | 3 | 9 | 7 |
P3 | 4 | 4 | 11 | 15 | 11 |
P4 | 6 | 5 | 15 | 20 | 14 |
P5 | 8 | 2 | 9 | 11 | 3 |
平均周转时间T=(3+7+11+14+3)/ 5=7.6ms
平均带权周转时间W=(3/3+7/6+11/4+14/5+3/2) / 5=1.84
③时间片轮转调度算法(时间片为1ms)
当时间片q=1时,列出下表,找出运行序列:
进程 | 进入时间 | 运行时间(ms) | 完成时间 | 周转时间 |
---|---|---|---|---|
P1 | 0 | 3 | 4 | 4 |
P2 | 2 | 6 | 18 | 16 |
P3 | 4 | 4 | 17 | 13 |
P4 | 6 | 5 | 20 | 14 |
P5 | 8 | 2 | 15 | 7 |
平均周转时间T=(4+16+13+14+7)/ 5=10.8ms
平均带权周转时间W=(4/3+16/6+13/4+14/5+7/2) / 5=2.15
④非剥夺式优先级调度算法
进程 | 创建时间 | 运行时间(ms) | 优先数 | 完成时间 | 周转时间 |
---|---|---|---|---|---|
P1 | 0 | 3 | 3 | 3 | 3 |
P2 | 2 | 6 | 5 | 9 | 7 |
P3 | 4 | 4 | 1 | 13 | 9 |
P4 | 6 | 5 | 2 | 18 | 12 |
P5 | 8 | 2 | 4 | 20 | 12 |
平均周转时间T=(3+7+9+12+12)/ 5=8.6ms
平均带权周转时间W=(3/3+7/6+9/4+12/5+12/2) / 5=2.56
⑤剥夺式优先级调度算法
进程 | 创建时间 | 运行时间(ms) | 优先数 | 完成时间 | 周转时间 |
---|---|---|---|---|---|
P1 | 0 | 3 | 3 | 3 | 3 |
P2 | 2 | 6 | 5 | 20 | 18 |
P3 | 4 | 4 | 1 | 8 | 4 |
P4 | 6 | 5 | 2 | 13 | 7 |
P5 | 8 | 2 | 4 | 15 | 7 |
平均周转时间T=(3+18+4+7+7)/ 5=7.8ms
平均带权周转时间W=(3/3+18/6+4/4+7/5+7/2) / 5=1.98
⑥最高响应比优先调度算法
响应比:Rp =1+W/T
在时刻9时全部作业进入:在时刻9计算响应比:
P3的响应比:R3=1+(9-4)/4=2.25
P4的响应比:R4=1+(9-6)/5=1.6
P5的响应比:R5=1+(9-8)/2=1.5
选择P3进入运行,直到13时结束,在时刻13时进行调度
在时刻13时计算响应比:
P4的响应比:R4=1+(13-6)/5=2.4
P5的响应比:R5=1+(13-8)/2=3.5
选择P5进入运行,直到16时结束,最后P4进入
进程 | 创建时间 | 运行时间(ms) | 优先数 | 完成时间 | 周转时间 |
---|---|---|---|---|---|
P1 | 0 | 3 | 3 | 3 | 3 |
P2 | 2 | 6 | 5 | 9 | 7 |
P3 | 4 | 4 | 1 | 13 | 9 |
P4 | 6 | 5 | 2 | 21 | 15 |
P5 | 8 | 2 | 4 | 16 | 8 |
平均周转时间T=(3+7+9+15+8)/ 5=8.4ms
平均带权周转时间W=(3/3+7/6+9/4+15/5+8/2) / 5=2.28
关于几个时间概念的解释
服务时间:作业需要运行的时间
完成时间 = 开始时间 + 服务时间
等待时间 = 开始时间 - 提交时间
周转时间 = 完成时间 - 提交时间
带权周转时间 = 周转时间 / 服务时间
响应比 = (等待时间 + 服务时间) / 服务时间 = 等待时间/服务时间 + 1
几种算法比较