任务调度算法详解:从单处理器到多处理器
1. 单处理器调度基础
1.1 最早截止时间优先调度(EDF)
EDF 不仅适用于非周期任务集,也能用于周期任务集。对于周期任务集,解决一个超周期的调度问题就足够了,之后该调度方案可在其他超周期重复。例如,在某个示例中,超周期为 40。由于 EDF 对非周期调度是最优的,所以它对单个超周期乃至整个调度问题也是最优的,无需额外约束来保证最优性,即使在总利用率 (U_{sum}=1) 的情况下,EDF 依然最优。
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 \geq 0),DBF 定义为在长度为 (