论文部分内容阅读
可靠性是计算机系统的重要性能之一,在许多关键性的应用领域,如航空航天,银行、交通、核反应控制等,一旦计算机系统出现故障就有可能造成巨大的经济损失,甚至是人员伤亡。如何才能保证计算机系统的安全可靠呢?这需要通过有效的可靠性评测技术对这些领域的计算机系统在应用前进行评测,以便采用必要的设计和防护方法,以保证其满足可靠性要求。 传统的用于计算机系统可靠性评测的方法主要是采用组合模型法和测试法。这些方法要么需要建立和求解复杂的可靠性模型、要么耗时长久,要么得不到可靠数据或结果精度不高。故障注入是通过人为地产生并引入故障到目标系统中加速系统产生错误和失效,然后通过分析故障引入后的系统行为反应,实现对目标系统可靠性进行评测的技术。与传统可靠性评测技术相比,它具有无需建立和求解复杂的系统模型、实验时间短、结果精度高等优点。 故障注入技术有硬件实现的故障注入、模拟实现的故障注入和软件实现的故障注入三种。与前两种方法相比,基于软件实现的故障注入具有操作简便、开发成本低廉,不会对目标系统造成损伤等优点。对星载系统可靠性的评测过去也采用过硬件实现的故障注入技术,但主要是侧重于对系统容错机制的研究,而不涉及系统硬件和软件的可靠性问题。本文采用软件故障注入技术不仅从容错角度研究了容错机制对可靠性的影响,而且从避错角度考虑了避错机制对可靠性的影响;既考虑了星载系统整体可靠性问题,也讨论了其硬件和软件的可靠性问题。 为了研究星载系统整体可靠性问题,本文中通过故障注入实验,从容错角度考虑了容错机制的覆盖率,并利用马尔可夫理论,建立了用于星载系统可靠性评测的马尔可夫可靠性模型。结合马尔可夫可靠性模型及由故障注入实验得到的故障覆盖率,给出了基于覆盖率的星载系统可靠性评测算法。由该算法可得到星载系统在任意运行时刻的可靠度值,并且由系统可靠度随时间变化规律可知,系统的错误处理机制的覆盖率越高,可靠度越大,并且随系统运行时间的延长可靠度减小。 对于系统硬件可靠性,文中从预错的角度进行了评测。为了有效地预测系统硬件可靠性,文中提出了基于系统任务的故障注入算法,该算法明显优于传统的基于中断调试的故障注入算法。采用该算法模拟了太空单粒子翻转故障,结合分级抽样技术对目标系统硬件——包括内存区域和寄存器——的故障敏感性进行了测试和分析。分析的结果发现,寄存器对单粒子翻转的敏感程度远高于内存区域,且代码段的故障敏感性要高于数据段。寄存器CS、IP和SP是对单粒子翻转最为敏感的寄存器,也是系统中对故障最为敏感的区域。在设计的过程中加强对这些故障敏感区域进行防护和保护,尽量减小这些区域发生错误的概率。 为了对星载系统软件可靠性进行预测,文中给出了软件中错误传播图的生成算法、错误反向跟踪树生成算法以及基于错误传播图的可靠性评测算法。结合软件故障注入实验得到了系统各软件模块内部及模块间错误传播因子的大小,对可能发生错误传播的路径进行分析,得出了软件运行的各条分支路径上发生错误传播的概率,找到了系统软件中最容易发生错误和最容易传播错误的路径。这些位置是放置容错机制最为合适的位置,将容错机制放置于这些最容易出现错误的薄弱环节,系统的收益最大,容错效果最好。 文中最后对软件实现的星载系统可靠性评测系统进行了详细的描述,包括系统的总体结构、主要功能模块的设计实现等。该系统采用基于系统任务法和静态插桩法故障注入技术和多种可靠性评测技术,能够从不同的角度对目标系统的可靠性进行评测和预测,不仅可应用于对星载系统可靠性的评测,还可以应用于金融、交通等领域计算机系统的评测。