AUTOSAR OS 周期性任务的中断与截止时间分析
1. 中断对任务执行的影响
在任务执行过程中,中断的出现可能会打乱任务的正常执行顺序,导致任务错过截止时间。例如,假设在任务 A 和 B 的执行期间发生中断 Isr,如图 2 所示,由于 Isr 占用了时间,高优先级任务 A 和 B 完成时间推迟,使得低优先级任务 C 直到第 8 个时间单元才得以执行,最终导致 C 错过截止时间。而 A 和 B 虽然被中断,但仍能在截止时间内完成。
为避免此类截止时间错误,AUTOSAR OS 规范建议限制每个任务的执行时间,即任务自身执行时间与中断执行时间之和。假设已知任务的最坏情况执行时间,我们只需限制每个任务在给定周期内允许的最大中断时间。例如,为确保任务都能按时完成,任务 A 的中断时间不能超过 1 个时间单元,且任务 B 和 C 不能同时被中断。
2. 任务模型
一个系统由三部分组成:一组周期性任务、一组中断服务程序(ISR)以及提供静态信息的函数列表。用符号 Sys ::= {Prog, ISR, Funs} 来描述系统,其中 Prog 表示周期性任务集合,ISR 表示 ISR 集合,Funs 表示关于任务和 ISR 的信息。
一个包含 m 个任务和 n 个 ISR 的系统可表示为:
- Prog ::= {T1, T2, …, Tm}
- ISR ::= {I1, I2, …, In}
每个任务都有静态配置的优先级和周期,且在执行过程中保持不变。任务是周期性的,其截止时间等于周期。每个 ISR 也有优先级,且高于所有任务的优先级,高优先级的 ISR 可以中断低优先级的 ISR。同时,假设已知任务和
超级会员免费看
订阅专栏 解锁全文
2286

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



