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 / DM / EDF 下的优先级与可调度性 示例任务集(教学假设参数) 任务 周期 T (ms) 执行时间 C (ms) 相对截止期 D (ms) 利用率 U=C/T 姿态控制 τ1 1 0.30 1 0.300 传感器采集 τ2 5 1.20 3 0.240 RM 静态优先级 依据:周期越短 → 优先级越高 τ1 (T=1) → 高优先级 τ2 (T=5) → 低优先级 优先级运行前固定,不随释放变化 DM 静态优先级 依据:截止期越短 → 优先级越高 τ1 (D=1) → 高优先级 τ2 (D=3) → 低优先级 D<T 时比 RM 更优 EDF 动态优先级 依据:绝对截止期最近者先执行 优先级随释放时刻重排 理论上限 U ≤ 1.0 过载时行为难预测 可调度性判定(示例任务集 U = 0.300 + 0.240 = 0.540) RM 充分条件:U ≤ n(2^(1/n) − 1) = 2×(√2 − 1) ≈ 0.828 → 0.540 ≤ 0.828,通过(充分非必要) EDF 充要条件:U ≤ 1.0 → 0.540 ≤ 1.0,可调度;DM 在 D≤T 时判定与 RM 一致

可调度性判定:从充分条件到精确分析

优先级分配完成后,必须回答“这套任务集能否全部满足截止期”。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 分析复杂度,都会增加适航取证难度。
工程经验:飞控中通常采用 RM 作为基线,对 D<T 的关键链路局部改用 DM,EDF 仅在资源极度受限且能接受过载风险的非关键任务上考虑。混合方案(如 RM 为主 + 关键任务 DM 修正)在工程中比纯 EDF 更常见。

判定流程与结果判读

实际做可调度性判定时,建议按以下顺序推进:先列出任务集的 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 分析工具或实测最坏情况,不能使用平均执行时间,否则判定结果会偏乐观,埋下时序隐患。