循环调度:两种不同的解决方案 - 这怎么可能?

时间:2012-03-28 23:38:34

标签: operating-system scheduling round-robin

问题:

五个批处理作业A到E,几乎同时到达计算机中心。他们估计跑步时间为10分钟,6分钟,2分钟,4分钟和8分钟。它们(外部确定的)优先级分别为3,5,2,1和4,其中5为最高优先级。确定平均过程周转时间。忽略进程切换开销。对于循环调度,假设系统是多道程序设计,并且每个作业都获得CPU的公平份额。所有作业都完全受CPU限制。

解决方案#1 以下解决方案来自this page

  

对于循环赛,在前10分钟内,每项工作获得1/5   中央处理器。在10分钟结束时,C结束。在接下来的8   分钟,每个作业获得1/4的CPU,之后D完成。   然后,剩下的三个作业中的每一个都获得6的CPU的1/3   分钟,直到B完成,等等。五个完成时间   工作分别为10,18,24,28,30,平均为22分钟。

解决方案#2 以下解决方案来自康奈尔大学,可以找到here,并且明显不同于前一个解决方案,即使问题在中完全< / em>相同的形式(这个解决方案,顺便说一下,对我来说更有意义):

  

请记住,周转时间是经过的时间   到达工作和完成工作之间。因为我们假设   所有工作都在0时到达,周转时间就是时间   他们完成了。 (a)Round Robin:下表给出了一个休息时间   在每个时间段内将处理哪些工作。一个 *   表示作业在该量程期间完成。

1 2 3 4 5  6 7 8  9 10  11 12 13 14  15 16 17 18  19 20 21  22 23 24  25 26  27 28  29 30  
A B C D E  A B C* D E   A  B  D  E   A  B  D* E   A  B  E   A  B* E   A  E   A  E*  A  A*

结果不同:例如,在第一个C中,C在10分钟后结束,而在第二个C中,C在8分钟后结束。

哪一个是正确的,为什么?我很困惑..提前致谢!

2 个答案:

答案 0 :(得分:1)

问题不同。第一个问题没有指定时间量,所以你必须假设量子与一分钟相比非常小。第二个问题明确规定了一分钟的调度程序量。

第二个解决方案的神秘之处在于它假定任务以字母顺序运行。我只能假设这是在整个课程中做出的假设,所以学生应该知道在这里做到这一点。

答案 1 :(得分:0)

事实上,没有“正确”的RR算法。 RR仅仅是一系列算法,基于以循环次序调度若干任务的通用概念。实现可能会有所不同(例如,您可以考虑任务优先级,也可以将其丢弃,或者您可以手动将优先级设置为任务长度或其他任何因素的函数)。

所以答案是 - 两种算法似乎都是正确的,它们只是不同。