根据AUTOSAR OS规范,实时操作系统在运行时发生任务或中断没有在预期时间内执行结束,被视为发生了时间故障。
AUTOSAR OS并不提供deadline supervisor(截止周期监控)来作时间保护,deadline superviosr不足以正确地识别出导致了系统的时间故障的任务或中断,因为实际情况下,有可能是被一个没有关联的任务或中断干扰了执行过程。
在例如AUTOSAR OS这样有固定优先级抢占的实时操作系统,任务或中断是否能在deadline之前执行完毕,和以下几个因素有关:
- 任务或中断的执行时间
- 因其他低优先级任务或中断锁住了共享的资源,或者是关闭中断这期间而产生的阻塞时间
- 任务或中断的时间间隔
为了实现安全和精确的时间保护,操作系统需要能在运行时控制这些因素,保证任务或中断能够达到deadline的要求。AUTOSAR OS提供以下时间保护机制:
- 执行时间保护(执行预算Execution Budget):设定任务与ISR2的执行时间上限,由OS监控来避免时间错误。(按代码执行时间计算)
- 锁时间保护(锁预算Lock Budget):设定了共享资源被任务或ISR2锁定的时间上限;设定了OS中断被任务或ISR2挂起的时间上限;设定了所有中断被任务或ISR2挂起或屏蔽的时间上限,由OS监控。
- 时间间隔保护(时间帧Time Frame):两次任务被激活或者ISR2的时间间隔的时间下限,由OS监控。(一般比截止周期小一些)
注:
- 时间保护仅仅作用于任务或者二类中断,对一类中断不起作用;
- OS未开启之前,时间保护将不起作用;
- 对于Trusted OS Application,OS应当有能力提供一种基于任务或者二类中断的时间保护,而对于Non-Trusted OS Application,OS必须提供为这个非信任的OS Application中的每一个任务或者二类中断提供时间保护。