浅谈容错计算

  • 格式:pdf
  • 大小:37.62 KB
  • 文档页数:4

高计算机系统可靠性的基本方法 。但实践证明 ,避错技术的
效果有一定的限度 ( 比如最多使系统的平均无故障 时间增
加一个数量级) , 超过这个限度将使成本急剧上升 , 所以单
靠实 施避 错已 适应不 了那 些可靠 性要 求特别 高的 应用 领
域 。于是 ,与避错技术互补的提高计算机系统可靠性的另一
种方法 ———容错技术应运而生 。
热点追踪
计 算 机 自 20 世 纪
40年代 后期 问 世以 来 , 发

展异 常迅 速 , 应用 日益 广 泛 。于是 ,人们不得不考 虑 一个 问题 :当 今社 会越 来

越依 赖于 计算 机 , 可是 计 算机是否非常值得信 赖 呢 ?答案并非那么肯定 。因

为数十年来有过不少由 于 计算机系统的失效而导 致
潜伏差错是一个已在系统中发生但还未引起系统失效的差错21故障的引入与分类一个计算机系统的设计实现及运行的各个阶段中的任何问题都可能把故障引入到系统之中可能的故障起因可被归纳为以下四个方面specificationmistakes结构软硬件设计规范等implementationmistakes这个过程中可能会因为低劣的设计元器件选择或软件编码而引入各种故障componentdefectexternaldisturbance人为或自然破坏操作失误以及恶劣环境等同时指示出了避错故障屏蔽与重构三种提高计算机系统可靠性的主要技术在此因果链中被引入的位置及发生作用的时机
公司的一架民航飞机在 关
岛机场坠毁 ,机上 200 余名乘客全部遇难 ,而飞机坠毁原 因
是由于机场的导航计算机系统出现故障 。这些例子无一不说
明提高计算机系统可靠性的迫切性 。
为了提高计算机系统可靠性 , 有两种 基本方法 ———避
错与容错 。避错( Fault Avoidance) 技术靠预先排除所有故障
第二代计算机( 1957 年 ~1964 年) 的主要元件是晶体管 及磁芯存储器 。由于这些元件的失效率比起第一代计算机 元件的失效率大为降低 , 计算机在不采用事故 。例如 ,美国 向
火星发射的火星一号火 箭

由于计算机程序中丢掉 一

个 字符 而 惨遭 失 败 ;1979

年 ,新 西 兰航 空公 司的 一

架客机因为计算机控制 的
自动飞行系统发生故障 而

撞到 阿尔 卑斯 山上 ,机 上
广
257 名 乘客 全 部 遇 难 ; 再

如 ,1997年 7 月 ,大韩航 空
容错计算的产生与发展首先借助于计算机设计者应用 各种实用技术提高计算可靠度的不断努力 。从第一台计算 机建成并投入运行 , 人们就发现 ,单凭认真细致的设计与选 用优良器件是无法避免物理缺陷及设计错误的发生 。正因 这样 , 早期计算机的设计者采用了冗余结构以屏蔽失效的 部件及错误的控制码 ; 采用了二模或三模表决策略以检测 或校正信息差错 ; 采用了诊断技术以定位失效部件并自动 进行切换以替代失效的部件或子系统 。其次 ,在工程技术不 断发展的同时 , 计算机科学的一些开拓者也在进行着 “用不 可靠的元部件构造可靠系统”的一般问题的研究 。最有代表 性的有冯 ·诺依曼 ( John von Neumann) 和莫尔 ( E .F .Moore) 与香农 ( C .E .Shannon) 等人 , 他们的研究成果奠定了容错计 算的理论基础 。特别是冯 ·诺依曼 ,他不仅是计算机体系结 构的创立者 ,也被认为是容错计算的奠基人 。早在 1952 年 , 冯 ·诺依曼就在美国加利福尼亚理工学院作过五个关于复 用逻辑模块来提高系统可靠性的报告 ,并指出 : 人脑工作的 可靠性是由结构上较低一级的冗余来保证的 。1956 年 ,他又 提出了“多数表决( Majority Voting) ”的概念 ,并证明了( 通过 容错技术) 可以用较不可靠的器件组成较可靠的系统的重 要论断 。50 年代后期航天与航空等领域所要求的高可靠性 为容错技术提出了新的挑战并创造了绝好的应用场所 。
·16 ·
相应地 , 定义与分析容错计算机系统的各种技术称为 容错技术( Fault- Tolerant Technology) 。有关计算机容错技术的 各种理论与实际应用的研究已发展成为计算机科学的一个 重要分支 ,称为容错计算 ( Fault- Tolerant Computing) 。而容错 性则是使一个系统具备能够在一些特定故障存在的情况下 继续正确执行其程序和输入/ 输出功能的内在能力 ( 无外界 帮助) 的一种属性或素质 。其中“正确执行”指程序 、数据及 结果不包含差错 ,并且执行时间未超过规定的限度 。
回顾历史 , 我们可以发现计算机容错技术的发展并非 一帆风顺 。
第一代 计算 机( 1946 年 ~1957 年) 的 元件 主要是 电子 管 、继电器及延迟线存储器 。由于这些元件的失效率相当高 , 并且易受瞬 时故障的 影响 ,造成系统 的平均无故 障时间很 短 ,只有几分钟到二 、三个小时 ,限于当时的技术水平 ,采取 的措施 一般是特别 设置的硬 件检测 及人工 恢复 ,例如 IBM 650,UNIVAC 等计算机采用了奇偶校验以检查数据传送的结 构是否正确 ,又如 1949 年设计的 EDVAC 计算机采用了双模 运算单元 ,每次 运算后两个 单元的结 果进行比较 以检测故 障 。1956 年 ,世界上第一台 容错计算机 SAPO 在捷克投入运 行 ,它有三个 CPU 同时工作 ,对运算 结果进行表决 ,它的存 储器采用奇偶检验 ,并具有单条 指令重复执行功能 。另一台 早期的容错计算机是美国的 SAGE ,该机是用于防空系统的 , 采用了双机比较以检测故障 ,并配合以恢复技术 。
一 、容错计算发展简史
“容错”一词是 Algirdas Avizienis 于 1967 年在他的著名 论文“Design of Fault-Tolerant Computers”中首次提出的 ,即 ,如 果一个系统的程序在出现逻辑故障的情况下仍能被 正确执 行 ,那么我们称这个系统是容错的 。
目前 ,一种被普遍接受的“容错计算机系统”( Fault-Tolerant Computer System) 的定义为在出现硬件故障或软件错误的情况 下仍能继续正确执行指定任务的计算机系统 。
来提高可靠性 ,试图构造出不包含故障的“完美”系统 , 其手
段是采用正确的设计与质量管理方法来尽量避免把 故障引
入系统 ,实际上要绝对做到这一点几乎是不可能的 , 所以避
错的现实目的在于使系统的失效率降低到一个可接 受的数
值 , 对避错技术的研究与应用自从计算机问世之日 就开始
了 , 时至今日 , 这门技术已得到了很大的发展 , 并已成为提