网站首页 > 技术教程 正文
关键词:时间, 进程, 调度, 队列, 切换 时间片轮转(RR)时间片轮转(RR)调度算法是专门为分时系统设计的。它类似于 FCFS调度,但是增加了抢占以切换进程。 该算法中,将一个较小时间单...
关键词:时间, 进程, 调度, 队列, 切换
时间片轮转(RR)
时间片轮转(RR)调度算法是专门为分时系统设计的。它类似于 FCFS调度,但是增加了抢占以切换进程。
该算法中,将一个较小时间单元定义为时间量或时间片。时间片的大小通常为 10~100ms。就绪队列作为循环队列。CPU 调度程序循环整个就绪队列,为每个进程分配不超过一个时间片的 CPU。
为了实现 RR 调度,我们再次将就绪队列视为进程的 FIFO 队列。新进程添加到就绪队列的尾部。CPU 调度程序从就绪队列中选择第一个进程,将定时器设置在一个时间片后中断,最后分派这个进程。
接下来,有两种情况可能发生。进程可能只需少于时间片的 CPU 执行。对于这种情况,进程本身会自动释放 CPU。调度程序接着处理就绪队列的下一个进程。否则,如果当前运行进程的 CPU 执行大于一个时间片,那么定时器会中断,进而中断操作系统。然后,进行上下文切换,再将进程加到就绪队列的尾部,接着 CPU 调度程序会选择就绪队列内的下一个进程。
不过,采用 RR 策略的平均等待时间通常较长。假设有如下一组进程,它们在时间 0 到达,其 CPU 执行以 ms 计:
进程执行时间P124P23P33
如果使用 4ms 的时间片,那么 P1 会执行最初的 4ms。由于它还需要 20ms,所以在第一个时间片之后它会被抢占,而 CPU 就交给队列中的下一个进程。由于 P2 不需要 4ms,所以在其时间片用完之前就会退出。CPU 接着交给下一个进程,即进程 P3。在每个进程都得到了一个时间片之后,CPU 又交给了进程 P1 以便继续执行。因此,RR 调度结果如下:
现在,我们计算这个调度的平均等待时间。P1 等待 10-4 = 6ms,P2 等待 4ms,而 P3 等待 7ms。因此,平均等待时间为 17/3 = 5.66ms。
在 RR 调度算法中,没有进程被连续分配超过一个时间片的 CPU(除非它是唯一可运行的进程)。如果进程的 CPU 执行超过一个时间片,那么该进程会被抢占,并被放回到就绪队列。因此,RR调度算法是抢占的。
如果就绪队列有 n 个进程,并且时间片为 q,那么每个进程会得到 1/n 的 CPU 时间,而且每次分得的时间不超过 q 个时间单元。每个进程等待获得下一个 CPU 时间片的时间不会超过 (n-1)q 个时间单元。例如,如果有 5 个进程,并且时间片为 20ms,那么每个进程每 100ms 会得到不超过 20ms 的时间。
RR 算法的性能很大程度取决于时间片的大小。在一种极端情况下,如果时间片很大,那么 RR 算法与 FCFS 算法一样。相反,如果时间片很小(如 1ms),那么 RR 算法可以导致大量的上下文切换。
例如,假设我们只有一个需要 10 个时间单元的进程。如果时间片为 12 个时间单元,那么进程在一个时间片不到就能完成,而且没有额外开销。如果时间片为 6 个时间单元,那么进程需要 2 个时间片,并且还有一个上下文切换。如果时间片为 1 个时间单元,那么就会有 9 个上下文切换,相应地使进程执行更慢(图 1)。
图 1 更小时间片如何增加上下文切换
因此,我们希望时间片远大于上下文切换时间。如果上下文切换时间约为时间片的 10%,那么约 10% 的 CPU 时间会浪费在上下文切换上。在实践中,大多数现代操作系统的时间片为 10~100ms,上下文切换的时间一般少于 10ms;因此,上下文切换的时间仅占时间片的一小部分。
周转时间也依赖于时间片大小。正如从图 2 中所看到的,随着时间片大小的增加,一组进程的平均周转时间不一定会改善。一般情况下,如果大多数进程能在一个时间片内完成,那么平均周转时间会改善。
图 2 周转时间如何随着时间片大小而改变
例如,假设有三个进程,都需要 10 个时间单元。如果时间片为 1 个时间单元,那么平均周转时间为 29;如果时间片为 10,那么平均周转时间会降为 20;如果再考虑上下文切换时间,那么平均周转时间对于较小时间片会增加,这是因为需要更多的上下文切换。
尽管时间片应该比上下文切换时间要大,但也不能太大。如果时间片太大,那么 RR 调度就演变成了 FCFS 调度。根据经验,80% 的 CPU 执行应该小于时间片。
- 上一篇: 魔兽世界WLK全职业属性显示WA
- 下一篇: 计算机操作系统笔记第二章进程管理中篇
猜你喜欢
- 2024-09-22 单核CPU执行多任务原理
- 2024-09-22 终于有人把线程进程问题讲明白了
- 2024-09-22 处理器是如何调度进程的?
- 2024-09-22 泛型并发对象池
- 2024-09-22 操作系统之处理机调度与死锁
- 2024-09-22 深圳奥迪A3车身改色,深圳奥迪改色保护膜,惠州惠阳汽车改色
- 2024-09-22 操作系统基本原理
- 2024-09-22 操作系统概论:第三章 进程调度与死锁
- 2024-09-22 操作系统之文件管理,万字长文让你彻底弄懂
- 2024-09-22 操作系统之进程管理(上),一文让你看懂操作系统进程管理
你 发表评论:
欢迎- 05-14喜报!双色球5注824万头奖花落辽宁等地,开奖情况一览
- 05-14双色球新一期前瞻:红球蓝球走势深度剖析,精选号码提前看
- 05-1449倍、33倍、30倍、15倍!双色球第25053期开奖:多张倍投票集结
- 05-14双色球25054期:红球:04、05、15、18、29、33 蓝球:05、08
- 05-14厉害了!495倍独蓝票、万元独蓝票双双报喜!双色球第25053期开奖
- 05-14双色球25054期!龙头02凤尾31,独蓝14稳中,连号20-21围剿奖池!
- 05-14双色球25054期参考:蓝球侧重选2路蓝,红球依然三金胆、重号先
- 05-14双色球25054期:独蓝04,头01尾30,连号15-16,6+1精选
- 最近发表
-
- 喜报!双色球5注824万头奖花落辽宁等地,开奖情况一览
- 双色球新一期前瞻:红球蓝球走势深度剖析,精选号码提前看
- 49倍、33倍、30倍、15倍!双色球第25053期开奖:多张倍投票集结
- 双色球25054期:红球:04、05、15、18、29、33 蓝球:05、08
- 厉害了!495倍独蓝票、万元独蓝票双双报喜!双色球第25053期开奖
- 双色球25054期!龙头02凤尾31,独蓝14稳中,连号20-21围剿奖池!
- 双色球25054期参考:蓝球侧重选2路蓝,红球依然三金胆、重号先
- 双色球25054期:独蓝04,头01尾30,连号15-16,6+1精选
- 一号之差!井喷1416注,5注一等奖,100注二等,双色球25053开奖
- 双色球25054期:1、5尾,头单,尾双,斜连三码,胆11、12、27
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)