谈谈嵌入式系统的可靠性和安全性

来源:互联网 发布:js 对象的长度 编辑:程序博客网 时间:2024/06/07 05:43
    这里谈的安全性,跟通用计算机所说的网络安全性不是一个概念,网络安全性指的是数据不被人为破坏和窃取,计算机不被恶意控制。而这里谈的安全性,指的是设备安全,例如自动化生产线不夹断工人手指。
    可靠性,是指设备的可信赖程度,即正确地完成设定功能的能力。
    安全性,指的是在设备发生故障,或者人为误操作的情况下,确保安全的能力。这可能不好理解,举个例子就明白了,比如汽车要通过碰撞试验,确保在刹车失灵、人为误操作、道路塌陷等事件导致交通事故时,确保人员安全的一种手段,碰撞试验的成绩,就是一种安全性指标。
    安全性,其实是可靠性的一个子命题,为什么这样说呢?任何安全措施,都是由一定的硬件和软件构成吧,这些软硬件本身必须可靠,才能确保安全,这不还是可靠性的命题么!那为什么还会有安全性这个指标呢?因为安全性太重要了,性命攸关的设备中,即使降低可靠性,也要提升安全性,事实上,在绝大多数情况下,提升安全性是要牺牲可靠性的。
    既然安全性需要可靠性来确保,那么设备的安全,岂不要保证设备的绝对可靠么?我们知道,绝对可靠是一个成本极高且还不一定能做到的。当年两弹一星的研发中,周总理要求“万无一失”的方针时,即使在当时的政治气氛下,科学家们都不敢承诺。
    既然不能保证绝对可靠,安全性怎么设计呢?“单一故障安全”的概念,就应运而生了。
    1、当设备发生单一故障时,能确保不发生安全事故。
    2、具备检测单一故障并告警的能力,确保设备不带病运行,继而发生多点故障。
    DJYOS有一些专利的设计,能帮助工程师做安全性设计。只要是软件,就可能有bug,bug可能导致软件崩溃重启,外部事件,比如雷击,也可能导致设备崩溃重启。DJYOS在启动和加载过程中,中断是不关闭的,而且,DJYOS两次加载的设计,确保用户能够在系统启动后,第一时间响应中断。假设一下,当汽车以150码的速度(吐槽,国内好像没有能跑150码的公路,国外有)狂奔时,紧急刹车,ABS启动,不幸地,附近打了个雷,强大的雷电冲击,导致控制ABS的设备软件崩溃重启。看官,我们算一下,这时10mS内,汽车能跑多远,接近半米,如果在重启过程中,控制器失控,即使重启过程只有10mS,刹车距离就硬生生地增加了半米!我们再看看,ABS控制间隔,你看过路上的刹车痕迹吧,好车的刹车痕迹,每10厘米左右就一个黑点,这是什么概念,2.5mS左右,ABS就完成一个控制周期!类似的设备,如果使用DJYOS,就可以把完成关键控制的部分代码,放在中断中执行,即使各种原因导致软件崩溃重启,DJYOS能确保在启动和加载过程中,ABS不失控!这就是典型的安全性设计,在可靠性失手,设备故障的条件下,确保安全。
0 0
原创粉丝点击