计算机故障指的是因为计算机部件的物理实现、环境影响、操作错误或者是设计缺陷等原因,引起计算机系统的硬件或者软件的错误的状态,下面是搜集整理的一篇探究计算机容错技术及应用的论文服务,欢迎阅读查看。
摘要:从计算机诞生开始道现在,对于计算机容错技术的研究就没有中断过。现在因为计算机系统的广泛应用,使得其对于可靠性的要求越来越高,这就使得容错技术的研究更加受到重视。文中主要从硬件和软件两个方面对计算机容错技术进行了分析。
关键词:计算机;容错技术;可靠性
随着科学技术的发展,计算机的应用变得越来越广泛,在很多领域中对计算机的可靠性要求相当高,例如科学研究、金融系统、交通运输管理、军事等领域对于计算机的可靠性的要求都相当高。如果计算机出现故障,会导致很多严重的后果,不仅仅是会带来各种经济损失,严重的还有可能会危及到人们的生命安全。所以,于计算机的可靠性,国家和社会都给予了高度的关注,并且投入了大量的人力与经济资源对计算机的可靠性进行研究。
一、概述
一般情况下,为了能够提高计算机的可靠性,主要是采用避错和容错这两种方法。避错的方法主要尽可能的让计算机远离各种故障。然而要避错就有着相当严格的要求,例如对于计算机的各个元器件都要尽可能的好,在设计上尽可能的不出现瑕疵,制造工艺要尽可能的先进,同时在质量管理方面也有着较高的要求。但是即使这些方面都做到了最好,这样的计算机还必须要经受各种工作环境中的因素的考验,而有很多环境因素都不是计算机本身所能够抗衡的(如电磁干扰、强震动等等),仍然不可避免的会出现各种故障。那么这就要求,必须要能够在计算机出现故障的情况下能够容忍故障的存在,也就是容错技术。最早提出容错技术的是计算机之父冯·诺依曼。容错技术指的是当计算机发生硬件或者软件上的故障时,计算机能够通过一定的方法检测出故障,然后通过一定的方法来对故障进行容忍,使得故障不会影响到计算机的正常运行,或者是在能够完成指定任务的前提下进行降级运行。
计算机故障指的是因为计算机部件的物理实现、环境影响、操作错误或者是设计缺陷等原因,引起计算机系统的硬件或者软件的错误的状态。容错技术主要包括了故障检错技术、故障诊断技术、故障恢复技术者几个方面。计算机系统要容错,首先就必须要能够检测到故障的存在,也就必须要用到故障检错技术。但是在能够检测出故障的同时还必须要能够判断和定位故障所在的位置,此时就需要故障诊断技术来对故障所在位置进行定位。在前面的基础上就需要对故障进行恢复,通过故障恢复技术将系统从故障状态恢复到无故障时的状态下继续正常运行。
计算机容错技术最基本的方法就是冗余技术,冗余技术主要包括了硬件硬件冗余、软件冗余、时间冗余以及信息冗余这几种。
二、硬件错误容错方法分析
计算机硬件错误主要有永久性错误、瞬态错误和间歇性错误这三种。其中永久性错误主要是因为计算机的硬件出现老化以及电路短路的原因所引起的。当永久性错误发生时,一些原定的功能就会失效,如果不对损坏的部分进行替换,那么故障是不能够恢复的。瞬态错误是计算机所发生的硬件错误中最多的一种错误,而且这种错误还呈现出一种几何级数的增长,这种错误对于计算机系统的可靠性的影响相当严重。间歇性错处于永久性错误和瞬态错误之间,这种错误的主要表现时,瞬态错误发生的频率过高,超过了计算机系统所能够容忍的范围。
(一)硬件冗余方法
硬件冗余主要分为部分冗余和完全系统冗余这两种。而完全系统冗余中又可以分为冷备、温备、热备以及双工这4种。例如完全系统冗余中的双系统主要就有双系统冷备、双系统温备、双系统热备以及双系统双工这四种工作方式。其中双系统双工的方式主要应用于对于计算机系统的安全性以及实时性的要求较高的系统中。如果要求不高,那么则可以根据具体的情况选用其他的几种工作方式。如今所使用的硬件冗余之中还有三模、四模冗余技术应用的较为广泛。
在当前硬件冗余技术中研究的较多的是FPGAs。在这种方法中将整个硬件系统根据抽象的层次分为两层:硬件层(PL)以及配置层(CL)。就当前而言,硬件冗余的方法是研究体系较为完善,提升可靠性效果最好,但是也是成本最高的方法。
(二)信息冗余方法
信息冗余的方法是在原始的数据中附加上具有故障检测或者故障恢复的冗余数据信息。这些冗余信息具备有错误检测或者错误纠正的能力。这种方法主要用于信息传输、存储以及处理的过程之中。目前比较新的信息冗余编码方式主要有RED-FECMechanism、ABFT、check-sum EDAC。
(三)时间冗余
如果没有采用硬件冗余的方法,并且对于实时性的要求不高的系统中,可以使用时间冗余的发放来实现容错。在具体的系统中时间冗余的主要工作方式有两种:(1)RSHW,这种方式指的是在同一硬件上对于同一组数据在不同的时间段上执行同一指令集;(2)采用数据延迟设备和表决电路,将这两者进行结合,间数据的处理结果按照延迟时间的不同而复制出多个不同的版本,然后将这些所复制出来的信息递交给表决器进行对比,从中选出合适的结果,如图1:
三、软件错误容错方法
对于任何一个计算机系统,光考虑它的硬件系统的可靠性是不够的,因为计算机系统是硬件以及软件的结合体,硬件可靠性高,而软件的可靠性不足,那么这样的系统也是不可靠的。但是在软件的可靠性研究方面现在要远远落后与硬件可靠性的研究。现在软件错误容错方法主要有以下几种:
(一)N-version programming 方法
这种方法中,认为对于同一个软件的不同版本应该让不同的团队进行独立设计,在设计的过程中说采用的方法、开发语言和开发环境以及开发工具等都应该不同。这样做的目的就是为了能够减少这个软件的不同版本在表决点上出现相关性错误的概率。但是每一个版本的软件在设计的过程中都需要遵循这样的几个原则:(1)总体设计上要相同;(2)多样化的模块之间必须使用统一接口;(3)实现多样性封装;(4)必须要保证各个版本软件在设计上的独立性。
(二)采用恢复块
这是一种向后恢复的方法。这种方法要求软件系统能够提供多个具有相同功能的模块,其中一个作为主块,其余的作为后备块。进行测试时,先让主块投入运行,如果主块不能够通过验收测试,那么通过相关的功能让后备块投入运行。这个过程中,会一直重复直到后备块耗尽或者是有一个后备块能够通过测试为止,或者是当某一个程序的故障超出了当初软件设计时的预期,产生了不可恢复的后果。这种方法要求在进行设计时要能够保证各块之间的独立性,防止出现相关性错误。同时还必须要注意的是验收测试程序,必须要能够保证它的正确性才能够获得正确的结果。
(三)防卫式程序设计方法
在这种方法之中并没有使用传统的容错技术。当程序中出现错误或者不一致性时,这种方法都是程序中说包含的各种错误检查代码与恢复代码对这些错误进行处理。当错误发生时,程序通过相关的错误处理的代码,将对程序所出现的错误状态进行撤销,并将程序恢复到一个正确的状态中去,该种方法主要包括了错误检测、破坏估计和错误恢复这三个方面。
总之,随着计算机系统规模的改变以及使用的广泛,对系统的可靠性的要求越来越高,因此对于容错技术的要求也越来越高。但是因为各种原因,当前在硬件容错方面的研究要远远超过软件容错的研究。因此,在今后应该在软件容错技术方面多下功夫。
参考文献:
[1]陆阳,张本宏,魏臻,等.“二乘二取二”和“双模冗余-比较”结构对比研究[J].电子测量与仪器学报,2009,23,(3)
[2]徐仁佐.软件可靠性工程[M].北京:清华大学出版社,2007