Process 多级反馈队列调度

Process 多级反馈队列调度,process,operating-system,scheduling,Process,Operating System,Scheduling,有人能解释一下如何使用多级反馈队列调度绘制甘特图吗 考虑一个具有三个队列的多级反馈队列调度,编号为Q1、Q2、Q3。调度程序首先在Q1中执行进程,Q1的时间量为10毫秒。如果一个进程没有在这段时间内完成,它将被移动到Q2的尾部。调度器仅在Q1为空时执行Q2中的进程。Q2开头的进程被赋予16毫秒的量子。如果它没有完成,它将被抢占并放入Q3。仅当Q1和Q2为空时,Q3中的进程才以FCFS为基础运行 Processes Arrival time Burst time P1

有人能解释一下如何使用多级反馈队列调度绘制甘特图吗

考虑一个具有三个队列的多级反馈队列调度,编号为Q1、Q2、Q3。调度程序首先在Q1中执行进程,Q1的时间量为10毫秒。如果一个进程没有在这段时间内完成,它将被移动到Q2的尾部。调度器仅在Q1为空时执行Q2中的进程。Q2开头的进程被赋予16毫秒的量子。如果它没有完成,它将被抢占并放入Q3。仅当Q1和Q2为空时,Q3中的进程才以FCFS为基础运行

Processes Arrival time Burst time
P1 0 17
P2 12 25
P3 28 8
P4 36 32
P5 46 18 处理到达时间突发时间
p1017
P2 12 25
P3288
P4 36 32
P5 46 18
首先,让我们修正一个量子时间=10ms,因为我们需要实现
多级反馈队列调度
算法

进程将保留在就绪队列中!因此,队列将按时间在队列中包含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 ms的甘特图


如果您有任何疑问,请在下面留言

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

因此,我认为P2在第12秒时优先于P1,上述建议不正确。


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

最终回答:-队列Q1是空的,那么Q2正在执行,但是在12毫秒的时候p2进入Q1,所以Q2停止执行该进程,等待空的Q1

为什么p2有17-->20,而时间量是10ms@user3006081-因为P1在17毫秒前完成。队列中除了P2没有其他进程,所以P2在这段时间内运行。再一次,在接下来的10毫秒量子中,P2会一直运行!我已经添加了关于这个问题的更多信息