2013-07-04 38 views
3

我想了解多级反馈队列调度,我从William Stallings操作系统内部和原理设计(第7版)中遇到以下示例。了解多级反馈队列调度

我得到了这个过程:

enter image description here

而结果在书中是这样的: enter image description here

我相信我做的第一个步骤赖特,但是当我去处理E我的下一个过程的CPU时间是B而不是D,如书中的例子。

如果有nRQ,每次一个进程中取得的CPU时间后,它被降级为低优先级的时间RQ或者,例如,过程ARQ1,并在没有任何过程中,我无法理解çowerRQ,该过程被提升为准备好的队列(这是我的工作方式)。

有人可以解释我怎么了,在上面的例子中,E被处理后,D获得CPU时间和它们的过程E(而不是B)送达?

回答

1

多级反馈algortihm总是选择非空的最低队列(即具有最高优先级的队列)的第一个作业。

当作业E离开RQ1(时间9)时,作业D在队列RT2中,但作业B在RT3中。因此,B被执行。请考虑修改后的数字,其中红色数字表示作业执行的队列。 run queues

正如您所看到的,作业B已经在时间9离开了RT2(更先前,它在时间6离开了RT2),而作业D刚刚进入。

+0

感谢您的解释 – Favolas

+0

我知道这是一个旧的答案。但是还有人能告诉我为什么A在4时刻执行?在时间3之后,B被降级到第二队列右边,所以它应该首先被执行,因为A在时间2之后将在第三队列中 – Zephyr