因为鄙人在航空领域和车载领域都做过操作系统研发,所以对ARINC653和AUTOSAR OS标准都有一些研究,在这里根据自己的了解做一个简单的比较分析,如果有错误之处请各位指出。
1.ARINC653定义了分区Partition和Process进程的概念,而AUTOSAR OS定义的是应用Application和Task任务的概念;
2.ARINC653并没有对定时器进行了约定,而AUTOSAR定义了Counter计数器,Alarm警报的概念;
3.ARINC653采用的调度窗口Window的概念,主要对Partition进行时间分区,而AUTOSAR OS则是采用Schedule Table和Alarm对Task进行调度,似乎并没有严格的实现时间分区;
4.ARINC653中并没有对中断的管理进行了详细的约定,仅在P2-4新增了中断服务,而AUTOSAR中对中断进行了约束,分为了1类中断和2类中断,并且将中断Interrupt和Task一起作为Application的从属;
5.ARINC653在分区间通信方面定义了采样模式和队列模式两种分区间消息机制,AUTOSAR OS则定义了IOC用于分区间通信;
6.ARINC653在分区内通信方面定义了缓存队列,黑板,信号量和事件,而AUTOSAR OS定义了资源Resource和Event事件用于分区内通信;
7.ARINC653在内存管理方面除了内存分区没有过多的描述,而AUTOSAR则针对Application,Task,Interrupt的内存保护进行了定义和约束;
8.ARINC653在P1和P2均对多核实现进行了简单的描述,而AUTOSAR则对多核实现进行了具体的描述,增加了自旋锁Spinlock,并且对分区Application绑定到核进行了描述。