操作系统 RR循环调度算法
在本教程中,我们将学习最有效的CPU进程调度算法,名为循环调度CPU进程调度。这个算法非常特殊,因为它将消除我们在先前的CPU进程调度算法中发现的所有缺陷。
循环调度CPU调度的流行程度很高,因为循环调度仅在抢占态中工作。这使得它非常可靠。
重要缩写
- CPU – – -> 中央处理器
- AT – – -> 到达时间
- BT – – -> 延迟时间
- WT – – -> 等待时间
- TAT – – -> 周转时间
- CT – – -> 完成时间
- FIFO – – -> 先进先出
- TQ – – -> 时间片
循环调度CPU调度
循环调度CPU调度是历史上使用过的最重要的CPU调度算法之一。循环调度CPU调度使用时间片(TQ)。时间片是从延迟时间中减去的,以完成一块进程。
时间共享是该算法的主要重点。该算法的每一步都是循环执行的。系统定义了一个特定的时间片,称为时间片。
首先,有资格进入就绪队列的进程进入就绪队列。输入就绪队列的第一个进程执行一段时间的时间片后,执行完成,该进程将从就绪队列中删除。即使现在进程需要一些时间来完成其执行,该进程也会被添加到就绪队列中。
就绪队列不会保持已经在就绪队列中的进程。就绪队列设计成不保留非唯一进程。保持相同进程将增加进程的冗余。
当进程执行完成后,就绪队列不会将完成的进程保留。
优点
循环调度的优点包括:
- 每个作业都被分配了公平的CPU时间。
- 因为它不依赖于爆发时间,可以真正地在系统中实现。
- 它不受抢占式调度算法中出现的追车效应或饥饿问题的影响。
缺点
循环调度的缺点包括:
- 操作系统切片时间过低会导致CPU输出减少。
- 循环调度方法在切换上下文的时间上较长。
- 时间量子对其性能有重大影响。
- 程序无法设置优先级。
示例:
S. No Process ID Arrival Time Burst Time
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
1 P 1 0 7
2 P 2 1 4
3 P 3 2 15
4 P 4 3 11
5 P 5 4 20
6 P 6 4 9
假设时间片TQ = 5
就绪队列:
P1, P2, P3, P4, P5, P6, P1, P3, P4, P5, P6, P3, P4, P5
甘特图:
平均完成时间
Average Completion Time = ( 31 +9 + 55 +56 +66 + 50 ) / 6
Average Completion Time = 267 / 6
Average Completion Time = 44.5
平均等待时间
Average Waiting Time = ( 5 + 26 + 5 + 42 + 42 + 37 ) / 6
Average Waiting Time = 157 / 6
Average Waiting Time = 26.16667
平均转换时间
Average Turn Around Time = ( 31 + 8 + 53 + 53 + 62 + 46 ) / 6
Average Turn Around Time = 253 / 6
Average Turn Around Time = 42.16667