论文部分内容阅读
现今,越来越多的嵌入式实时系统应用到各行各业中,给我们的生活带来很大便利。但这些系统正在变得日益复杂,并且对可用性、可靠性、安全性等非功能特性都有严苛要求。同时,由于时间限制因素,实时系统的设计成为挑战。而使用嵌入式实时操作系统恰能有效地解决上述难题,因为其可以提高开发效率,增强系统的非功能特性,同时简化实时系统的设计。所以在嵌入式系统开发中实时操作系统正在被越来越广泛的使用。星载应用作为一种典型的嵌入式系统,上述难题更加凸显,所以也必将大量使用到嵌入式实时操作系统。然而空间高能粒子辐射所导致的单粒子效应严重影响星载系统的可靠性。由其引起的硬件瞬时故障可能会导致程序走飞、死锁或者计算错误等后果。所以必须采取有效措施应对单粒子效应。相较于使用抗辐射器件,使用“商用器件+软加固”这一技术路线具有性能高、功耗小、成本低、开发速度快等优势,成为当下研究热点。软加固是一种软件容错技术,以软件手段容硬件之错,在软件层次实现错误检测和恢复。然而,目前所研究的软加固技术,主要适用于应用程序,已取得不少卓有成效的研究成果。而对操作系统软加固方法的研究现在才刚刚起步,成果还较少。我们拟对星载操作系统的软加固方法进行有益的探索。本文首先明确了容错的概念,并对面向瞬时故障的容错技术进行了分类,全面总结了面向瞬时故障的软件容错技术。接着研究了星载操作系统的特点及操作系统容错的研究现状,为下一步工作奠定基础。然后,本文研究了星载操作系统所具有的一般功能机制,并选取一种嵌入式实时操作系统SYS/BIOS作为具体研究对象,对其进行了较为深入全面的源码分析,总结出其各机制的内部实现。在前面研究的基础上,本文提出了一个星载操作系统软加固框架。该框架包括内部检测和外部检测两种机制,内部检测机制是指线程在执行过程中自己检测自己,而外部检测机制则由一个线程周期性地检测其它线程的执行。这两种机制又分别包括几个软加固方法。各机制内的软加固方法相互协调,有机统一。而两种机制间又能够互为补充,相互配合,共同实现对星载操作系统的软加固。最后,本文对SYS/BIOS的功能进行了精细裁剪,使其具有最小的、自包含的功能集合。通过修改内核层源码,在裁剪后的SYS/BIOS内核中实现了星载操作系统软加固框架,并重新编译生成软加固后的操作系统。通过故障注入实验,验证了软加固的效果,并对实验结果进行了分析评价。