2013-11-02 18 views
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是有点混乱。

回答

1

我只是给你一些提示。

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

对于SJF,挑最短的未到完成的工作。使用该工作的总时间,即3,5,2,5,5 - 不要在意该工作已经预定了多少工作。

对于SRT,用最少的剩余时间挑选到达未完成的作业。剩余时间被简单地定义为总时间减去已经预定的时间。因此,在时间2时,您已计划AA,因此A的剩余时间将为3-2 = 1

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

注意,有两个变化对这些算法 - 抢占非抢占。总之,抢先意味着,在每一步你选择接下来执行的工作。另一方面,对于非预先约定,一旦你选择了一份工作,你就可以安排该工作直到完成,无论是否有新工作时间较短。有关更详细的解释,请参阅this

对于RR,只需选择您选择的最长的一个。

+0

so sjf will be AAACCBBBBBDDDDDEEEEE? – NewFile

+1

@NewFile是的,这是正确的。 – Dukeling

+0

我仍然没有得到您对SRT的解释。 – NewFile