多级反馈队列调度

时间:2014-09-18 15:55:39

标签: process operating-system scheduling

有人可以解释如何使用多级反馈队列调度绘制下面的甘特图

考虑具有三个队列的多级反馈队列调度,编号为Q1,Q2,Q3。调度程序首先执行Q1中的进程,该进程的时间量为10毫秒。如果进程未在此时间内完成,则将其移至Q2的尾部。仅当Q1为空时,调度程序才会执行Q2中的进程。 Q2头部的过程给出了16毫秒的量子。如果它没有完成,则被抢占并被放入Q3。 Q3中的进程基于FCFS运行,仅当Q1和Q2为空时才会运行。

Processes Arrival time     Burst time
P1 0 17
P2 12 25
P3 28 8
P4 36 32
P5 46 18

4 个答案:

答案 0 :(得分:1)

首先,让我们确定量子时间= 10 ms,因为我们需要实现Multilevel Feedback Queue Scheduling算法。

进程将保留在就绪队列中!因此,队列将按时间在队列中包含P1,P2,P3,P4,P5,但是,如果进程超过量子时间,则反馈将继续发送到较低的队列,因此,将被置于较低的队列中,如果留下不完整的执行!

如下所示,最后时间包括间隔,起始时间是独占的,但必须考虑之间的时间间隔: -

   1--->10 ms-------P1
   10-->17 ms-------P1     // P1 finished execution..........
   17-->20 ms-------P2   
   20-->30 ms-------P2     // P2 sent to 1st lower queue as it's still incomplete
   30-->38 ms-------P3     // P3 finished execution..........
   38-->40 ms-------P4
   40-->50 ms-------P4     // pushed next to P2 in 1st lower queue
   50-->60 ms-------P5     // pushed next to P4 in 1st lower queue

现在,第一个较低的队列开始运行,时间量为16毫秒。

   60-->82 ms-------P2     // P2 finished execution.........
   82-->98 ms-------P4     // P4 sent in 2nd lower queue as it's still incomplete
   99->107 ms-------P5     // P5 finished execution..........

现在,第二个较低的队列开始实施FCFS算法。

 107-->111 ms-------P4     // Finally, P4 finished execution..........

因此,这将是时间 - 量子= 10毫秒的甘特图。

如果你有任何疑问,请在下面发表评论!

答案 1 :(得分:0)

到达队列1的进程会抢占队列2中的进程。(操作系统概念书,国际学生版,第9版,第216页)

所以,我认为P2在第12秒抢占P1并且上面的建议不正确。

答案 2 :(得分:0)

Gant chart should be like:

在此解决方案中执行过程似乎是错误的。所以我已经纠正了。如果我错了,请纠正我。

答案 3 :(得分:-1)

最终答案:- 队列 Q1 为空,然后 Q2 正在执行,但在 12ms 时 p2 进入 Q1,因此 Q2 停止执行该进程并等待空 Q1
Shown in Image