【问题标题】:scheduling algorithm shortest job first调度算法最短作业优先
【发布时间】:2013-04-13 21:40:23
【问题描述】:

我正在尝试了解最短作业优先算法的工作原理,我是否以正确的方式这样做,请帮助

Proc     Burst1    Burst2
+------+---------+--------+
|  A   |   10    |   5    |
|  B   |   3     |   9    |
|  C   |   8     |   11   |
+------+---------+--------+

B1->3->C1->11->B2->20->A1->30->A2->35->C2->46

【问题讨论】:

  • 除非您有一些 Java 代码要显示,否则我将删除该标签。
  • 看起来不错,在我设法猜到您对桌子和下面的台阶的实际含义之后。你的问题到底是什么?您的问题可能是如何实现它(在 Java 中)?
  • 我只想知道答案是否正确@doomster

标签: algorithm cpu scheduling


【解决方案1】:

“最短作业优先”实际上并不是一种算法,而是一种策略:在准备执行的作业中,总是选择执行时间最短的作业。你的序列看起来不错。一开始,以下作业已准备好执行(括号中为执行时间):

A1(10), B1(3), C1(8)

所以B1 被选中,之后B2 的作业也准备好执行,所以这里是准备好的作业的更新列表:

A1(10), B2(9), C1(8)

现在C1 被选中,以此类推。

存在“最短作业优先”策略的变体,其中考虑了所有突发事件的总时间,即A1 + A2B1 + B2、...。那么选择的序列将是:

B1, B2, A1, A2, C1, C2

【讨论】:

    猜你喜欢
    • 2017-04-18
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-22
    • 2016-04-04
    • 2019-09-03
    • 2017-08-13
    • 1970-01-01
    相关资源
    最近更新 更多