实时系统Java规范(RTSJ)对多处理器的支持
1. 锁技术与操作系统支持概述
在多处理器系统中,锁技术的选择对系统的可调度性和延迟有重要影响。如果相关技术得到改进,除非系统至少20%的时间处于临界区(实际中这种情况不太可能),否则基于挂起的锁机制在可调度性和延迟方面可能不会比自旋锁有明显优势。而且,采用何种锁技术受所需数据结构的限制,目前没有通用的方法为特定数据结构创建无阻塞访问协议。
1.1 操作系统对多处理器的支持现状
虽然多处理器系统越来越普遍,但对于如何最好地满足实时需求,目前尚无统一标准。不同操作系统对多处理器的支持方式各不相同:
- RTEM :不会动态地在CPU之间移动线程,而是在链接时静态分配线程。
- QNX的Nutrino :区分“硬线程亲和性”和“软线程亲和性”。硬线程亲和性允许程序员通过位掩码指定线程只能在一组处理器上执行;软线程亲和性使内核将线程调度到上次执行的处理器上,以降低抢占成本。
- IBM的AIX :允许将内核线程绑定到特定处理器,还能动态更改分配给执行应用程序的分区的处理器集和内存量。
许多多处理器系统允许将中断定向到特定处理器。例如,ARM Corex A9 - MPCore支持Arm通用中断控制器,可指定每个硬件中断的目标CPU列表,软件生成的中断也可进行灵活配置,但操作系统是否允许这种定向是另一回事。
1.2 安全关键系统中的多处理器应用
安全关键系统软件需要具有足够的可预测性,以便通过分析或系统测试检测大多数故障。这排除了
超级会员免费看
订阅专栏 解锁全文
91

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



