“两者使用CPU服务与就绪状态作为共同接口,并且都是工作保守政策:有任务可运行时不主动空闲。开始、等待、完成和响应时间按共同指标记账。”
“这个调度更快”少了一个重要对象:是谁更快完成,谁更早第一次运行,还是整批工作更快结束?这几个问题可能得到相反答案。本页从同一份服务账本理路CPU服务、就绪与时间账本CPU service accounting · CPU burst · Ready time · Preemptive scheduling model用实际服务量、剩余量和就绪等待刻画单核调度,固定同刻事件顺序,并把墙钟时间分成运行、阻塞和等待。读出不同指标,再用小例子说明为什么不能只报一个平均数。
形式陈述
完成得快,与第一次轮到得早
任务
这里特意写“首次派发”:应用的响应可能是第一字节、第一帧或完整答案,那要等程序产生相应事件才能测量。第一次获得0.1毫秒CPU并不证明用户已经看到输出。排队论的文献中的“response time”也常指整个逗留时间,读取不同来源时须先对齐定义。
若任务没有阻塞,总服务为
阻塞存在时,应改为
直觉
从四条记录直接算出答案
在SCHED-16上,先考虑一种简单轨迹:A运行0到9,B运行9到13,C运行13到15,D运行15到16。服务长度仍是9、4、2、1。
| 任务 | 到达 |
首次运行 |
完成 |
周转 |
响应 |
等待 |
|---|---|---|---|---|---|---|
| A | 0 | 0 | 9 | 9 | 0 | 0 |
| B | 1 | 9 | 13 | 12 | 8 | 8 |
| C | 2 | 13 | 15 | 13 | 11 | 11 |
| D | 4 | 15 | 16 | 12 | 11 | 11 |
逐列相加再除以4,平均周转为
如果A运行0到1后被暂停,直到8才继续并在16完成,A的首次响应仍为0,周转变16,就绪等待变7。“A立即响应”没有揭示它后来停了很久。
例子与边界
为什么两种“最好”可以冲突
取三个同时到达的任务X、Y、Z,服务都为4,无切换开销。按X、Y、Z完整运行,首次运行是0、4、8,完成是4、8、12。平均响应为4,平均周转为8。
改用1毫秒轮转,时间线是X、Y、Z循环四轮。首次运行变成0、1、2,完成变成10、11、12。平均响应降为1,平均周转却升为11。两种政策都在12完成全部工作,且总服务都是12。
这里没有一个政策在所有指标上获胜。长任务先完整完成,能较早清掉一个未完成者;大家轮流取得短片,能让每人较早开始。这是不同目标之间的真实取舍,而不是谁把公式算错了。
平均数没有说明谁承受了长等待
除均值外,至少检查最长等待以及每个任务的原始值。响应列表
可用归一化周转
“95分位”也需要一个规定好的样本分位算法,四个任务的小样本不足以代表长期服务尾部。可以报这四个观测的最大值、完整列表和观察窗口,不把一次实验包装成总体尾延迟保证。
利用率和吞吐量需要共同的窗口
在窗口
例如完成16毫秒服务另花2毫秒切换、没有空闲,总历时18。有用利用率为
本页把吞吐量记为从0开始、截至
所有比较必须使用相同窗口。只在CPU忙时取样,当然会得到100%利用率;把空闲夜间算入整天则可能很低。二者回答不同问题,不能用选择分母的方法制造政策优势。
推论与应用
指标用于决策,也用于找错
逐任务验证
若有任务尚未完成,它的
这些指标描述一次轨迹。要比较政策的一般表现,还要说明到达分布、服务量是否已知、切换成本和负载强度。最短作业理路FIFO与最短作业调度FIFO CPU scheduling · FCFS scheduling · Shortest job first · SJF · Shortest processing time用同一到达表比较FIFO与非抢占SJF,通过相邻交换证明同到达批作业的最短优先最优性,并给出晚到任务的边界。的最优性会明确固定其中一组条件;彩票调度理路彩票调度与随机服务份额Lottery scheduling · Proportional-share lottery scheduling · Lottery tickets用均匀抽签把正权重转成时间片选择概率,精算有限样本服务份额和连续未中签概率,区分概率无饥饿与确定等待界。则主要讨论长期份额,不能拿同一词“公平”替代测量对象。
参考资料
- Arpaci-Dusseau与Arpaci-Dusseau,OSTEP, Ch.7, §§7.2、7.6–7.7:周转、首次运行响应与轮转取舍。本页数据表和三任务对照独立构造。
- Mor Harchol-Balter,Performance Modeling and Design of Computer Systems: Queueing Theory in Action,Cambridge University Press,2013,§2.5讨论吞吐与利用率,第28章讨论响应、slowdown与公平指标;不同学科使用response一词时须核对定义。