FreeRTOS vs Linux针对单个事件的干扰

时间:2015-11-01 20:40:12

标签: linux operating-system rtos

我正在使用CubeSat的车载电脑。我们的计算机容易受到辐射,因此单个事件扰乱,例如可能会发生位翻转。像FreeRTOS这样更轻,更小的操作系统能否在完整的Linux操作系统上带来更高的稳定性,稳健性和更低的故障概率?

1 个答案:

答案 0 :(得分:2)

RAM中的位错误的概率是时间,内存大小和辐射密度的函数,因此更大的内存具有更大的概率,并且您可以将FreeRTOS系统安装在更少的内存中(例如10kb而不是4Mb) 。然而,较小内存的使用率可能要高得多 - 即在FreeRTOS应用程序中,大多数代码和数据都是相对频繁地访问的,而在Linux部署中,大部分都是冗余的,如果损坏可能永远不会被访问情况下。

然而,由于以下几个原因,这个问题毫无意义,例如:

  1. 位翻转事件的影响完全是非确定性的,任何单一事件都可能是良性的或灾难性的。当你不知道错误发生的时间或地点时,系统不能容忍1个错误。

  2. 如果您的系统可以在FreeRTOS上实现,为什么还要考虑Linux呢?它们是粉笔和奶酪。如果您需要Linux提供的广泛的网络,文件系统,内存管理,POSIX API和设备支持等,FreeRTOS在任何情况下都不适合您的应用程序,因为您必须自己添加所有这些或其他第三个 - 派对代码。 FreeRTOS只是一个调度内核,具有线程,同步和IPC支持等等。相反,如果您需要硬实时确定性行为,则Linux不适合您的应用程序。

  3. 使用像FreeRTOS这样的RTOS内核可能会从中受益的是它将从ROM执行,这可能不太容易发生位翻转宇宙射线问题 - (尽管ECC /辐射强化闪存的可用性可能另有说明) 。你仍然需要RAM用于R / W数据,但至少代码本身将是健壮的。典型的FreeRTOS系统可能在SRAM中运行(可能在微控制器上的片上RAM) - 我不知道低密度SRAM是否比高密度SDRAM更不容易发生位翻转,但我愿意相信它是。在任何情况下,也可以采用辐射强化SRAM

    在这样的环境中使用SDRAM的系统的解决方案是使用ECC RAM,这可以在很大程度上克服辐射和非确定性系统行为导致的数据损坏问题。但是我不会想象即使这对于太空或高气氛应用也是如此。

    简而言之,解决方案不在软件中,必须在硬件中,并且您需要的长度将取决于您的系统将受到的辐射环境。然而,选择一个小型RTOS内核可以使硬件选择范围更广,因为它可以在更小的内存中运行在更广泛的架构上,确定性地执行,以更少的周期响应事件并且是可ROMable的。