RT Linux在可预测的时间内响应高优先级事件

描述

  与物理世界的互动可能很棘手?甚至危险!假设您有一个控制化学过程的物联网 (IoT) 应用程序 - 可能是用于航空航天任务的外来化学品。物联网设备包括温度传感器, 压力, 流量, 和油箱液位以及泵的执行器, 加热器和阀门 ?包括一个准备排放高压的泄放阀。在这种情况下,您可能会运行分析和报告软件,接收传感器读数,并控制各种泵、加热器和阀门。借助物联网,可以通过通常运行复杂应用程序的网关和控制器将计算推向边缘。

  现在,危险就在这里:让我们假设化学反应可以在几乎没有警告的情况下失控,产生突然的灾难性压力峰值。为了使事情变得有趣,我们将添加一个高压反应容器,该容器在压力过大的情况下可能会发生灾难性故障。事实上,如果压力超过 5,000 psi,则必须在压力事件发生后半秒内打开泄放阀以防止破裂。

  通常,响应这种突然的压力事件不会有问题。但是,如果这个控制系统负载很大 - 正在生成报告,垃圾收集器进程正在运行,接收正常温度和压力事件,并且用户正在与系统交互 - 同时发生化学反应产生超压情况,会发生什么?重载控制系统可能无法及时响应以防止损坏。

  答案是使用操作系统和应用程序,这些操作系统和应用程序旨在使重要事件能够抢占不太重要的活动。这就是Real-Time Linux(RT Linux)的用武之地:一个已经扩展到可预测地响应关键事件的Linux。

  RT Linux 为开发人员、系统管理员和用户提供了一个熟悉的环境。它使用标准的 Linux 驱动程序、设备、网络和接口。RT Linux运行实时应用程序,在现代处理器上运行时满足许多实时应用程序的要求。它提供了一个现代开发环境,并集成到现代分布式系统中。

  从本质上讲,实时的概念很简单——在可预测的时间内响应高优先级事件。请注意,这不会说得很快,而是可以预见。成功的实时实施的秘诀是从可预测性开始,然后调整系统规模以提供所需的性能。

  RT Linux 是标准 Linux 的扩展,它以多种方式解决可预测性问题。首先,它提供了广泛的抢占支持,以便高优先级任务可以从低优先级任务接管对系统的控制。它还使用高分辨率计时器,以便更高优先级的任务可以控制系统的点之间的时间更少。最后,它采用增强的中断,使关键事件优先于不太重要的事件。

  在上面的例子中,RT Linux 将以通常的方式处理正常的工作负载——报告、分析、垃圾收集、用户交互等的行为都与通常相同。来自传感器和执行器的消息将优先于其他任务,以便在一致、可预测的时间内处理它们。紧急超压消息和对泄放阀的命令将优先于其他一切,并立即处理 - 无论系统中发生什么其他事情。

  如果Linux可以处理实时,你可能想知道为什么仍然使用专用的实时操作系统。专用的实时操作系统可以提供更强的确定性行为,尤其是在确定性硬件上。这在过去一直是一个强有力的因素。

  然而,现代系统——具有丰富指令集的多核处理器、多问题/乱序处理、多级缓存和复杂的 I/O 子系统——在确定性行为方面存在问题。在这些系统上,使用传统方法来证明任务将在指定的时间内完成是极其困难的。现代硬件也使用现代软件 - 包括强大的编程语言,复杂的框架和库,丰富的开发和调试工具 - 所有这些都使得难以证明确定性。

  虽然现代系统很难使用形式化技术来证明确定性性能,但经验表明它们可以在提供实时响应方面做得非常出色。仔细的设计、全面的测试和广泛的基准测试是使系统能够满足实时应用程序需求的方法,即使使用传统上用于分析实时系统的形式方法无法证明性能。

  对于许多应用程序,我们可以重新考虑专用的实时操作系统,并利用RT Linux必须提供的标准化,功能和灵活性。事实上,问题不在于是否将Linux用于实时应用程序,而在于使用哪种RT Linux:用于嵌入式应用程序的精简极简Linux,用于复杂应用程序的全功能企业Linux,或者您可能已经有经验。

  审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分