4. 经典实时调度算法在飞控中的适用性
飞控计算机上的任务集有一个鲜明特征:周期任务占主导,周期从 1 ms 的姿态控制到 100 ms 的导航滤波不等,且每个任务都有硬截止期。选择调度算法,本质上是在回答两个问题:优先级怎么分配,以及给定这套优先级后,任务集还能不能保证全部按时完成。RM、EDF、DM 是三个最常被拿来讨论的答案,它们在飞控场景下的表现差异,直接决定了系统能否通过适航审查中的时序验证。
三种算法的优先级分配逻辑
RM(Rate Monotonic,速率单调)采用静态优先级:周期越短,优先级越高。它的依据是“越频繁的任务越紧急”,优先级在系统运行前就固定下来,不随任务释放情况变化。对飞控而言,1 ms 的姿态控制任务天然获得最高优先级,100 ms 的导航任务优先级最低,这与工程师的直觉一致。
DM(Deadline Monotonic,截止期单调)同样是静态优先级,但排序依据换成相对截止期:截止期越短,优先级越高。当所有任务的截止期都等于各自周期时,DM 与 RM 完全等价;只有当某些任务的截止期小于周期(例如传感器采集任务周期 10 ms、截止期 4 ms)时,两者才会分道扬镳,DM 通常更优。
EDF(Earliest Deadline First,最早截止期优先)是动态优先级:每个时刻都选择绝对截止期最近的任务执行。优先级随任务释放不断重排,理论上能达到单处理器利用率 100% 的可调度上限,但代价是运行时的优先级计算和上下文切换开销,以及过载时行为难以预测。
可调度性判定:从充分条件到精确分析
优先级分配完成后,必须回答“这套任务集能否全部满足截止期”。RM 最经典的判据是 Liu & Layland 利用率界:当任务数为 n 时,若总利用率 U 不超过 n(2^(1/n)−1),则一定可调度。以上图示例任务集为例,n=2 时该界约为 0.828,而实际 U=0.540,判定通过。但要注意,这是充分条件而非必要条件——U 超过该界并不代表一定不可调度,只是不能再用这个简单公式下结论。
更精确的方法是响应时间分析(RTA)。对任务 i,其最坏响应时间 R_i 由自身执行时间加上所有更高优先级任务的干扰构成:
R_i = C_i + Σ_{j∈hp(i)} ceil(R_i / T_j) × C_j
迭代求解,直到 R_i 收敛或超过 D_i。
若 R_i ≤ D_i,则任务 i 可调度。
以 τ2(C=1.20 ms,T=5 ms,D=3 ms)为例,更高优先级任务只有 τ1(C=0.30 ms,T=1 ms)。初始取 R=1.20,代入得 R = 1.20 + ceil(1.20/1)×0.30 = 1.50;再迭代 R = 1.20 + ceil(1.50/1)×0.30 = 1.80;继续迭代收敛到 R = 1.20 + 2×0.30 = 1.80 ms。由于 1.80 ≤ 3,τ2 可调度。这个结果比利用率界更精细,也是工程上真正用于适航证据的计算方式。
飞控任务集下的实际表现对比
把三种算法放到飞控的真实约束下,差异会从“理论优劣”变成“工程取舍”。
- RM 的优势在于确定性和低开销。优先级静态分配,运行时只需按固定优先级抢占,无需动态计算截止期,最坏执行时间(WCET)分析路径清晰,适航审查时容易提供证据。飞控中大量任务满足 D=T,此时 RM 与 DM 等价,RM 是默认选择。
- DM 在 D<T 的任务上更紧凑。例如传感器采集任务周期 5 ms、截止期 3 ms,若按 RM 排序可能把它排在某个周期 4 ms、截止期 4 ms 的任务之后,导致截止期违例;DM 按截止期排序则能避免。飞控中若存在“采样后必须在极短时间内完成滤波并输出”的链路,DM 更合适。
- EDF 利用率上限最高,但飞控中慎用。理论上 U 可逼近 1.0,对计算资源紧张的飞控有吸引力。但 EDF 在过载时会出现“多米诺效应”——一个任务超时可能引发后续任务连锁错过截止期,而飞控最不能接受的就是失效模式不可预测。此外,动态优先级带来的运行时开销和 WCET 分析复杂度,都会增加适航取证难度。
判定流程与结果判读
实际做可调度性判定时,建议按以下顺序推进:先列出任务集的 T、C、D,计算总利用率 U;若 U 低于 RM 利用率界,直接判定通过;若 U 超过界,改用 RTA 逐任务迭代求 R_i,检查是否全部满足 R_i ≤ D_i;若仍不通过,再考虑调整优先级分配(如改用 DM)或拆分任务、降低执行时间。判定结果只有两种:全部 R_i ≤ D_i 则可调度,任一任务 R_i > D_i 则不可调度,需要回到任务设计阶段修改参数。
需要强调的是,上述计算中的参数均为教学示例假设值,实际飞控任务集的 C 必须来自 WCET 分析工具或实测最坏情况,不能使用平均执行时间,否则判定结果会偏乐观,埋下时序隐患。