我试着理解这些调度算法:
因此,考虑到一些投入:
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: 5FCFS将调度为AAABBBBBCCDDDDDEEEEE。
其他的我都想不出来了。谁能帮我解释一下区别吗?
我试着在谷歌上搜索,但我得到的SJF结果令人困惑。
发布于 2013-11-02 16:50:49
我就给你点提示。
对于SJF和SRT,您没有真正的定义--只是从逻辑上考虑名称。
对于SJF,选择最短的未完成的工作。使用工作的总时间,即3、5、2、5、5-不要注意已经为该工作安排了多少时间。
对于SRT,用最少的剩馀时间选择到达的未完成的工作。剩余的时间被简单地定义为总时间减去已经排好的时间。因此,在第2次会议上,您已经安排了AA,因此A的剩余时间将是3-2 = 1。
对于SJF和SRT,冲突(当两个任务具有相同的时间)可能可以通过选择最先到达的任务来解决。对于SRT,冲突也可以通过选择最长的作业来解决。你得确认一下。
请注意,这些算法有两个变体-- non-preemptive.和抢占式。简而言之,先发制人意味着,在每一时间步骤中,您都会选择下一步执行的任务。另一方面,对于非先发制人的人来说,一旦你选择了一份工作,你就会把这份工作安排到完成为止,不管是否有一份新来的工作时间更短。有关更详细的解释,请参见这。
对于RR,只需选择您最久以前选择的那个。
https://stackoverflow.com/questions/19744006
复制相似问题