论文部分内容阅读
随着计算机体系结构、程序设计语言等的不断丰富,以及计算机应用的快速发展,软件系统规模不断增大,任务复杂度不断提高,软件的并发性不断加强,软件潜在的bug已越来越难以捕捉。由于软件错误直接造成系统失效的比率持续递增。因此如何提高软件的可靠性成为了目前软件系统设计与开发面临的主要问题。目前,在软件可靠性工程领域中,对于大型的、复杂的、多任务并发系统而言,采用系统化的方法支持软件调试与故障诊断的自动化、智能化,具有实现成本低、调试效果好等特点,因而成为国际上研究的热点。本文针对复杂软件系统调试面临的困难,提出了在虚拟机上实现体系结构扩展来支持软件调试的方法。通过扩展虚拟机体系结构,实现了软件全过程故障重现与回放技术和增量型的数据一致性检查技术。本文首先介绍了软件可靠性与软件调试一般性概念,对于目前国际上软件调试技术和虚拟机技术的研究做了详细的分析,提出了基于虚拟机扩展技术的软件调试技术框架。为了在虚拟机上实现体系结构扩展,本文详细分析了开源模拟器Bochs的体系结构,分析了Bochs中CPU、内存、时钟与中断系统、外设四个模块实现机理。针对多任务并发系统中软件故障难以重现的问题,本文提出了软件全过程故障重现与回放技术,并详细介绍了检查点、日志、回放等模块的原理与实现。数据结构一致性对于软件的正常运行至关重要,因而通过对复杂系统中的关键数据结构进行运行时的一致性检查,有利于软件故障的早期发现与定位。本文提出了基于体系结构扩展的增量型数据结构一致性检查技术,增量型的检查可以大大降低数据一致性检查的开销。本文详细解释了增量型的数据一致性检查技术的技术框架以及各部分的实现原理,并在最后结合实例分析了增量型数据一致性检查的全过程。