嵌入式系统的任务调度与软硬件划分技术
1. 周期性任务调度基础
1.1 周期性调度的最优性定义
在处理周期性任务时,非周期性调度的一些目标就不太适用了。例如,在无限重复作业的情况下,最小化调度总长度就不是关键问题。对于周期性调度,最优调度器的定义为:若存在调度方案,该调度器能找到此方案。
1.2 相关符号定义
设 ${T_i}$ 为一组任务,每次执行任务 $T_i$ 称为一个作业,且每个作业的执行时间假定相同。相关符号如下:
- $p_i$:任务 $T_i$ 的周期
- $c_i$:任务 $T_i$ 的执行时间
- $d_i$:截止时间间隔,即作业 $T_i$ 可用时刻到必须完成执行时刻的时间
- $l_i$:松弛时间,$l_i = d_i - c_i$
当 $l_i = 0$ 时,任务 $T_i$ 可执行后需立即启动。
设 $\mu$ 为 $n$ 个进程的利用率,计算公式为:
$\mu = \sum_{i=1}^{n} \frac{c_i}{p_i}$
若有 $m$ 个处理器且执行时间相等,那么 $\mu \leq m$ 是存在调度方案的必要条件。
2. 无优先级约束的周期性调度算法
2.1 速率单调调度(RM)
2.1.1 RM 调度的假设条件
- 所有有硬截止时间的任务都是周期性的
- 所有任务相互独立
- 对于所有任务,$d_i = p_i$
- 所有任务的 $c_i$ 是常量