论文部分内容阅读
随着计算机应用领域的日益广泛,计算机的可靠性问题越来越关键。尤其是在航空航天、银行交通、医疗、核反应监控、电讯系统等关系国计民生的领域,计算机系统一旦失效,将会引起巨大的经济损失和人员伤亡。如航天领域,由于辐射带中捕获粒子、宇宙射线能在微电子器件中诱发单粒子事件,从而导致星载计算机系统经常发生各种故障。应用于这些领域的计算机都引入容错机制来检测软件或硬件故障。为了保证容错机制在应用时能达到预期效果,必须要在系统应用之前对这些对容错机制的有效性、可靠性进行验证,这就需要一种有效的对容错系统进行评测的机制。而且,在引入容错机制之前,将容错机制放置在软件中的哪个位置、如何放置对容错机制能否挥最佳性能影响重大,因此了解软件系统中错误的传播过程,进而找到软件中较为薄弱的环节或部分,也是提高容错机制性能的重要途径。传统的评测计算机容错性能的方法主要是组合模型法和测试法。这些方法要么需要建立和求解复杂的可靠性模型、要么耗时长久,要么得不到可靠数据或结果精度不高。故障注入技术作为一种实验评测方法被证明是一种高效的可靠性验证方法,它通过人为的在目标系统中产生故障,加速系统发生故障和失效的过程,通过对注入故障后系统的反应信息进行监测和分析,可获得对目标系统可靠性和容错性能的评测结果。与传统可靠性评测技术相比,它具有无需建立和求解复杂的系统模型、实验时间短、结果精度高等优点,已引起众多学者和研究人员的重视。故障注入技术有硬件实现的故障注入、模拟实现的故障注入和软件实现的故障注入三种。与前两种方法相比,基于软件实现的故障注入具有操作简便、开发成本低廉,不会对目标系统造成损伤等优点。本文首先总结了以往故障注入器实现的基本原理和方法,重点研究了用软件实现的故障注入方法,结合航天领域的太空环境设计了故障模型,提出了软件故障注入工具的框架,并在Windows平台进行了设计与实现。经实验证明,该工具能够对基本所有的用户级软件注入故障,并具有较强的数据回收功能。以该故障注入工具为基础,本文又分别在信号和模块级别上研究了故障在软件中的生成与传播过程,同时给出了描述此过程的评测参数及其计算方法,并给出了软件脆弱点的概念及确定原则。最后在一智能水位控制控制系统上对该框架的正确性和有效性进行了验证。这为评测软件系统可靠性提供了方法,并为如何在软件系统中放置容错机制才能使之达到最佳性能提供了依据,为进一步提高软件系统的可靠性开辟了新的思路。