调度算法——非抢占式多级反馈队列

267 阅读2分钟

非抢占式多级反馈队列

注:多级队列时间片一般为:1,2,4,8...

P1P2P3P4P5
到达时间02456
服务时间63513

假设队列有:
Q1:时间片1
Q2:时间片2
Q3:时间片4
Q4:时间片8

题解
时间执行的进程注释时间片
0P10时刻只有P1到达\color{orange}{P1到达},P1进入队列Q1,此时队列情况如下: Q1=>\color{green}{Q1=>} [P16]\color{blue}{[P1_6]},执行P1执行1\color{purple}{1个}时间片
1P11时刻依然只有P1到达,因为1个时间片执行完,所以P1进入队列Q2,此时队列情况如下: Q2=>\color{green}{Q2=>} [P15]\color{blue}{[P1_5]},执行P1执行2\color{purple}{2个}时间片
3P23时刻P2到达\color{orange}{P2到达},P2进入队列Q1,P1进入队列Q3,此时队列情况如下:Q1=>\color{green}{Q1=>} [P23]\color{blue}{[P2_3]}Q3=>\color{green}{Q3=>} [P13]\color{blue}{[P1_3]},执行P2执行1\color{purple}{1个}时间片
4P34时刻P3到达\color{orange}{P3到达},P3进入队列Q1,P2进入队列Q2,此时队列情况如下:Q1=>\color{green}{Q1=>} [P35]\color{blue}{[P3_5]}Q2=>\color{green}{Q2=>} [P22]\color{blue}{[P2_2]}Q3=>\color{green}{Q3=>} [P13]\color{blue}{[P1_3]},执行P3执行1\color{purple}{1个}时间片
4P34时刻P3到达\color{orange}{P3到达},P3进入队列Q1,P2进入队列Q2,此时队列情况如下:Q1=>\color{green}{Q1=>} [P35]\color{blue}{[P3_5]}Q2=>\color{green}{Q2=>} [P22]\color{blue}{[P2_2]}Q3=>\color{green}{Q3=>} [P13]\color{blue}{[P1_3]},执行P3执行1\color{purple}{1个}时间片
5P45时刻P4到达\color{orange}{P4到达},P4进入队列Q1,P3进入队列Q2,此时队列情况如下:Q1=>\color{green}{Q1=>} [P41]\color{blue}{[P4_1]}Q2=>\color{green}{Q2=>} [P22P34]\color{blue}{[P2_2 ,P3_4]}Q3=>\color{green}{Q3=>} [P13]\color{blue}{[P1_3]},执行P4执行1\color{purple}{1个}时间片
6P5P4完成\color{red}{P4完成}, 6时刻P5到达\color{orange}{P5到达},P5进入队列Q1,此时队列情况如下:Q1=>\color{green}{Q1=>} [P53]\color{blue}{[P5_3]}Q2=>\color{green}{Q2=>} [P22P34]\color{blue}{[P2_2 ,P3_4]}Q3=>\color{green}{Q3=>} [P13]\color{blue}{[P1_3]},执行P5执行1\color{purple}{1个}时间片
7P27时刻,Q1队列执行结束,执行Q2队列。P5进入队列Q2,此时队列情况如下:Q2=>\color{green}{Q2=>} [P22P34,P52]\color{blue}{[P2_2 ,P3_4 , P5_2]}Q3=>\color{green}{Q3=>} [P13]\color{blue}{[P1_3]},执行P2执行2\color{purple}{2个}时间片
9P3P2完成\color{red}{P2完成}。此时队列情况如下:,Q2=>\color{green}{Q2=>} [P34,P52]\color{blue}{[P3_4 , P5_2]}Q3=>\color{green}{Q3=>} [P13]\color{blue}{[P1_3]},执行P3执行2\color{purple}{2个}时间片
11P5P3进入Q3队列,此时队列情况如下:Q2=>\color{green}{Q2=>} [P52]\color{blue}{[P5_2]}Q3=>\color{green}{Q3=>} [P13P32]\color{blue}{[P1_3,P3_2]},执行P5执行2\color{purple}{2个}时间片
13P1P5完成\color{red}{P5完成}。Q2队列执行结束,执行Q3队列,此时队列情况如下: Q3=>\color{green}{Q3=>} [P13P32]\color{blue}{[P1_3,P3_2]},执行P1执行4\color{purple}{4个}时间片
16P3P1完成\color{red}{P1完成}。此时队列情况如下: Q3=>\color{green}{Q3=>} [P32]\color{blue}{[P3_2]},执行P3执行4\color{purple}{4个}时间片
18P3P3完成\color{red}{P3完成}。此时进程已全部结束,程序结束
答案
P1P2P3P4P5
完成时间16918613
周转时间(16-0=)16(9-2=)7(18-4=)14(6-5=)1(13-6=)7
平均周转时间9
完成时间: 在整个程序运行过程中,此进程服务完成的时间
周转时间 : 完成时间 - 到达时间
平均周转时间: 总周转时间 / 进程总数