论文摘要
随着对星上信息处理能力的要求的不断提高,星载计算机系统的性能和功耗之间的矛盾日益凸现。相对于单核处理器,多核处理器能够在相同的功耗下获得更高的性能,有助于解决星载计算机系统性能和功耗之间的矛盾。在此大背景下,对支持多核处理器的嵌入式操作系统的研究也成为当今的热点。而支持SMP(Symmetric Multi-Processing)技术的操作系统,具有共享内存、性能功耗比更高、易于负载平衡等优点,能够充分发挥多核处理器的性能优势。有鉴于此,本文主要针对以SMP方式支持多核处理器的星载嵌入式操作系统的关键技术展开研究。本文分析了实时操作系统RTEMS(Real Time Executive for Multiprocessor Systems)的体系结构,并对RTEMS的任务调度机制、中断机制、同步与互斥机制等进行了深入的分析;在此基础上,本文针对RTEMS在多核化改造过程中所面临的主要关键问题,逐一给出了解决方案。在处理器核间的互斥控制方面,本文提出了基于自旋锁的可嵌套内核锁同步互斥机制,此机制解决了普通自旋锁嵌套使用所带来的死锁问题,且允许嵌套使用,简单可靠;在此基础上,结合多核调度锁的使用,有效地解决了系统的完整性问题,并较好地发挥了多核处理器的性能优势。在中断管理方面,提出了NS(Non-Spinning)中断动态分派算法。该算法根据中断服务例程是否需要获取内核锁来对中断进行分派,解决了由于自旋等待时间的不确定性而造成中断响应时间波动过大的问题。实验证明,相对于一般分派算法,其中断响应时间的波动更小,有效地提高了系统的实时性和响应性。在任务管理方面,本文提出了基于全局队列的任务分配算法,该算法简单高效,时间复杂度仅为O(1),且在调度开销恒定的情况下有效地实现了负载平衡,为系统的实时性及可预测性提供了保障。最后,本文在LEON3多核处理器平台上实现了本文改造方案的原型系统RTEM2S(The Real Time Executive for Multi-core&Multi-processor Systems),且在多核模拟器的实现方面,提出了事件驱动模型,在此基础上,成功设计并实现了支持多核处理器的模拟器MSIS(Multi-core Sparc Instruction Simulator),并在MSIS上对RTEM2S进行了定性和定量的测试与分析。实验数据表明,RTEM2S已实现SMP,且本文提出的技术和方法都能达到预期的效果。