我正在尝试理解这些调度算法:
所以,给出一些意见:
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获得的结果令人困惑。
答案 0 :(得分:1)
我会给你一些提示。
对于SJF和SRT,你没有真正的定义 - 只是从逻辑上思考这个名称。
对于 SJF ,选择最短到达的未完成作业。使用工作的总时间,即3,5,2,5,5 - 不注意已经安排了多少工作。
对于 SRT ,选择剩余时间最短的到期未完成作业。剩余时间简单地定义为总时间减去已安排的时间。因此,在时间2,您已安排AA
,因此A
的剩余时间将为3-2 = 1
。
对于SJF和SRT,冲突(当有两个具有相同时间的作业时)可以通过选择首先到达的作业来解决。对于SRT,也可以通过选择最长的工作来解决冲突。你必须证实这一点。
请注意,这些算法有两种变体 - 抢先和非抢先。简而言之,先发制人意味着,您每次都选择下一步执行的工作。另一方面,对于非预备性的,一旦你选择了一份工作,你就可以安排这份工作,直到工作结束,无论是否有新工作的时间更短。有关更详细的说明,请参阅this。
对于 RR ,只需选择您最早选择的那个。