闵应骅的博客分享 http://blog.sciencenet.cn/u/ymin 一位IEEE终身Fellow对信息科学及其发展的看法

博文

容错计算技术的应用(110804)

已有 6777 次阅读 2011-8-4 15:05 |个人分类:计算机|系统分类:科研笔记| 故障安全, 容错计算

容错计算技术的应用(110804)
闵应骅

    723温州动车追尾事故以后,大家对容错计算技术更加关心。7月30-31日在清华大学举行的第14届全国容错计算学术会议的朋友们也鼓励我写一写容错计算的科普文章,以唤起全社会对容错计算的关注。本文不打算对容错计算的技术内容分类介绍,而是按容错计算在各行业的应用,就本人所知道的,做一些介绍。

1.容错计算在铁路的应用

    铁路控制和信息系统要求高可靠、高安全。在车站,有联锁系统,把控制台、轨道电路、道岔、进路、信号机互相联锁起来。保证列车进站、出站、通过的安全和高效。过去,这套系统是用继电器电路完成的,而现在都是用计算机来完成。在区间,轨道电路反映列车的占有与否的信息,以判断该区间是否有车。在更现代化的系统中甚至还传输列车速度、位置等信息。可这些信息都是在地面的。如何传到列车上?要靠装在机车第一轮对前面的感应器传到车上。有的读者可能会问:现在无线通信这么发达,何必这么麻烦?是的,现在有线、无线、光缆传输都在用,这就是容错技术里面所说的异构的冗余方式。各种传输方式都有优缺点,要互相补充。更高端的调度集中系统、列车集中控制(CTC)系统,现在都是用计算机。为了保证安全可靠,一般都采用双模、三模或2X2冗余系统。冗余系统是容错技术的核心。但是,冗余需要决策。多机输出的结果是否一致。如果不一致,信谁的?最好的执行机构,譬如列车制动,虽然也有冗余,但总只能有一个来执行。所以,总会有所谓“单点故障”,即该点故障,必使系统失效。在这种情况下,如何保证“故障-安全”?就是说,在故障情况下,系统要倒向安全一侧。
    在这次温州动车追尾事故中,据说轨道电路设备应该发红黄码字发了绿码。这就是“故障-安全”问题。在故障情况下,该显黄灯可以显红灯,但绝不能显绿灯。这就是所谓降级使用。系统在故障情况下,性能允许降低,但绝不允许危及安全。要求操作员日夜盯着显示器来保证安全是不现实的。人在控制系统中不可或缺,有时起决定作用。但是,人常常也是不可靠的因素。过去,轨道电路使用重力式继电器。由于重力是永恒的,不论在任何故障情况下,继电器落下,系统可以转到安全侧。在使用无节点元件以后,0和1是平等的。系统如何倒向安全就成了一个问题。必须采取技术措施、找出可能危及安全的具体问题,以保证以最大概率倒向安全侧。
    这些问题,在早期的国际容错计算会议(FTCS)上就有多篇论文。所以,容错技术在铁路控制系统中得到了广泛的应用,而且是非它不可的。在我国现在GDP占世界第二位以后,钱不是个大问题。所以,硬件的冗余是基本足够的。我们的安全投入大多是添置新的硬件措施,而软件方面就可能有缺陷。我们更需要在软件可靠性上下功夫。

2.容错计算在航空上的应用
    
    大飞机是我国近年启动的重大项目。在飞机上的控制系统和地面的信息系统都是采用容错的计算机系统。飞机上是采用四模冗余系统,来保证飞机的安全飞行。当一套系统故障时,下一套系统可以进行控制。而地面的空中信息系统,则把空间分割成长方体,在每一个长方体内只允许有一架飞机,保证飞机不会在空中相橦。可这些系统要求必须高可靠。任何一点闪失都可能导致飞机失事。当然,保证飞机的安全飞行,不光是信息技术的问题,飞机的材料、设计、制造都有大量问题与安全有关。

3.容错计算在航天的应用

    容错计算的祖师爷应该算美国加州大学洛杉矶分校的A. Avizienis,他1960年代就为美国国家航空航天局(NASA)研制出了STAR(自测试和自修复)计算机,从而建立了容错计算这一学科领域。任何航天器要在空间长期停留,火箭要能保证发射成功,都必须容错,也就是必须有第二手、第三手准备。而计算机要容错,在没有人的干预的情况下,必须有自测试、自修复的能力。这方面的技术,现在当然已经有了很大的发展。

4.容错技术在事务处理中的应用

    事务处理,包括银行、证券、金融、电信等方面,可靠性要求很高,必须容错。否则就会造成财产损失。我国近年来各大银行都使用国外的高性能容错服务器,中国2006年的高端服务器市场规模达到96亿元人民币,销售量达到22300台,销售额增长率达到10.4%。国内高端服务器市场销售额市场基本被IBM、HP、SGI、SUN等国外高性能服务器厂商垄断,其市场占有率达到95.6%。光IBM一家就是34亿,占35%。我国金融、电信行业为什么这么青睐他们的计算机呢?很重要的是要求容错、高可靠、高可用。所以,十一五期间国家投资10多亿,由浪潮、华为,哈工大等单位研制高端容错计算机。期待有一天,我国的银行、证券、金融、电信部门,都能用上我国自己生产的高端容错计算机。我国多次出现的ATM故障,使普通老百姓也很体会到银行计算机系统的可靠性多么重要,不用容错技术就无法达到理想的可靠性水平。

5.容错技术在半导体产业的应用

    半导体产业是信息技术的基础。集成电路现在到处都在用,而其质量至关重要。而要保证集成电路芯片质量,首先就是问:厂家销售出来的每一个芯片是不是都是好的?这就必须要测试,测试在整个设计、制造过程中都不可缺少。所以,测试本身也形成了产业。测试的一些理论问题,如测试模式的自动产生、可测试性设计等都属于容错计算的范围。

6.容错计算在软件可靠性方面的应用

    保证软件可靠性的重要手段是软件测试。软件测试已经形成产业。因为一个大型软件中,每千行程序有2-5个错误是很平常的事。软件必须经过严格测试才能上市或付诸使用。所以,软件测试要占软件开发成本的50%左右。而软件故障模式、软件测试用例生成、软件测试方法研究等都属于容错计算的范围。软件可靠性故障模型、随时间的变化过程和规律都是需要研究的。事实上,这些研究已经促进了软件可靠性的提高。

7.容错计算在超级计算机方面的应用

    超级计算机是一个国家计算技术进步程度的标志。包括上百个机柜,成千上万的处理器,是一个庞然大物。一般超级计算机的正常工作时间(MTTF)也就10小时左右。要计算超过10小时的题目,就可能由于down机而半途而废,前功尽弃。即使是在这10小时以内,这么多机柜、这么多电路板、这么多元部件,出现故障是难免的。在部件出现故障的情况下,如何保持整个机器仍然能正常工作,这就是容错计算技术要处理的问题。在超级计算机内部的数据传送过程中,大量采用了差错检测码(EDC)和差错校正码(ECC)。在系统运行过程中,一个比较常用的技术是检查点(Checkpointing )技术。就是说,我们通过硬件或软件,在程序运行过程中,设置一些检查点,保存现场信息。当出现故障时,程序返回到检查点继续运行,以保持整个系统的正常运行。当电路板出现故障时,还必须方便维护。容错技术里有所谓在线拔插的技术。不要以为在线拔插很简单,在系统工作时,把板子拔下来就完了,修好了再插上去。可是,你想一想,拔下去一块板子,系统还能正常工作吗?突然插上一块板子,它能跟系统同步工作起来吗?现在,超级计算机除了高性能、低功耗之外的重要指标就是可靠性。如何提高可靠性,就靠容错技术。

    以上只是就本人所知道的,介绍了容错计算技术的应用。我相信,还有许多的遗漏。希望容错技术在我国各行业的应用,能够对我国产品质量、服务水平,在安全可靠方面做出重要贡献。



https://blog.sciencenet.cn/blog-290937-471790.html

上一篇:即兴发言
下一篇:从温州动车追尾事故想到的(3)(110812)
收藏 IP: 121.18.127.*| 热度|

6 余海燕 程智 黄富强 刘洋 赵凤光 俞立

发表评论 评论 (10 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-16 15:59

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部