Skip to content

定义Definition

周转、响应与CPU利用率

CPU scheduling metrics · Turnaround time · Scheduling response time · CPU utilization

从同一执行轨迹分别计算完成、首次派发、就绪等待与整机吞吐,说明平均值、尾部与忙碌口径不能互相替代。

“这个调度更快”少了一个重要对象:是谁更快完成,谁更早第一次运行,还是整批工作更快结束?这几个问题可能得到相反答案。本页从同一份服务账本读出不同指标,再用小例子说明为什么不能只报一个平均数。

形式陈述 ​

完成得快,与第一次轮到得早 ​

任务 i 的到达、第一次实际开始运行、最终完成时刻分别记作 ai,Fi,Ci。定义

Ti=Ci−ai,Ri=Fi−ai.

Ti 是周转时间,从到达到全部做完;Ri 是本单元的首次派发响应时间,从到达到第一次获得CPU。一个任务开始运行后又多次排队,后面的等待进入周转,却不再增加首次派发响应。

这里特意写“首次派发”:应用的响应可能是第一字节、第一帧或完整答案,那要等程序产生相应事件才能测量。第一次获得0.1毫秒CPU并不证明用户已经看到输出。排队论的文献中的“response time”也常指整个逗留时间,读取不同来源时须先对齐定义。

若任务没有阻塞,总服务为 bi,则总就绪等待

Wi=Ti−bi.

阻塞存在时,应改为 Wi=Ti−bi−Bi。Ri 只是一段初始等待,Wi 则累计所有READY片段;一般 Ri≤Wi,两者相等只在首次运行之后再没有就绪等待等条件下成立。

直觉

从四条记录直接算出答案 ​

在SCHED-16上,先考虑一种简单轨迹:A运行0到9,B运行9到13,C运行13到15,D运行15到16。服务长度仍是9、4、2、1。

任务 到达 a 首次运行 F 完成 C 周转 T 响应 R 等待 W
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,平均周转为 46/4=11.5,平均响应与平均等待均为 30/4=7.5。它们在这个非抢占、无阻塞例子中恰好相同,不是定义相同。

如果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。

这里没有一个政策在所有指标上获胜。长任务先完整完成,能较早清掉一个未完成者;大家轮流取得短片,能让每人较早开始。这是不同目标之间的真实取舍,而不是谁把公式算错了。

平均数没有说明谁承受了长等待 ​

除均值外,至少检查最长等待以及每个任务的原始值。响应列表 [0,0,0,12] 与 [3,3,3,3] 的平均数都是3,后一组更均匀,前一组有一个任务承受12。若服务有明确截止要求,平均值甚至不能判断任何一次是否按时。

可用归一化周转 Ti/bi 比较等待对长短工作造成的相对影响,常称slowdown。主例中A为1,D为12:二者周转只差3毫秒,但D为了1毫秒工作等了11毫秒。这个比值要求 bi>0;它偏重短作业,与最小化普通平均周转又是不同优化问题。

“95分位”也需要一个规定好的样本分位算法,四个任务的小样本不足以代表长期服务尾部。可以报这四个观测的最大值、完整列表和观察窗口,不把一次实验包装成总体尾延迟保证。

利用率和吞吐量需要共同的窗口 ​

在窗口 [0,T) 内,有用CPU利用率为实际任务服务总量除以 T。若操作系统统计“非空闲”时把切换也算忙,则非空闲率是 (服务+开销)/T,它可能更高,却不表示交付了更多工作。

例如完成16毫秒服务另花2毫秒切换、没有空闲,总历时18。有用利用率为 16/18≈88.9%,非空闲率为100%。若只报“CPU一直满载”,会隐藏2毫秒的开销。

本页把吞吐量记为从0开始、截至 T(含恰在 T 完成者)的完成任务数除以 T;服务累计仍使用半开区间 [0,T)。主例截至16完成4个任务,吞吐量是0.25个/毫秒。把一个长任务人为拆成十个子任务,会改变“完成任务数”,即使工作量不变;因此跨实验比较吞吐量还要固定任务的计数单位。

所有比较必须使用相同窗口。只在CPU忙时取样,当然会得到100%利用率;把空闲夜间算入整天则可能很低。二者回答不同问题,不能用选择分母的方法制造政策优势。

推论与应用

指标用于决策,也用于找错 ​

逐任务验证 Ti≥Ri≥0;无阻塞时验证 Ti=bi+Wi;整机验证服务、开销、空闲相加等于窗口长度。平均值应在逐项检查之后计算,不能让正负误差恰好抵消。

若有任务尚未完成,它的 Ci 与周转还未知。只对已完成任务取平均可能丢掉正在受饿的长任务,得出过于乐观的结论。应同时报告未完成数量、已累积等待与观察终点;“截至现在没完成”不是一个可以填0的样本。

这些指标描述一次轨迹。要比较政策的一般表现,还要说明到达分布、服务量是否已知、切换成本和负载强度。最短作业的最优性会明确固定其中一组条件;彩票调度则主要讨论长期份额,不能拿同一词“公平”替代测量对象。

参考资料
关系图谱3 个相邻概念 · 1 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组