实时系统中多处理器支持的深入探讨
1. 锁技术与调度性能
在多处理器系统中,锁技术的选择对系统的可调度性和延迟有着重要影响。如果相关技术得到改进,基于挂起的锁定方式在系统整体处于临界区的时间不足 20% 时,相较于自旋锁,在可调度性和延迟方面可能并无显著优势,而系统整体长时间处于临界区的情况在实际中是极不可能出现的。
锁技术的选择还受到所需数据结构的限制。目前,对于特定的数据结构,并没有简单通用的方法来创建非阻塞访问协议。需要强调的是,相关研究排除了访问时间较长的外部设备,对于这些设备,基于挂起的锁定方式是必不可少的。
2. 操作系统对多处理器的支持
尽管多处理器系统日益普及,但对于如何最好地满足实时需求,目前尚无统一标准。以下是不同操作系统对多处理器的支持情况:
- RTEM 操作系统 :不会动态地在 CPU 之间移动线程,而是在链接时提供静态分配线程的机制。
- QNX 的 Nutrino :区分“硬线程亲和性”和“软线程亲和性”。前者允许程序员要求线程仅在一组指定的处理器上执行(通过位掩码指定);后者则使内核将线程调度到其上一次执行的处理器上,以降低抢占成本。
- IBM 的 AIX :允许将内核线程绑定到特定处理器,还能动态更改分配给执行应用程序的分区的处理器集和内存量。
许多多处理器系统允许将中断定向到特定处理器。例如,ARM Corex A9 - MPCore 支持 Arm 通用中断控制器,可针对每个硬件中断指定目标 CPU 列表,软件生成的中断也可进行相应设置。不过,操作系统是否允
实时系统多处理器支持的深入剖析
超级会员免费看
订阅专栏 解锁全文

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



