软件工程(第三版) 第14章第6节

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(3) 按照“成本—效率”最优原则,选用某种冗余手段(结构、信息、时 间)来实现对各类错误的屏蔽。 (4) 分析或验证上述冗余结构的容错效果。如果效果没有达到预期的程 度,则应重新进行冗余结构设计。如此反复,直到有一个满意的结果 为止。
谢谢!
14.6.2 容错的一般方法
2. 信息冗余 为检测或纠正信息在运算或传输中的错误,须另外加一部 分信息,这种现象称为信息冗余。在通信和计算机系统中, 信息常以编码的形式出现。采用奇偶码、定重码及循环码 等冗余码制式就可以发现甚至纠正这些错误。为了达到此 目的,这些码(统称误差校正码)的码长远远超过不考虑误差 校正时的码长,增加了计算量和信道占用的时间。
wk.baidu.com
14.6.2 容错的一般方法
3. 时间冗余 时间冗余是指以重复执行指令(指令复执)或程序 (程序复算)来消除瞬时错误带来的影响。对于复 执不成功的情况,通常的处理办法是发出中断, 转入错误处理程序,或对程序进行复算,或重新 组合系统,或放弃程序处理。在程序复算中较常 用的方法是程序回滚技术。
14.6.2 容错的一般方法
14.6.2 容错的一般方法
由于硬件出错对软件可能带来破坏作用,例如导致进程混乱 或数据丢失等,因此,对它们做预防性的冗余存储十分必要。 在屏蔽软件错误的冗错系统中,冗余附加件的构成包括: (1) 冗余备份程序的存储及调用。 (2) 实现错误检测和错误恢复的程序。 (3) 实现容错软件所需的固化程序。 容错消耗了资源,但换来对系统正确运行的保护。这与那种 由于设计不当而造成资源浪费的冗余不同。
14.6.1 容错软件定义
归纳容错软件的定义,有以下四种: (1) 规定功能的软件,在一定程度上对自身错误的作用(软件错误)具有屏蔽能 力,则称此软件为具有容错功能的软件,即容错软件。 (2) 规定功能的软件,在一定程度上能从错误状态自动恢复到正常状态,则 称此软件为容错软件。 (3) 规定功能的软件,在因错误而发生错误时,仍然能在一定程度上完成预 期的功能,则把该软件称为容错软件。 (4) 规定功能的软件,在一定程度上具有容错能力,则称之为容错软件。
14.6.2 容错的一般方法
实现容错技术的主要手段是冗余。冗余是指实现系统 规定功能是多余的那部分资源,包括硬件、软件、信 息和时间。由于加入了这些资源,有可能使系统的可 靠性得到较大的提高。通常冗余技术分为四大类。 1. 结构冗余 结构冗余是通常用的冗余技术。按其工作方式它可分 为静态、动态和混合冗余三种。
4. 冗余附加技术 冗余附加技术是指为实现上述冗余技术所需的资源和技术。包括程序、 指令、数据、存放和调动它们的空间与通道等。在没有容错要求的系 统中,它们是不需要的;但在容错系统中,它们是必不可少的。 在屏蔽硬件错误的冗错技术中,冗余附加技术包括: (1) 关键程序和数据的冗余存储和调用。 (2) 检测、表决、切换、重构、纠错和复算的实现。
14.6.2 容错的一般方法
(2) 动态冗余:其主要方式是多重模块待机储备,当系统检测到 某工作模块出现错误时,就用一个备用的模块来顶替它并重新运 行。这里须有检测、切换和恢复过程,故称其为动态冗余。每当 一个出错模块被其备用模块顶替后,冗余系统相当于进行了一次 重构。各备用模块在其待机时,可与主模块一样工作,也可不工 作。前者叫做热备份系统,后者叫做冷备份系统。在热备份系统 中,备用模块在待机过程中其失效率为0。 (3) 混合冗余:兼有静态冗余和动态冗余的长处。
14.6.3 容错软件的设计过程
容错系统的设计过程包括以下设计步骤: (1) 按设计任务要求进行常规设计,尽量保证设计的正确 性。按常规设计得到非容错结构,它是容错系统构成的 基础。在结构冗余中,不论是主模块还是备用模块的设 计和实现,都要在费用许可的条件下,用调试的方法尽 可能提高可靠性。
14.6.3 容错软件的设计过程
14.6.2 容错的一般方法
(1) 静态冗余:常用的有三模冗余TMR(Triple Moduler Redundancy)和多模冗余。静态冗余通过表决和比较来屏 蔽系统中出现的错误。三模冗余是对三个功能相同但由不 同的人采用不同的方法开发出来的模块的运行结果通过表 决,以多数结果作为系统的最终结果。即如果模块中有一 个出错,这个错误能够被其他模块的正确结果“屏蔽”。 由于无需对错误进行特别的测试,也不必进行模块的切换 就能实现容错,故称为静态容错。
14.6 软件容错技术
提高软件质量和可靠性的技术大致可分为两类,一类是避开错误技 术,即在开发的过程中不让差错潜入软件的技术;另一类是容错技 术,即对某些无法避开的差错,使其影响减至最小的技术。避开错 误技术是进行质量管理实现产品应有质量所必不可少的技术。但是, 无论使用多么高明的避开错误技术,也无法做到完美无缺和绝无错 误,这就需要采用即使错误发生也不影响系统特性的容错技术,或 使错误发生时对用户影响限制在某些允许的范围内。一些高可靠性、 高稳定性的系统,例如原子能发电控制系统、飞机导航控制系统、 医院疾病诊断系统和银行网络系统等,都非常重视应用容错技术。
(2) 对可能出现的错误分类,确定实现容错的范 围。对可能发生的错误进行正确的判断和分类, 例如,对于硬件的瞬时错误,可以采用指令复执 和程序复算;对于永久错误,则需要采用备份替 换或者系统重构。对于软件来说,只有最大限度 地弄清错误发生和暴露的规律,才能正确地判断 和分类,实现成功的容错。
14.6.3 容错软件的设计过程
相关文档
最新文档