自适应任务自动机:建模、调度与验证
1. 引言
在实时系统中,任务调度是确保系统按时完成任务的关键。自适应任务自动机为建模和调度自适应嵌入式系统提供了一种有效的方法。通过引入可调度性谓词,我们可以在任务释放时检查系统是否可调度,从而做出合理的任务接纳决策。
2. 自适应任务自动机的编码
为了在时间自动机模型中对任务释放自动机、调度器和任务队列进行编码,我们需要跟踪每个执行任务实例的几个关键值。这些值包括任务的执行时间、自任务释放以来经过的时间,以及与任务计算时间和相对截止时间的比较结果。
2.1 变量定义
对于每个任务 $t_i$,我们使用以下变量:
- $c_i$:一个时钟,每当谓词 $(\exists t_j | \text{inqueue}(t_j) \land P_j \geq P_i)$ 的值从 false 变为 true 时重置,其中 $P_i$ 和 $P_j$ 分别是任务 $t_i$ 和 $t_j$ 的优先级。
- $d_i$:一个时钟,在任务 $t_i$ 释放时重置。
- $r_i$:一个有界域的整数变量,包含自 $c_i$ 最后一次重置以来,所有优先级高于或等于任务 $t_i$ 的任务的计算时间 $C_i$ 之和。
2.2 示例场景
考虑一个包含四个任务实例的场景:$t_1$(在时间点 4 释放)、$t_2$(在时间点 1 释放)和 $t_3$(在时间点 2 和 8 释放)。任务参数和变量 $r_i$、时钟 $c_i$ 的值随时间的变化如下表所示:
| 任务 | 优先级 $P$ | 计算时间 $C$ | 截止时间 $D$ |
超级会员免费看
订阅专栏 解锁全文
43

被折叠的 条评论
为什么被折叠?



