时间片轮转法(RR)
算法描述:用于分时系统中的进程调度。每次调度时,总是选择就绪队列的队首进程,让其在CPU上运行一个系统预先设置好的时间片。一个时间片内没有完成运行的进程,返回到绪队列末尾重新排队,等待下一次调度。
【例】进程A、B、C、D需要运行的时间分别为20ms、10 ms、15 ms、5 ms,均在0时刻到达。到达的先后次序为A、B、C、D。如果时间片分别为1 ms和5ms,计算各个进程的带权周转时间和平均带权周转时间。
分析 在掌握了时间片轮转法概念的基础上,我们可以用一个执行时间图来形象地表示作进程的执行情况,帮助我们理解此题。具体如下:
根据执行时间图就可以计算各个进程的带权周转时间和平均带权周转时间了。这里要注意的是,要记住带权周转时间和平均带权周转时间的算术公式:
带权周转时间W,即:
W = T/R
其中T为周转时间,R为实际运行时间。
平均带权周转时间为:
解:采用时间片轮转法进行调度,算法的性能指标如下:
到达时间 |
进 程 名 |
到达时间 |
运行时间 |
开始时间 |
完成时间 |
周转时间 |
带权 周转时间 |
时间片=1 |
A |
0 |
20 |
0 |
50 |
50 |
2.5 |
B |
0 |
10 |
1 |
34 |
34 |
3.4 |
|
C |
0 |
15 |
2 |
45 |
45 |
3.0 |
|
D |
0 |
5 |
3 |
20 |
20 |
4.0 |
|
平均周转时间=37.25 平均带权周转时间=3.225 |
|||||||
时间片=5 |
A |
0 |
20 |
0 |
50 |
50 |
2.5 |
B |
0 |
10 |
5 |
30 |
30 |
3.0 |
|
C |
0 |
15 |
10 |
45 |
45 |
3.0 |
|
D |
0 |
5 |
15 |
20 |
20 |
4.0 |
|
平均周转时间=36.25 平均带权周转时间=3.125 |
感兴趣的同学还可以根据时间片从1~10的变化,多计算几次,并分析每次计算得到的平均周转时间,做一条平均周转时间随时间片变化的曲线,来体会时间片的变化对平均周转时间的影响,并分析原因。