软件定义的容错计算机体系,1.4 软件容错技术 - 计算机系统容错技术方法

本文介绍了软件容错技术,强调了软件设计的相异性和版本独立性对防止共性故障的重要性。两种基本的软件容错结构——NVP(NVersionProgramming)和RB(RecoveryBlock)被详细阐述,NVP采用静态冗余,通过多版本程序表决输出结果,而RB则是动态冗余,利用主程序块和备用程序块进行故障恢复。这些技术在高可靠性要求的领域如航空航天、核电站控制等有广泛应用。
摘要由CSDN通过智能技术生成

1.4 软件容错技术

由于硬件系统的故障主要来自生产和使用阶段,因此容错可以通过相同部件的重复,即相同资源的累积设置来实现;而软件故障主要来自说明、设计和实现阶段,因此程序的简单重复不能实现容错,它只能防止硬件损坏或者环境干扰等引起的物理性故障,而不能防止软件本身缺陷造成的故障。实现软件容错的基本方法,是将若干个根据同一需求说明编写的不同程序(即多版本程序),在不同空间同时运行,然后在每一个设置点通过表决或接收测试进行表决。

最基本的软件容错技术是Algirdas Avizienis提出的基于静态冗余的N版本编程方法和B. Randell提出的基于动态冗余的恢复块技术。

1.4.1 软件的相异性设计

对于软件容错,考虑的重点是软件设计的相异性和版本的独立性。软件的相异性设计是为了防止由于软件发生共性故障而采用的一种设计方法。软件设计时的共性越小,出现相同故障的概率也就越小,容错性能就越强。

相异性设计要求,对于同一需求说明的软件功能,不同的研发设计人员及不同的研发设计小组对于这同一功能的软件设计禁止谈论和沟通,在不同的环境空间中独立进行设计;另外,还要求软件设计的多样性,如采取不同的设计方法、开发工具、编程语言、编译器、算法等。在航空航天、核电站控制以及铁路交通的控制等对软件的可靠性要求很高的场合,软件的相异性设计可以有效提高软件的容错能力和软件的可靠性,对提高整个系统的可靠性有很重要的作用。

1.4.2 软件容错的基本结构

软件容错的基本结构有两种:

一种是NVP(NVersion Programming)结构(多版本编程设计),这种结构方法是Algirdas Avizienis于1977年在参考文献[6]中提出的,它是一种静态冗余方法,其基本的设计思想是用N个具有同一功能而采用不同编程方法的程序执行一项运算,其结果通过多数表决器输出。NVP系统中的多版本是指根据同一需求说明由不同的设计人员或由不同的设计方法、开发工具、编程语言等开发的具有同一功能的软件版本,即所谓的版本设计的相异性。这种容错结构方法有效避免了由于软件共性故障所造成的系统出错,提高了软件的可靠性。NNP结构如图2所示。

696bdf4b014a706ff93de7b396c5e551.png

图2 NVP结构

另一种是RB(Recovery Block,恢复快结构),它是Randell于1975年在参考文献[7]中提出的一种的软件容错技术,它是一种动态冗余方法。在RB结构中,有主程序块和一些备用程序块构,这里的主程序块和备用程序块采用不同编程方法但具有相同的功能。每个主程序块都可以用一个根据同一需求说明设计的备用程序块替换。首先运行主程序块,然后进行接收测试,如果测试通过则将结果输出给后续程序,否则调用第一个备用块,依次类推,在N个备用程序块替换完后仍没有通过测试,则要进行故障处理。RB结构如图3所示。

b6f15856bb0a5b7b35236ef1770d8461.png

图3 RB结构

其他的软件容错结构都是基于这两个基本结构而来的,例如NVPP(多版本阶段程序设计),它要求程序的版本运行分多个阶段进行,而且每个阶段运行的程序都包括适当的版本数量。运行一个阶段后,要通过表决程序来对这一阶段运行的程序进行表决,如果得到正确的结果就结束运行,否则继续下一个阶段版本的运行,直到得出正确的结果。

NVP和RB这两种基本结构在软件容错中用得最广泛,占据很重要的地位。这里要注意的是,验证表决程序的可靠性以及表决结果的正确性是个难点,因为如果表决程序本身就是错误的,那表决的结果就不可信了,所以要用正确性证明技术来保证表决程序的正确。

2 结论

本文详细介绍了计算机容错的各种方法,包括硬件容错、时间容错、信息容错以及软件容错等,这些容错方法在其他工业场合有广泛的应用,现在很多工业系统都是采用基于三模冗余的容错技术来提高系统的可靠性。对于其他要求可靠性高的场合,计算机容错技术的方法有着良好的应用前景。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值