Skip to content

时间片轮转调度

考情分析

时间片轮转是交互式系统最常用的调度算法,408 真题中常考不同时间片大小下的调度过程。属于 🔥🔥🔥 高频核心。

FCFS 和 SJF 都可能让某些进程长时间得不到响应。在交互式系统中,用户敲一个命令等半天是不能接受的——时间片轮转的核心思路就是"雨露均沾",每人轮流用一小段 CPU。

算法规则

时间片轮转(Round Robin, RR)

  1. 所有就绪进程排成一个循环队列
  2. 每个进程获得一个时间片(Time Quantum, q)
  3. 时间片用完但进程未结束 → 进程被移到队尾,CPU 分配给队首进程
  4. 进程提前完成 → 立即让出 CPU,调度下一个

RR 是抢占式算法(由时钟中断触发抢占)。

调度示例

进程到达时间服务时间
P105
P213
P321
P433

时间片 q = 2

时间: 0   2   4  5   7   9  10 11 12
      ├───┤───┤──┤───┤───┤──┤──┤──┤
       P1  P2  P3  P1  P4 P2 P1 P4

详细过程:

  • t=0:就绪队列[P1],执行 P1(剩余5→3)
  • t=2:P2、P3 已到达,就绪队列[P2,P3,P1],执行 P2(剩余3→1)
  • t=4:就绪队列[P3,P1,P4,P2],执行 P3(剩余1→0,完成)
  • t=5:就绪队列[P1,P4,P2],执行 P1(剩余3→1)
  • t=7:就绪队列[P4,P2,P1],执行 P4(剩余3→1)
  • t=9:就绪队列[P2,P1,P4],执行 P2(剩余1→0,完成)
  • t=10:就绪队列[P1,P4],执行 P1(剩余1→0,完成)
  • t=11:就绪队列[P4],执行 P4(剩余1→0,完成)
进程完成时间周转时间带权周转时间
P111112.20
P21093.00
P3533.00
P41293.00
平均8.002.80

新到达进程 vs 时间片用完的进程

当时间片用完时,如果有新到达的进程,通常新到达进程先入队,然后时间片用完的进程排到队尾。不同教材可能有不同规定,做题时注意题目说明。

交互可视化

加载可视化中...

时间片大小的影响

时间片效果
太大退化为 FCFS(每个进程一次就能执行完,相当于没有轮转)
太小上下文切换过于频繁,系统开销大
合适一般设置为略大于一次典型交互的响应时间

经验法则:时间片应该让大多数进程(约80%)能在一个时间片内完成。

特点总结

特性结论
抢占方式抢占式(时钟中断驱动)
是否饥饿不会饥饿(每个进程都能轮到)
适用场景分时系统/交互式系统
对长短作业对长短作业都比较公平
缺点频繁切换有额外开销

考研高频考点

  • 🔥🔥🔥 给定不同时间片大小,模拟 RR 调度过程并计算指标
  • 🔥🔥🔥 时间片太大退化为 FCFS
  • 🔥🔥 新到达进程和时间片用完进程的入队顺序
  • 🔥 RR 不会导致饥饿
  • 🔥 时间片轮转适用于分时/交互系统

RR 对所有进程一视同仁,但有些进程(比如系统进程)确实更紧急。下一篇看优先级调度如何区分轻重缓急。

真题练习

相关真题(5题)

2026Q45综合题10分

综合题:优先级+时间片轮转调度算法的计算与分析

2022Q30选择题2分

时间片轮转调度:计算最后一个进程的周转时间

2018Q29选择题2分

时钟中断:更新系统时钟、CPU占用时间和剩余时间片

2017Q27选择题2分

时间片用完:进程从执行态变为就绪态,不是阻塞态

2014Q23选择题2分

调度饥饿:时间片轮转公平对待所有进程,不会饥饿