我想了解最短作业优先算法的工作原理,我这样做的方式是否正确,请帮忙
Proc Burst1 Burst2
+------+---------+--------+
| A | 10 | 5 |
| B | 3 | 9 |
| C | 8 | 11 |
+------+---------+--------+
B1->3->C1->11->B2->20->A1->30->A2->35->C2->46
最佳答案
“最短作业优先”实际上并不是一种算法,而是一种策略:在准备执行的作业中总是选择执行时间最短的作业。你的序列看起来没问题。一开始,以下作业已准备好执行(括号中为执行时间):
A1(10), B1(3), C1(8)
所以 B1
被选中,之后作业 B2
也准备好执行,所以这里是更新的就绪作业列表:
A1(10), B2(9), C1(8)
现在 C1
被选中,依此类推。
“最短作业优先”策略有多种变体,其中所有突发的总时间,即 A1 + A2
, B1 + B2
, ...,被考虑在内。那么选择的序列将是:
B1, B2, A1, A2, C1, C2
关于algorithm - 调度算法最短作业优先,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15993229/