【问题标题】:SJF - When the shortest job is the last oneSJF - 当最短的工作是最后一个
【发布时间】:2014-07-21 14:52:09
【问题描述】:

我知道 SJF 是什么,它是如何工作的,但我对这种情况有一个疑问(见图)和 2 个问题,希望你能帮助我:

1) 我是否需要每次都从第一个进程(在我的情况下为 A)开始,即使不是最短的?

2) 如果最排序的作业是最后一个 (G) 怎么办。我是否需要从它开始,返回顶部,检查所有这些,找到下一个最短的 F 等等?

http://i.stack.imgur.com/DarJb.jpg

很抱歉发布这样的图片,我是新来的,我没有足够的声誉。

【问题讨论】:

  • 你可以发布一些代码吗?
  • 我还没有实现任何东西。我希望涵盖所有可能的情况,并确保我使用的算法是正确的。

标签: operating-system computer-architecture


【解决方案1】:

我假设您正在使用 SJF 抢占式算法。
1) 在这种情况下,在时间 t=0,只有 A 到达,所以你必须执行它。
在 t=1 时,B 也到达了。现在执行两个作业(A 和 B)中最短的一个,因为 A(=2) 是最短的,所以它将首先执行。
在 t=2 时,没有进程到达,所以 A 将继续执行。很快...

这个想法是处理器将首先运行所有到达的作业中最短的一个。

2)当进程G到达时,如果它是所有剩余作业中最短的,那么它将首先执行。

【讨论】:

    猜你喜欢
    • 2017-04-18
    • 2017-08-13
    • 2021-01-09
    • 2017-01-20
    • 2013-11-12
    • 2023-02-15
    • 1970-01-01
    • 2015-04-09
    相关资源
    最近更新 更多