● 摘要
在综合化航空电子系统(IMA,Integrated Modular Avionics)中,一个计算机系统为多个功能模块提供计算平台,减少了整个系统对计算机硬件数量的需求,提高了航电设备的利用率。由于资源的共享,IMA系统使用分区机制对共享的计算机系统进行保护,保证每个功能模块的独立性,实现错误隔离,防止一个分区的错误向另一个分区扩散。多核处理器已经成为了未来发展的趋势,也为航电操作系统的设计与实现提出了新的挑战。目前无论是在ARINC 653标准中,还是在已有支持IMA的分区操作系统中,分区都只能运行在单个核心上,并没有很好发挥多核的优势。IMA系统主要由底层MOS (module OS)和上层POS(partition OS) 组成。libOS作为一个用户态的操作系统,其实现方式能够提供错误隔离。本文的研究目标为在基于支持众核的操作系统Barrelfish实现的MOS之上,以libOS的方式构建POS,并使libOS运行在多个核心上,实现分区的跨核运行。论文对Barrelfish和vxworks操作系统进行了深入的分析,并在基于Barrelfish实现的MOS之上,采用实时内核vxworks 实现了多核libOS。并在此基础之上,实现了libOS核心的动态改变和组调度。然后对系统进行了详尽的测试,实验证明,本文构建的多核libOS能够利用多核的优势,完成分区内多核间任务的协作,并通过与vxworks的性能对比,说明了分区间的切换、中断的处理方式以及对多核的支持都会对libOS的实时性造成一定的影响。