实时Java规范1.1版对多处理器的支持
1. 引言
多处理器平台(多核或多芯片系统)在实时和嵌入式系统领域的应用愈发广泛,对称多处理器(SMP)系统如今常成为大型实时系统的默认选择。然而,实时Java规范(RTSJ)自诞生以来,在多处理器问题上一直未提供明确指导,既无相关解释准则,也未提供编程抽象帮助开发者配置系统。
最新版本的RTSJ意识到这种状况亟待改变,但多处理器和多核架构发展迅速,操作系统标准尚未完全跟上,同时RTSJ还需遵循一些指导原则,如可预测执行优先、“谨慎编写一次,有条件随处运行”、兼顾当前实践与未来特性、允许实现决策的多样性等。
2. 动机与约束
虽然许多应用无需对可调度对象到处理器的映射进行精细控制,但在某些情况下,这种控制十分关键。下面主要聚焦对称多处理器(SMP)系统展开讨论。
2.1 动机:获取性能提升
从单处理器转向多处理器平台的主要目的是提高性能。为特定可调度对象分配专用CPU,能确保其执行速度达到最快。限制可调度对象仅在单个CPU上运行,可避免因在不同CPU间切换而导致的缓存(TLB或其他非内存相关上下文)失效带来的性能损失。此外,将中断配置到部分处理器处理,可让性能关键的可调度对象在其他处理器上不受干扰地运行。
2.2 动机:支持时间隔离
当应用包含不同关键级别的子系统(非关键、任务关键和安全关键)时,需要在不同级别之间提供保护。Java的严格类型模型在空间域提供了强大保护,RTSJ的成本执行模型(包括处理组参数)提供了有限的时间保护,但往往较为粗糙。通过对处理器进行分区,让不同关键级别的可调度对象在不同分区执行,能实现更可靠的时间隔离。例如,将所有非关
超级会员免费看
订阅专栏 解锁全文

3306

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



