知识点讲解
 
       软件容错
知识路径: > 计算机系统综合知识 > 系统配置与性能评价 > 可靠性设计 > 
被考次数:1次
被考频率: 低频率
总体答错率: 53%
知识难度系数:
考试要求: 掌握     
相关知识点:8个
        软件容错的主要目的是提供足够的冗余信息和算法程序,使系统在实际运行时能够及时发现程序设计错误,采取补救措施,以提高软件可靠性,保证整个计算机系统的正常运行。软件容错技术主要有恢复块方法、N版本程序设计和防卫式程序设计等。
               恢复块方法
               恢复块方法是一种动态的故障屏蔽技术,采用后向恢复策略,如下图所示。它提供具有相同功能的主块和几个后备块,一个块就是一个执行完整的程序段,主块首先投入运行,结束后进行验证测试,如果没有通过验证测试,系统经现场恢复后由一后备块运行。这一过程可以重复到耗尽所有的后备块,或者某个程序故障行为超出了预料,从而导致不可恢复的后果。设计时应保证实现主块和后备块之间的独立性,避免相关错误的产生,使主块和后备块之间的共性错误降到最低限度。验证测试程序完成故障检测功能,它本身的故障对恢复块方法而言是共性,因此,必须保证它的正确性。
               
               恢复块方法N版本程序设计
               N版本程序设计是一种静态的故障屏蔽技术,采用前向恢复的策略,如下图所示。其设计思想是用n个具有相同功能的程序同时执行一项计算,结果通过多数表决来选择。其中n份程序必须由不同的人独立设计,使用不同的方法,不同的设计语言,不同的开发环境和工具来实现。目的是减少n版本软件在表决点上相关错误的概率。另外,由于各种不同版本是并行执行的,有时甚至在不同的计算机上执行,必须解决彼此之间的同步问题。
               
               N版本程序设计
               防卫式程序设计
               防卫式程序设计是一种不采用任何一种传统的容错技术,就能实现软件容错的方法,对于程序中存在的错误和不一致性,防卫式程序设计的基本思想是通过在程序中存储错误检查代码和错误恢复代码,使得一旦错误发生,程序能撤销错误状态,恢复到一个已知的正确状态中去。其实现策略包括错误检测、破坏估计和错误恢复三个方面。
               除上述三种方法外,提高软件容错能力亦可以从计算机平台环境、软件工程和构造异常处理模块等不同方面达到。此外,利用高级程序设计语言本身的容错能力,采取相应的策略,也是可行的办法。例如,C++语言中的try_except处理法和try_finally中止法等。
 

更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2023 All Rights Reserved
软考在线版权所有