安全关键应用程序和分区共享中任务的SIL分配规则

时间:2010-12-03 15:46:27

标签: safety-critical

考虑到由几项任务组成的安全关键应用程序,我有以下问题:

是否可以在应用程序中执行不同SIL的任务,或者所有任务是否都与SIL相同?我知道在HW中,可能有一个特定SIL的系统实际上由不同SIL的子组件组成。 IEC 61508-2,第7.4.3节介绍了组合不同SIL子系统的规则,以形成比组成部分更大SIL的系统。

如果可能,要合并的规则是什么?参考资料非常有帮助。 例如,SIL 2的任务可以作为SIL 3任务的输入吗?

谢谢,祝你好运,

4 个答案:

答案 0 :(得分:3)

是的,这是可能的。我建议阅读最新版IEC 61508(IEC 61508-3:2010)附录F“在单台计算机上实现软件元素之间不干扰的技术”的第3部分,它只有5页,但内容非常丰富。它概述了实现具有不同SIL级别的软件模块的空间和时间独立性的方法。

如前所述,PikeOS和Vxworks等操作系统应提供此分区;我知道已经通过IEC 61508认证的SafeRTOS确实提供了这种类型的分区作为标准。

答案 1 :(得分:2)

您应该查看基于ARINC 653(和DO-297)或同等系统的系统。基于分区的操作系统旨在满足这种需求。我的意思是PikeOS,VxWorks,Integrity ......

答案 2 :(得分:2)

正如我所说:符合ARINC 653标准的RTOS(适用于飞机)正是针对这一目标。 DO-178B(相当于IEC 61508或ISO 26262或Def-Stan 55/56)要求分区之间的空间和时间分段或不同的软件保障级别(对您而言,SIL级别)。您可以找到适合您特定市场的等效系统。 对于链接不同级别,低级别层和通信信道存在固有的困难。您必须在更高级别的安全性/安全性/可靠性(意味着最难获得)中证明您的系统的确定性。因此,通信不能阻塞,RTOS必须被认证到更高级别,...这在基于分区的RTOS中被考虑,如ARINC 653等效。 您也可以成功使用MILS Linux或虚拟化系统(= XEN,OKL内核等虚拟机管理程序)

答案 3 :(得分:1)

即使独立安全评估员会深入分析您的代码,您也可以将不同SIL级别的SW模块组合在一起。原理很简单:您必须证明较低的SIL模块不会影响更大的SIL模块。要实现这一点,您必须记住,较低的SIL功能可以调用更大的SIL功能,但必须严格避免相反的情况。 在这种情况下,要在具有不同SIL级别的两个模块之间交换数据,您需要第三个模块,其SIL级别等于提供给API以交换数据的更高级别。 例: - SIL3任务(T1)实现故障安全应用程序协议。 - SIL0任务(T2)实现TCP / IP堆栈,用作应用协议的传输层。 当然,T1和T2必须在两个方向上交换数据。 您需要第三个任务(T3),至少SIL3,它提供任务间通信API(例如一些队列管理功能)。通过这种方式,T1或T2只调用T3的函数(即SIL3)来交换数据。

这种机制的典型例子是所谓的"黑板",用于航空电子应用。