能否基于优先级计算SJF(短作业优先)的AWT与ATA?
带优先级的SJF调度:平均等待时间(AWT)与平均周转时间(ATA)计算
核心调度规则
当SJF算法加入优先级因素后,调度逻辑变为:在当前时刻已到达的进程中,优先选择优先级最高的进程(本题默认数值越小优先级越高,如P3优先级1为最高);若优先级相同,则按SJF规则选Burst Time更短的进程。以下按非抢占式(进程一旦启动则执行至完成)进行计算。
进程基础数据
| 进程 | 到达时间(AT) | 执行时间(BT) | 优先级 |
|---|---|---|---|
| P1 | 7 | 3 | 2 |
| P2 | 5 | 2 | 4 |
| P3 | 4 | 5 | 1 |
| P4 | 0 | 4 | 3 |
调度模拟与时间计算
按时间线逐步推导:
- 0~4秒:仅P4到达(AT=0),执行P4至完成,完成时间CT=4。
- P4:周转时间TAT=4-0=4,等待时间WT=4-4=0
- 4秒时:P4完成,此时P3已到达(AT=4),选择优先级最高的P3执行,耗时5秒,完成时间CT=4+5=9。
- P3:周转时间TAT=9-4=5,等待时间WT=5-5=0
- 9秒时:P3完成,此时P1(AT=7)、P2(AT=5)均已到达,P1优先级更高(2<4),执行P1耗时3秒,完成时间CT=9+3=12。
- P1:周转时间TAT=12-7=5,等待时间WT=5-3=2
- 12秒时:P1完成,最后执行P2,耗时2秒,完成时间CT=12+2=14。
- P2:周转时间TAT=14-5=9,等待时间WT=9-2=7
最终计算结果
- 平均等待时间(AWT) = (0+0+2+7)/4 = 2.25
- 平均周转时间(ATA) = (4+5+5+9)/4 = 5.75
补充:如果采用抢占式调度(高优先级进程到达时可打断当前执行进程),本题中无抢占场景(所有高优先级进程均在当前进程完成后到达),结果与非抢占式一致。
内容的提问来源于stack exchange,提问作者MD SAJJAD
相关产品推荐
相关产品推荐

