有人可以解释如何使用多级反馈队列调度绘制下面的甘特图
考虑具有三个队列的多级反馈队列调度,编号为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
答案 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)
在此解决方案中执行过程似乎是错误的。所以我已经纠正了。如果我错了,请纠正我。
答案 3 :(得分:-1)