4. 实时性度量指标
在静态分区系统中,实时性不是一句“跑得快”就能描述清楚的。一个任务能否在截止时间前完成,取决于它的执行时间、被抢占与阻塞的时间、调度器分配的时间窗口,以及系统整体负载。要判断分区方案是否可靠,必须把实时性拆解为可测量、可比较、可验证的指标。本章围绕六个核心指标展开:最坏执行时间(WCET)、最坏响应时间(WRT)、抖动(Jitter)、吞吐量(Throughput)、CPU 利用率(Utilization)和截止时间错过率(Deadline Miss Rate)。它们分别从“任务本身”“任务响应”“时间稳定性”“系统产能”“资源占用”和“最终结果”六个视角刻画实时性。
一、核心原理:六个指标分别回答什么问题
WCET 回答“这个任务最多需要跑多久”。它只统计任务自身的执行时间,不考虑被抢占、等待资源或排队。WRT 回答“从事件到达任务开始,到任务完成输出,最长要多久”,它等于任务自身的执行时间加上阻塞时间、高优先级任务抢占时间、中断处理时间和调度延迟。抖动回答“同一任务每次执行的时间偏差有多大”,通常用最大响应时间与最小响应时间之差,或周期偏差来衡量。吞吐量回答“单位时间内系统能完成多少工作量”。CPU 利用率回答“处理器有多少时间被真正用于执行任务”。截止时间错过率回答“在所有作业中,有多少比例没有按时完成”。
关键关系:WCET 是 WRT 的下界,WRT 是判断截止时间是否满足的直接依据;抖动反映 WRT 的离散程度;吞吐量和利用率反映系统负载能力;截止时间错过率是最终验收指标。六个指标不能孤立看,必须放在同一分区、同一调度策略和同一负载场景下联合分析。
二、指标定义与计算口径
为了让度量结果可复现,必须统一计算口径。下表给出六个指标的定义、常用单位、典型测量点和注意事项。
| 指标 | 定义 | 单位 | 典型测量点 | 注意事项 |
|---|---|---|---|---|
| WCET | 任务单次执行所需的最长 CPU 时间 | ms / μs | 任务入口到出口的时间戳差 | 需覆盖缓存、分支、中断等最坏路径 |
| WRT | 从事件到达至任务完成的最长延迟 | ms / μs | 事件触发点到任务完成点 | 包含阻塞、抢占和调度延迟 |
| 抖动 | 响应时间或周期的波动范围 | ms / μs | 连续多次响应时间统计 | 区分绝对抖动与相对抖动 |
| 吞吐量 | 单位时间内完成的作业数或数据量 | 次/s、MB/s | 分区出口或系统输出端 | 需注明统计窗口和负载条件 |
| CPU 利用率 | 任务执行时间占分区窗口的比例 | % | 分区调度窗口内累计执行时间 | 分区利用率之和不得超过 100% |
| 截止时间错过率 | 未按时完成作业数占总作业数的比例 | % | 作业完成时刻与截止时刻比较 | 需区分硬实时、软实时和统计口径 |
三、方法流程:如何采集与验证这些指标
实时性度量不是一次性动作,而是一个闭环流程。建议按以下步骤执行:
- 确定任务集与分区映射:列出每个分区内的任务、周期、优先级、截止时间和最坏执行时间预算。
- 静态分析 WCET:通过控制流分析、抽象解释或测量法得到每个任务的 WCET 上界,并保留安全余量。
- 计算 WRT:根据调度策略(如固定优先级、时间片轮转)和阻塞模型,计算每个任务的最坏响应时间。
- 注入负载并采集抖动:在目标硬件上运行典型场景和压力场景,记录响应时间序列,统计最大值、最小值和标准差。
- 统计吞吐量与利用率:在分区窗口内累计执行时间,计算利用率;在输出端统计单位时间完成作业数。
- 统计截止时间错过率:将每次作业的完成时刻与截止时刻比较,按硬实时和软实时分别统计。
- 对比预算与实测:若实测 WRT 超过截止时间,或错过率高于阈值,则回到分区划分和优先级分配进行优化。
# 示例:采集任务响应时间与截止时间错过情况
task_name period_ms wcet_ms wrt_ms deadline_ms miss
sensor_acquire 10 1.2 3.8 10 0
control_loop 10 2.5 7.1 10 0
log_flush 50 8.0 42.0 50 1
comm_tx 20 3.0 18.5 20 0
# 统计结果
CPU utilization = (1.2 + 2.5 + 8.0/5 + 3.0/2) / 10 = 0.72 = 72%
Deadline miss rate = 1 / (100 + 100 + 20 + 50) = 0.37%
四、案例场景:同一组任务在不同分区策略下的指标变化
假设一个航电控制节点包含四个任务:传感器采集(周期 10 ms,WCET 1.2 ms)、控制律计算(周期 10 ms,WCET 2.5 ms)、日志落盘(周期 50 ms,WCET 8 ms)和通信发送(周期 20 ms,WCET 3 ms)。若把日志落盘与控制律计算放在同一分区,且日志落盘优先级较高,则控制律计算会被阻塞,WRT 从 3.5 ms 上升到 7.1 ms,抖动从 0.4 ms 增大到 2.8 ms。若将日志落盘移到独立分区,并给它分配 20% 的 CPU 窗口,则控制律计算的 WRT 回落到 3.9 ms,抖动降到 0.6 ms,但日志落盘的吞吐量会下降约 15%。这说明:分区隔离可以降低关键任务的 WRT 和抖动,但可能牺牲非关键任务的吞吐量。
在静态分区系统中,CPU 利用率不是越高越好。若分区利用率接近 100%,任何突发中断或缓存抖动都可能把 WRT 推高,导致截止时间错过率上升。工程上通常保留 10%~20% 的余量,用于吸收抖动和突发负载。
五、误区与复盘
误区一:把 WCET 当成 WRT。WCET 只描述任务自身执行时间,WRT 还包含阻塞和抢占。若用 WCET 判断截止时间,会严重低估风险。
误区二:只看平均值,不看最坏值。实时性关注的是最坏情况。平均响应时间再低,只要最坏值超过截止时间,系统仍然不可靠。
误区三:忽略抖动对控制回路的影响。在采样控制系统中,抖动会直接转化为控制误差。即使 WRT 满足截止时间,抖动过大也会导致控制品质下降。
误区四:把 CPU 利用率当作唯一优化目标。利用率高只说明资源被用满,不代表实时性达标。必须结合截止时间错过率和 WRT 一起判断。
复盘建议:每次优化后,重新采集六个指标,并记录分区配置、优先级、窗口长度和负载条件。只有可追溯的度量数据,才能支撑静态分区方案的迭代与验收。
总结来看,WCET 和 WRT 决定单个任务能否满足截止时间,抖动决定时间行为是否稳定,吞吐量和 CPU 利用率决定系统资源是否被合理使用,截止时间错过率则给出最终验收结论。在静态分区实时性优化中,应先用 WCET 和 WRT 做可调度性分析,再用抖动、吞吐量和利用率做权衡,最后用截止时间错过率验证方案是否达标。只有六个指标联合使用,才能避免“单点达标、整体失效”的优化陷阱。