0

我试图理解这些调度算法:

  • 先到先得 (FCFS)
  • 最短作业优先 (SJF)
  • 最短剩余时间 (SRT)
  • 循环赛 (RR)

所以,给定一些输入:

Process Name: A; Arrival Time: 0; Expected CPU Running Time: 3
Process Name: B; Arrival Time: 1; Expected CPU Running Time: 5
Process Name: C; Arrival Time: 3; Expected CPU Running Time: 2
Process Name: D; Arrival Time: 9; Expected CPU Running Time: 5
Process Name: E; Arrival Time: 12; Expected CPU Running Time: 5

FCFS 将调度为AAABBBBBCCDDDDDEEEEE.

我似乎无法弄清楚其余的。有人可以帮我解释一下区别吗?

我试过谷歌搜索,但我从 SJF 得到的结果有点令人困惑。

4

1 回答 1

1

我只是给你一些提示。

对于 SJF 和 SRT,您并没有真正定义 - 只需从逻辑上考虑名称即可。

对于SJF,选择最短的未完成工作。使用作业的总时间,即 3,5,2,5,5 - 不要注意该作业已经安排了多少时间。

对于SRT,选择剩余时间最少的到达的未完成作业。剩余时间简单地定义为总时间减去已经安排的时间。因此,在时间 2,您已经安排AA了 ,因此剩余时间A3-2 = 1

对于 SJF 和 SRT,冲突(当有两个具有相同时间的作业时)可能可以通过选择最先到达的作业来解决。对于 SRT,也可以通过选择最长的工作来解决冲突。你必须确认这一点。

请注意,这些算法有两种变体——抢占式非抢占式。简而言之,抢占式意味着,在每个时间步,您都选择下一步要执行的作业。另一方面,对于非抢占式,一旦你选择了一份工作,你就会安排该工作直到它完成,无论是否有一个新到的工作时间更短。有关更详细的说明,请参阅此内容。

对于RR,只需选择您选择时间最长的那个。

于 2013-11-02T16:50:49.457 回答