详细讲解操作系统常用的四种作业调度算法(FCFS 丨 SJF 丨 HRRN 丨 RR)--时间片轮转调度算法(RR)
最编程
2024-05-04 20:25:43
...
时间片轮转调度算法(Round Robin Scheduling)是一种基于时间片的进程调度算法,旨在公平地分配CPU时间给各个就绪进程。
时间片轮转调度算法的工作过程如下:
- 将所有就绪进程按照到达时间的顺序放入就绪队列。
- 设定一个固定的时间片大小,通常为几十毫秒。
- 从就绪队列中选择一个进程,分配给它一个时间片的CPU时间。
- 若该进程在时间片结束前完成任务,则该进程被移出就绪队列,否则将其放到队列的末尾等待下一次调度。
- 重复步骤3和步骤4,直到所有进程执行完毕。
时间片轮转调度算法的优点是能够公平地分配CPU时间给每个就绪进程,避免某个进程独占CPU资源,从而提高系统的可响应性和吞吐量。
然而,时间片轮转调度算法也存在一些缺点。首先,如果时间片太短,频繁进行上下文切换会带来较大的开销。另外,如果某些进程的执行时间较长,会导致其他进程长时间等待,可能会出现“长作业效应”问题。
总结来说,时间片轮转调度算法是一种能够公平分配CPU时间的调度算法,适用于多道程序环境。但需要注意时间片大小的设置以及长作业效应问题。
样例4:
5个进程P1、P2、P3、P4、P5几乎同时到达,预期运行时间分别为10、6、2、4、8个时间单位。请按时间片轮转调度算法计算任务的平均周转时间(假定时间片大小为2个时间单位)。
分析:
按顺序运行5个进程
进程号 | P1 | P2 | P3 | P4 | P5 | 备注 |
剩余运行时间 | 10 | 6 | 2 | 4 | 8 | |
第一趟 | 2 | 4 | 6 | 8 | 10 | P3运行完 |
剩余运行时间 | 8 | 4 | 0 | 2 | 6 | |
第二趟 | 12 | 14 | 16 | 18 | P4运行完 | |
剩余运行时间 | 6 | 2 | 0 | 0 | 4 | |
第三趟 | 20 | 22 | 0 | 24 | P2运行完 | |
剩余运行时间 | 4 | 0 | 0 | 0 | 2 | |
第四趟 | 26 | 28 | P5运行完 | |||
剩余运行时间 | 2 | 0 | 0 | 0 | 0 | |
第四趟 | 30 | P1运行完 |
时间片轮转调度顺序:
网络异常,图片无法展示
|
平均值 | ||||||
周转时间 | 10 | 16 | 18 | 22 | 30 | 19.2 |
带权周转时间 | 1 | 2.67 | 9 | 5.5 | 3.75 | 4.384 |