天天看点

系统的可靠性分析与设计

可靠性分析

sfta(software fault  tree analysis) 软件故障树分析。

软件故障树分析(sfta)是一种自顶向下的软件可靠性分析方法,即从软件系统不希望发生的事件(顶事件),特别是对人员和设备的安全及可靠性产生重大影响的事件开始,向下逐步追查导致顶事件发生的原因,直至基本事件(底事件),从而确定软件故障原因的各种可能组合方式和(或)发生概率。 

割集:它是导致顶上事件发生的基本事件的集合。最小割集就是引起顶上事件发生必须的最低限度的割集。

布尔代数法求计算机软件求取最小割集和最小径集。

故障树:

系统的可靠性分析与设计

t=a1+a2

    =x1 x2 a3+x4 a4

     =x1 x2 (x1+x3)+ x4 (x5+x6)

     =x1 x2 a1+x1 x2 a3+ x4 x5+x4 x6

     =x1 x2+ x4 x5+x4 x6

    所以最小割集为{x1,x2},{x4,x5},{x4,x6}。结果得到三个交集的并集,这三个交集就是三个最小割集e1={x1,x2},e2={x4,x5},e3={x4,x6}。用最小割集表示故障树的等效图如图:

系统的可靠性分析与设计

可靠性设计

容错设计技术:常用的软件容错技术主要有恢复快设计,n版本程序设计和冗余设计。

1. 恢复快设计中包含有若干功能相同、设计差异的程序块,每一时刻有一个处于运行状态,一旦某程序出现故障,则用备份程序块予以替换。

•恢复块法适合只有一台计算机的情况;

•允许只对较为复杂、容易出故障的程序段进行冗余;

•基本块与替换块的设计应尽可能相异;

•接收测试的作用非常重要,应能检测程序执行结果与预期结果的偏离,或检测和防止能触发安全事故的输出

2. n版本设计的核心是通过设计出多个模块或不同版本,对于相同初始条件和相同输入的操作结果进行多数表决(防止因其中某一软件模块/版本的故障而提供了错误的服务,以实现软件容错)。

3. 冗余设计的思路来源于硬件系统,但有所不同。软件冗余设计技术是采用多种不同路径,不同算法或不同实现方法的模块或系统作为备份,在出现故障时进行替换,维持系统的正常运行。

检错技术:在无须在线容错或不能采用冗余设计技术的部分,但又有较高可靠性需要时,一般采用检测性设计,在软件出现故障后能及时发现并报警,明显的缺点是不能自动解决故障。

•被动式错误检测

–在程序的若干部位设置检测点,等待错误征兆的出现  

看门狗的设计:看门狗技术是控制运行时间的一种有效方法。看门狗实际上是一种计时装置,当计时启动后看门狗在累计时间,当累计时间到了规定值时触发到时中断(即狗叫)。

•主动式错误检测

–对程序状态主动进行检查

避错设计(降低复杂度设计): 软件的复杂性与软件可靠性有密切关系,软件复杂性是产生软件缺陷的重要根源。降低复杂度设计的思想就是在保证实现软件功能的基础上,简化软件结构。

继续阅读