algorithm - 调度算法最短作业优先

标签 algorithm cpu scheduling

我想了解最短作业优先算法的工作原理,我这样做的方式是否正确,请帮忙

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/

相关文章:

c++ - 应该使用插入排序还是构造堆来 boost 性能?

algorithm - 为多个节点生成有限范围内的唯一数字

python - 通过转换为迭代来加速递归方法

language-agnostic - 位移是 O(1) 还是 O(n)?

linux - Linux 中常见实时进程的一些示例

algorithm - 应该使用什么数据结构来存储具有重复单词的大句子(可能是数百万个单词)

c - 如何在硬件上执行类型转换?

c++ - 如何在 Linux/Windows 上测量 CPU 时间和挂钟时间?

ios - 应用程序进入后台时如何保留 NSTimer?

python - 使用 Python 持续监控程序/进程