0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

星星科技指导员 来源:嵌入式计算设计 作者:RUSSELL DOTY 2022-11-02 09:22 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

与物理世界的互动可能很棘手?甚至危险!假设您有一个控制化学过程的物联网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,或者您可能已经有经验。

审核编辑:郭婷

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

    关注

    2950

    文章

    48147

    浏览量

    418809
  • Linux
    +关注

    关注

    88

    文章

    11821

    浏览量

    219598
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    什么是嵌入式操作系统?

    :创建 3 个任务(传感器任务、蓝牙任务、电机任务),设置蓝牙任务优先级最高(紧急指令优先响应),RTOS 自动调度,优先级任务打断低
    发表于 12-09 10:33

    Linux-RT特点及简单应用

    Scheduling),允许内核中断正在执行的任务以执行更高优先级的任务。这可以降低任务响应时间,提高实时性能。 内核锁优化:Linux-RT对内核中的锁机制进行了优化,减少了锁的竞争和持有
    发表于 12-05 07:37

    mcu短时间内发生多次中断,如何解决中断丢失问题呢?

    ?例如:中断A时间内触发了3次,但是CPU来不及响应(中断A的执行函数时间长,或者正在执行更高优先级的中断),CPU能否记住这3次中断?
    发表于 12-05 07:07

    抢占优先级和子优先级

    关于抢占优先级和子优先级: 1)具有抢占式优先级的中断可以具有低抢占式优先级的中断服务程序执
    发表于 12-03 07:11

    电能质量在线监测装置的暂态数据补传的优先级是怎样的?

    电能质量在线监测装置的暂态数据补传优先级设计遵循 事件驱动、主站指令优先、资源动态分配 的原则,结合行业标准和设备机制,形成以下多层级优先级体系: 一、最高优先级:紧急事件驱动补传 1
    的头像 发表于 11-06 14:02 433次阅读

    FreeRTOS任务调度及优先级问题

    都有容错,但是心里没底,想向大家了解一下实际工作中有没有遇到到类似的问题,如果有又是怎么解决的呢? 另外有前辈可以分享一下任务的优先级实际项目中该基于什么原则来划分呢?
    发表于 11-06 02:18

    【米尔RK3506国产开发板评测】3、实时补丁以及EtherCAT IGH移植

    使用了更加高效和优化的任务调度算法,如基于优先级的实时调度算法,以确保优先级任务能够及时响应并完成,而低优先级任务不会影响到实时任务的执行
    发表于 10-27 10:09

    使用fal api 来读写1024 字节数据,需要需要考虑被优先级线程打断吗?

    使用fal api 来读写1024 字节数据,需要需要考虑被优先级线程打断吗?
    发表于 10-10 07:16

    优先级线程无法调度怎么解决?

    1,设置了3,5,6,8几个优先级,设备现场正常运行了一年多后,显示、前端、后端这3个低优先级线程异常了,表现为屏幕不动,前端采集数据没有变化等,其他
    发表于 09-25 07:33

    什么是RTOS中的优先级反转

    当一个优先级任务正在等待一个资源,但一个低优先级任务正在持有它,一个中等优先级任务继续中间运行时,就会发生
    的头像 发表于 09-09 14:50 1215次阅读

    揭秘!基于RT-Thread探究“优先级反转”下的任务调度究竟是什么样的?| 技术集结

    RT-Trace初体验!废话不多说,我们直接开始。本文基于RT-Thread来编写测试代码。在此之前我们先捋一下代码流程:优先级反转问题的本质是
    的头像 发表于 08-17 10:07 3472次阅读
    揭秘!基于<b class='flag-5'>RT</b>-Thread探究“<b class='flag-5'>优先级</b>反转”下的任务调度究竟是什么样的?| 技术集结

    TLe9893怎么调整外设的中断优先级

    你好林工,我该怎么调整外设的中断优先级?是否可以通过工具调整?默认设置下,是不是Brdv的中断优先级高于T20和can?
    发表于 08-01 06:20

    【HZ-RK3568开发板免费体验】3、开启Linux Kernel RT功能

    基于优先级的实时调度算法,以确保优先级任务能够及时响应并完成,而低优先级任务不会影响到实时任务的执行。 中断处理: Preempt-
    发表于 07-22 14:03

    一文读懂:嵌入式Linux实时性进阶

    : PREEMPT_RT:增强了Linux内核的预测性,使得实时任务能够更可靠地按时完成。 Xenomai:由于其独立的实时内核和优先级
    发表于 07-10 15:26

    CyU3PDebugPrint的最高优先级和最低优先级是什么?

    [i]CyU3PDebugPrint的最高优先级和最低优先级是什么?
    发表于 05-13 08:22