确定性执行是功能安全保证中的重要技术要求,确定性可以分为三个方面
1.时间确定性
计算的执行时间总是在某个给定的区间内完成,不可过快也不可过慢,实际中通常更在意的是最大值,即要求计算需要在某个时间点前完成
2.数据确定性
在给定相同的输入和内部状态下,计算将始终产生相同的输出结果
完全确定性即同时满足上面的两个确定性要求
通常措施
时间确定性:采用实时操作系统
数据确定性:lockstep 软冗余处理
最后也重要 ,当未能满足确定性时,可识别出错误并做对应性处理
AP的确定性执行
AP保证执行器是时间确定性的,这部分ap供应商保证
确定性客户端是软件开发的重要内容
确定性执行器相对普通的执行器增加了多个API
GetActivationTime()
GetNextActivationTime()
GetRandom()
RunWorkerPool()
WaitForNextActivation()
使用这些方法可以帮助用户实现时间确定性,同时,这里里的确定性似乎也是增加了一个开始执行时间点的确认