“若OS 16采用轮转,每段运行不超过q时间单位,每次交接成本为c,且目标线程入队时CPU正在运行另一线程。设含当前运行者和目标在内,始终至多N个可运行线程,目标排在队尾,等待期间无新线程插队…”
我们通常不知道程序还要运行多久,却可以限制它这一次占用CPU多久。轮转给每个就绪任务最多一个时间片,然后让它排到队尾。它用可执行的时间限制换取较早的首次服务,不需要像最短剩余时间那样预知总工作量。
形式陈述
一片结束以后,谁回到队列
固定单核、可抢占、时间片上限
完成者离开;阻塞者等外部事件,不立即重排;只有仍可运行且片用尽者回到队尾。新到达与唤醒者也入队尾。到达本身不抢占当前片,因此一个片并不是每有新任务就重新开始计时。
同刻事件采用SCHED-16边界规则理路CPU服务、就绪与时间账本CPU service accounting · CPU burst · Ready time · Preemptive scheduling model用实际服务量、剩余量和就绪等待刻画单核调度,固定同刻事件顺序,并把墙钟时间分成运行、阻塞和等待。:结算并移除完成者,先放入同刻到达者,再把片用尽但未完成的当前任务放到队尾。若完成与片用尽恰在同刻发生,完成优先,不能把DONE任务再排一次。
时间片只度量交付给任务的服务,不包括切换开销。本页先把开销设为0,稍后逐笔加入。
直觉
用两毫秒时间片跑完四项工作
令
| 运行区间 | 任务 | 该段结束后的剩余量 | 完成/重排后的READY队列 |
|---|---|---|---|
| 0–2 | A | 7 | B、C、A |
| 2–4 | B | 2 | C、A、D、B |
| 4–6 | C | 0 | A、D、B |
| 6–8 | A | 5 | D、B、A |
| 8–9 | D | 0 | B、A |
| 9–11 | B | 0 | A |
| 11–13 | A | 3 | A |
| 13–15 | A | 1 | A |
| 15–16 | A | 0 | 空 |
D只需1,8–9完成后立即交接,不必等到10才让B运行。最后只剩A,13与15仍可作片边界检查,但无需把CPU交给别人;在时间图上可把11–16画成一条连续A,账本里仍能保留片边界。
按A、B、C、D排列,完成为
这次RR的平均周转优于FIFO,但不能由一个例子得出普遍优势。三个同时到达、等长工作在RR中会交错到后面才陆续完成,而FIFO会较早完整清掉第一项,见指标页的三任务对照理路周转、响应与CPU利用率CPU scheduling metrics · Turnaround time · Scheduling response time · CPU utilization从同一执行轨迹分别计算完成、首次派发、就绪等待与整机吞吐,说明平均值、尾部与忙碌口径不能互相替代。。
例子与边界
相邻片不一定对应一次真正切换
现在规定:从一项任务切到另一项需要
- A:0–2,交接2–2.25,B:2.25–4.25
- 交接4.25–4.5,C:4.5–6.5
- 交接6.5–6.75,A:6.75–8.75
- 交接8.75–9,D:9–10
- 交接10–10.25,B:10.25–12.25
- 交接12.25–12.5,A:12.5–17.5
真实换任务6次,费用1.5;因此总历时
本例增加费用后,D在B第二段运行期间已经到达,队列顺序恰好与零费用情况一致;换一份到达表可能改变顺序。模拟器必须在交接区间内照常接收新到达者,再按指定派发规则决定目标是否保持。
一个有条件的等待上界
设某任务刚排到队尾,含它在内始终至多
例如A片末重新入队,另有B等待,
若计时起点进一步保证另一个任务已经开始实际运行,就没有那笔额外的初始交接;此时可收紧为
若目标本身在等待磁盘,它还不是READY,不受该界保护;若更高优先级任务可以无限插入,或系统长时间暂停调度,同样失去保证。这里限制的是一次已就绪后的等待,不是整个作业一定在某个截止期前完成。
时间片越短,代价不一定越小
在持续拥挤、每片跑满、每片后都换任务的长时间窗口中,一个周期交付
例如
反过来,若
推论与应用
轮流运行,不是自动按用户公平
若每个进程一张队列席位,一个用户启动十个繁忙进程,另一个用户只有一个,那么前者可取得约十倍的CPU时间。RR公平的是它轮询的实体;把实体改成用户、容器或任务组,需要另一层分配合同。
等长片也只保证CPU时间份额,不保证完成相同工作量。不同程序可能受缓存、内存带宽或指令构成限制;本单元的单位服务模型没有把“1毫秒”解释成固定业务产出。
轮转的队列操作可用常数次入队、出队实现,但计时中断、上下文保存以及缓存干扰另计。对某个实现声称低开销时,应区分数据结构复杂度与真实机器测量,而不是由
参考资料
- Corbató、Merwin-Daggett、Daley,“An Experimental Time-Sharing System”,1962,pp.336–338:小时间片轮转、计时中断与使用时间记账。
- Arpaci-Dusseau与Arpaci-Dusseau,OSTEP, Ch.7, §7.7:RR、响应与交接成本取舍。本页明确的同刻次序、收费规则和有限轨迹为自定实验。