Algorithm 系统编程|调度时间
我试图理解这些调度算法:Algorithm 系统编程|调度时间,algorithm,scheduling,round-robin,Algorithm,Scheduling,Round Robin,我试图理解这些调度算法: 先到先得(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
- 先到先得(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计划为aaabbbbccddddeeeee
剩下的我似乎想不出来。有人能帮我解释一下区别吗
我试着用谷歌搜索,但我对SJF的搜索结果令人困惑。我给你一些提示 对于SJF和SRT,您不需要真正的定义,只需要从逻辑上考虑名称 对于SJF,选择到达时间最短的未完成作业。使用作业的总时间,即3,5,2,5,5-不要注意该作业已经安排了多少时间 对于SRT,选择剩余时间最少的已到达未完成作业。剩余时间仅定义为总时间减去已安排的时间。因此,在时间2,您已经安排了
AA
,因此A
的剩余时间将是3-2=1
对于SJF和SRT,冲突(当两个作业的时间相同时)可能可以通过选择最先到达的作业来解决。对于SRT,冲突也可以通过选择最长的作业来解决。你必须确认这一点
请注意,这些算法有两种变体-抢占和非抢占。简言之,先发制人意味着,在每一步中,您都会选择下一步要执行的作业。另一方面,对于非先发制人的,一旦你选择了一个工作,你就可以安排这个工作直到它完成,不管是否有一个时间更短的新工作。有关更详细的说明,请参阅
对于RR,只需选择您在最早之前选择的一个。那么sjf将是AAACCBBBBBDDDDDEEEE?我仍然不了解您对SRT的解释。@NewFile我对我的解释做了一些修改。@NewFile否。让我们看一下时间1。RT表示A=
3-1=2
,RT表示B=5-0=5
,2<5,因此您需要选择A,而不是B。@NewFile将BCC
替换为CCB
,然后选择是。在时间3,对于B=5的RT,对于C=2的RT。哦,你有一个E太多,一个D太少。