论文部分内容阅读
随着世界各国在空间探测领域内的深入研究和扩展实验,空间探测领域使用的计算机系统所需完成的任务越来越复杂。但在空间环境中,由于空间辐射的影响,计算机系统很容易发生硬件故障,这些故障给计算机系统的可靠性带来了严重的影响。传统上,主要以硬件冗余的方式来保证计算机系统的可靠性,如使用抗辐射部件等。然而,抗辐射部件的价格十分昂贵,其性能也要比商业中广泛使用的COTS部件(Commercial-Off-The-Shelf,商用货件)落后许多。因此,COTS部件可以代替抗辐射部件来构造空间探测领域内使用的计算机系统。只是COTS部件的容错能力不足,需要用软件容错技术加以辅助,以提高其容错能力。硬件故障可以分为瞬时故障和永久性故障两大类,其中绝大多数故障均为瞬时故障,又经统计,33%~77%的硬件瞬时故障都导致了计算机程序发生控制流错误。
本文针对面向硬件瞬时故障的软件实现的控制流容错技术进行了研究,并通过对几种较为典型的控制流容错技术的检测原理及其优缺点进行分析,提出了一种基于插入块的控制流错误检测方法CFCIB(Control flowchecking based on inserted blocks)。该方法主要基于插入块模型来完成对程序控制流图的优化,同时又利用减法来完成签名值的计算。相比其他几种较为典型的控制流容错技术,CFCIB方法既提高了错误检测能力,又降低了运行开销,是一种优秀的控制流错误检测方法。最后,利用故障注入实验对CFCIB方法的错误检测能力和运行开销进行了验证,实验结果表明:CFCIB方法的平均错误覆盖率高达96.78%,其平均空间和时间开销分别为45%和80%。