实时任务调度算法解析
1. 单处理器调度
1.1 最早截止时间优先(EDF)调度
EDF 调度算法可应用于周期性任务集。由于临界时刻定理,在证明速率单调(RM)调度的最优性时,只需考虑任务与所有更高优先级任务同时释放的情况。对于周期性任务,解决一个超周期的调度问题即可,后续超周期重复该调度。例如,图 6.14 示例的超周期为 40。EDF 对于非周期性调度是最优的,因此对于单个超周期和整个调度问题也是最优的,无需额外约束来保证最优性,在总利用率 $U_{sum}=1$ 的情况下同样适用。
1.2 显式截止时间任务
当任务的截止时间与周期不同时,这类任务被称为显式截止时间任务。每个任务 $\tau_i$ 由三元组 $(C_i, D_i, T_i)$ 表示,其中 $D_i$ 为相对截止时间。$D_i \leq T_i$ 的情况称为受限截止时间情况,无此约束的为任意截止时间情况。显式截止时间任务类比隐式截止时间任务更通用,每个隐式截止时间任务也是显式截止时间任务。
利用率对于表征显式截止时间任务的计算需求价值有限,密度在一定程度上替代了利用率的作用。密度定义如下:
- 单个任务密度:$densi = \frac{C_i}{min(D_i, T_i)}$
- 总密度:$dens_{sum}(\tau) = \sum_{\tau_i \in \tau} densi$
- 最大密度:$dens_{max}(\tau) = max_{\tau_i \in \tau} (densi)$
需求边界函数(DBF)提供了更严格的边界:
对于任意零星任务 $\tau_i$ 和任意实数 $t \ge