多级队列调度系统:求解进程P4的等待时间
问题解答:计算进程P4的等待时间
步骤1:明确调度规则
- 多级队列调度:队列1优先级高于队列2,需等队列1所有进程执行完成后,才能调度队列2的进程
- 队列1采用非抢占式优先级调度:数值越大优先级越高,同优先级按到达时间(FCFS)调度
- 队列2采用最短剩余时间优先(SRTF)调度:抢占式,每次选择剩余执行时间最短的进程
步骤2:整理进程信息
| 进程 | 到达时间 | 执行时间(Burst Time) | 优先级 | 所属队列 |
|---|---|---|---|---|
| P1 | 3 | 4 | 2 | 1 |
| P2 | 5 | 9 | 1 | 1 |
| P3 | 8 | 4 | 2 | 2 |
| P4 | 0 | 7 | 1 | 2 |
| P5 | 12 | 6 | 1 | 1 |
步骤3:模拟队列1的执行流程
队列1的进程优先级排序:P1(优先级2)> P2、P5(优先级1),同优先级按到达时间排序:P2(5)早于P5(12)
- 0-3时刻:队列1无进程到达,CPU空闲(队列2需等队列1全部完成才能调度)
- 3-7时刻:P1到达,开始执行,执行4个时间单位后完成(结束时间7)
- 7-16时刻:P2已在5时刻到达,开始执行,执行9个时间单位后完成(结束时间16)
- 16-22时刻:P5已在12时刻到达,开始执行,执行6个时间单位后完成(结束时间22)
此时队列1所有进程执行完毕,开始调度队列2。
步骤4:模拟队列2的执行流程
队列2的进程均已到达(P4在0时刻、P3在8时刻到达),剩余执行时间:P4=7,P3=4
- 22-26时刻:选择剩余时间更短的P3执行,执行4个时间单位后完成(结束时间26)
- 26-33时刻:执行P4,执行7个时间单位后完成
步骤5:计算P4的等待时间
等待时间 = 进程开始执行时间 - 进程到达时间
P4的到达时间为0,开始执行时间为26,因此等待时间 = 26 - 0 = 26
内容的提问来源于stack exchange,提问作者Nikhitha
相关产品推荐
相关产品推荐

