安全性(safety):免除不可接受的风险影响的特性。我认为安全性来自两方面:系统在正常运行下的安全性(即逻辑上的错误,又叫功能安全)和故障(失效)下的安全性。安全控制系统中逻辑上的错误是要坚决杜绝的(百分之百没有也是不现实的),在铁路行业中有专门的检测机构进行测试,其实质是遍历测试,测试所有可能的情况;故障安全是指故障时设备应导向安全状态。
可靠性(reliability):指系统或元件在规定条件下,规定时间内,完成规定功能的能力。
可用性(availability):在要求的外部资源得到保证的前提下,产品在规定的条件下和规定的时刻或时间区间内处于可执行规定或恢复功能的能力。
假设系统的可靠性为百分之百。这时即使系统故障不会导向安全,那也是安全的,所以说系统的可靠性越高,系统越安全(这只是一个相对概率);即使可用性差,即MTRF很大,那也没有问题,因为可靠性百分之百。
假设系统的可用性是百分之百。那即使系统的可靠性不高对用户造成的影响也较小,例如通过冗余来提高系统可用性,即冗余的实现是百分之百OK的(因为可用性为百分之百),当系统出现可靠性问题(故障)时自动切换到冗余系统,不会影响用户的可用性,也相当于提高了整个系统的可靠性,当然,如果切换到冗余系统后原系统不修复的情况下发生故障则会导致系统瘫痪(即共模故障),所以说低可靠性会导致低可用性;同样,较好的可用性会提高系统的安全性。
假设系统的安全性是百分之百。这时对可靠性的要求会有一定程度的降低,毕竟安全问题才是最大的问题。对可用性会提高,因为系统故障时带来的后悔严重程序较小。
其实这三个指标并不是所有时候都成正比关系的,有时会牺牲一个指标来满足另一个指标。例如在三取二系统中,降级模式有两种3-2-1-0和3-2-0,在第二种降级模式中,如果只有一个模块则系统是不能工作,因为已经无法表决了,即为了保证安全性降低了可用性;而第一种降级模式中则可工作,即牺牲了安全性降低了可用性。
安全性是以防止人生伤亡和财产损失为目的。
安全性评价比较常用的是安全完整性等级(SIL),根据安全要求的不用共分为四个等级。国内石化行业用的是SIL3,铁路和轨道交通用的是SIL4。
在硬件上例如会采用动态电源、硬件表决、诊断、回采等技术来提高安全性;软件上例如软件表决(避错技术,例如三取二,二取二等)、通信数据的严格检验、命令间的相关性小、模拟量的裁决:平均值,平滑滤波等。
可靠性以维护系统的功能正常执行为目的。
对可靠性的评价一般用平均无故障时间(MBTF)。
质量是可靠性的基础,规范的质量检查及软件工程都是可靠性的重要保障。此外,
在硬件上应注意元器件的选择和使用、机械环境设计考虑、电磁兼容设计考虑等。
在软件上有N版本程序设计、恢复块等技术。
在系统级别有失效模式分析(FMEA),故障树(FTA)等技术。
可用性以系统故障后(或局部故障)对业务的影响最小为目的。
对可用性的评价可用平均修复时间(MTRF)衡量。
最常用的提高可用性的方法为冗余(容错技术),例如三重表决系统(三取二)、二乘二取二等,这些系统兼顾了安全性和可用性。
这三个指标的关系:
下面通过几个假设再阐述一下这几个指标的关系:
上面已经提到安全性包括正常工作时的安全性和故障时的安全性,这里面只讨论故障安全,
可靠性关注的是少出故障。
可用性关注的是故障后对业务的影响程度。
安全性关注的是故障后的后果。
绝对(百分之百)可靠、可用和安全的系统是不存在的,所以在系统设计时要权衡这几着之间的关系。