系统编程|调度时间

时间:2013-11-02 16:18:37

标签: algorithm scheduling round-robin

我正在尝试理解这些调度算法:

  • First-Come-First-Served(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获得的结果令人困惑。

1 个答案:

答案 0 :(得分:1)

我会给你一些提示。

对于SJF和SRT,你没有真正的定义 - 只是从逻辑上思考这个名称。

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

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

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

请注意,这些算法有两种变体 - 抢先非抢先。简而言之,先发制人意味着,您每次都选择下一步执行的工作。另一方面,对于非预备性的,一旦你选择了一份工作,你就可以安排这份工作,直到工作结束,无论是否有新工作的时间更短。有关更详细的说明,请参阅this

对于 RR ,只需选择您最早选择的那个。