嵌入式系统设计缺陷案例

来源:互联网 发布:局域网禁止p2p软件 编辑:程序博客网 时间:2024/06/10 17:39

Therac-25 radiation therapy machine

后果:6个接受该仪器治疗的病人放射中毒,3个死亡。

问题:1. 仪器控制任务和操作者接口任务没有正确同步,当操作比如按键操作太快时就出现了"竞争条件",而这种操作平时是很难测到的,因为很少情况会操作如此之快碰到这个问题。

          2. 这个仪器的代码是从旧仪器代码升级上来的,旧仪器有硬件interlock来屏蔽软件缺点,新仪器没有硬件interlock,这些硬件不能告诉软件它被触发了,所以不能指出潜在的错误软件命令。

 

参考:Where testing fails By Sean M. Beatty  (07/22/03, 12:00:00 PM EDT)       

          http://www.embedded.com/columns/technicalinsights/12800625?_requestid=327309

 

 

The Ariane 5 explosion 

后果: Ariane 5火箭升空不到40秒,失去控制爆炸,损失DM 1200 million。

问题:1. 一个64位浮点数转换赋值给16位整数时溢出,类型转换用简单的y=int(x),先决条件x必须在-32768~32767间没有得到保证。这个类型转换赋值的溢出使活动的和备用的惯性参考系统几乎同时关闭,火箭失去姿态控制。

 

参考:The Ariane 5 explosion as seen by a software engineer

          http://www.cas.mcmaster.ca/~baber/TechnicalReports/Ariane5/Ariane5.htm

         ARIANE 5 Flight 501 Failure, Report by the Inquiry Board

         http://sspg1.bnsc.rl.ac.uk/Share/ISTP/ariane5r.htm

 

 

原创粉丝点击