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

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

3天内不再提示

如何选择Linux操作系统实时扩展

智汇工业 来源:智汇工业 作者:智汇工业 2022-04-25 15:26 次阅读

EtherCAT是一种由Beckhoff开发的开放实时以太网技术,广泛用于对精度和实时性要求较高的运动控制设备和采集设备中。

由于我们处于特殊的位置,使我们在推广EtherCAT主站协议栈的过程中,我们经常会围绕实时Linux系统与客户展开讨论。根据EtherCAT主站提供商Acontis公司对全球新客户统计,选择实时Linux系统的客户比重在过去10年逐年增加。2019年新客户中采用实时Linux作为控制器操作系统已超过60%。

从近几年的经验中,对于实时Linux系统主要聚焦在采用RT-Preempt 还是Xenomai的争论上。结合实时Linux系统专家Jan Altenberg在Embedded Linux会议上的讲演。整理出此文,希望可以在RT-Preempt 和Xenomai之间选择做出参考。

实时性

在和客户的交流过程,部分工程师会把实时性与执行速度或性能相混淆。Altenberg在讲演中强调:实时性与执行速度和性能无关!

实时性的含义不是越快越好,而是在规定的时间内完成任务的确定性(determinismand timing guarantees)。

在技术讨论中,同样客户对EtherCAT协议不存在错误数据自动重传机制有类似疑问。

EtherCAT主站的工作原理是按循环周期发送数据。所以EtherCAT在协议层面不会自动在后续周期重新发送失败的过程数据。

在Embedded Linux会议讲演中,Altenberg还表述了一个有趣的观点,他希望大家忘掉“软实时”即Softrealtime 的提法,只存在实时和非实时的、确定性和非确定性的区别。能保证确定性,那就是“硬实时” hardrealtime。

Xenomai和Preempt RT

目前,对实时Linux方案的选择集中在Xenomai和Preempt RT之间。Xenomai是在LinuxKernel外增加独立内核的双内核方案,而Preempt RT是标准的单内核实时方案。

图1是Xenomai为代表的双内核方案的原理图:

ddc7b46a-c442-11ec-bce3-dac502259ad0.png

图1 Xenomai原理图

Altenberg认为双内核实时方案有几个明显不足。首先,维护工作量大。其次,Xenomai不能使用标准C库,实时应用的开发需要特殊库以及单独的API

主流的实时Linux方案是基于Preempt RT 的单内核方案,通过最大限度地提高Linux内核中的可抢占部分,使Linux本身具备实时性。如图2 Premept RT原理图所示:

dde12954-c442-11ec-bce3-dac502259ad0.png

图2Preempt RT原理图

大约80%的PreemptRT功能已经融合进Linux主线,所以任何Linux开发者都可以使用Preempt RT的Linux 内核组件。

随着剩下的20%功能逐渐融入Linux主线,未来有可能不需要在Linux安装补丁程序而直接使用Preempt RT。

性能比较

实时性能最重要的指标是延时。网上有不少文章,表示Xenomai在延迟方面有优势。Altenberg并不认同这种观点,他认为是对Preempt RT的错误配置造成的。

为了证实,他们的团队分别找Xenomai和Preempt RT专家,在相同的硬件上进行测试。测试对象是高负载下Xenomai和Preempt RT在延时Latency和抖动Jitter的表现整个测试程序运行12个小时。

Altenberg强调了两点,第一是测试的最坏结果才有意义;另外一点是系统拿到中断后,在用户空间的应用响应延时是对应用最有意义的。

在用户空间的测试结果,在测试中的最坏延时,Xenomai和 Preempt RT都在90-95 微秒左右。当在Linux系统中只使用单核测试时,PREEMPT RT最坏的延时只有大约80微秒,结果优于Xenomai。

在Kernel空间延时的测试结果,Xenomai最高延时在30微秒,单核运行Preempt RT的最高延时60微秒。如果使用FIQ 快速中断的话,Preempt RT的最坏延时也达到30微秒,平均延时甚至到达10微秒。

最终,对于开发人员最有意义的用户空间内最坏延时方面,两种实时方案在该性能指标上展示出近乎相同的数据。

但是Preempt RT几乎已经和Linux内核主线合并,从系统的开发和维护角度,Preempt RT的工作量与标准Linux相同。这使Preempt RT与Xenomai相比具备更多优势。

审核编辑 :李倩

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

    关注

    40

    文章

    5419

    浏览量

    171598
  • Linux
    +关注

    关注

    87

    文章

    11292

    浏览量

    209328
  • 操作系统
    +关注

    关注

    37

    文章

    6801

    浏览量

    123283

原文标题:如何选择Linux操作系统实时扩展的讨论

文章出处:【微信号:ilinki,微信公众号:智汇工业】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何选择嵌入式系统操作系统操作系统特征

    Linux来帮助他们管理复杂性。不幸的是,如何在裸机,RTOS或Linux之间进行选择并不总是明确的。每个选项都有其优点和缺点。 这篇文章将探讨选择
    的头像 发表于 09-07 11:51 1967次阅读

    实时操作系统RTOS有什么要点?

    对许多嵌入式项目来说,系统设计师都倾向于选择实时操作系统(RTOS)。但RTOS总是必要的吗?答案是取决于具体的应用,因此了解我们要达到什么目标是决定RTOS是必要的还是花瓶的关键。一
    发表于 04-01 07:48

    NuttX实时操作系统

    (嵌入式 实时操作系统 rtos nuttx 7.1)NuttX 介绍转载请注明出处: NuttX 实时操作系统NuttX 是一个实时
    发表于 08-06 07:53

    实时操作系统Linux分时操作系统有哪些区别呢

    什么是单片机?什么是嵌入式呢?实时操作系统Linux分时操作系统有哪些区别呢?
    发表于 01-24 07:36

    Linux操作系统原理及应用

    Linux操作系统原理及应用 1.1  操作系统的地位 1.2  操作系统的功能 1.3  操作系统的发
    发表于 04-28 14:53 0次下载

    Linux操作系统实时性分析及改进策略

    实时操作系统要求具有速度快和可预测性的特点,必须保证实时任务在要求的时间内完成。本文在分析Linux 操作系统的中断方式和进程调度等影响
    发表于 06-15 10:13 14次下载

    如何选择实时操作系统

    如何选择实时操作系统,感兴趣的小伙伴们可以免费下载看看。
    发表于 07-13 17:31 0次下载

    Linux分时操作系统实时性分析

    一、引言 Linux本身为分时操作系统,其系统目标为较好的平均响应时间和较高的吞吐量,而实时系统则主要考虑任务的按时完成、尽量减少进程运行的
    发表于 12-02 17:42 1028次阅读
     <b class='flag-5'>Linux</b>分时<b class='flag-5'>操作系统</b>的<b class='flag-5'>实时</b>性分析

    为什么选择Linux操作系统?制约标准Linux操作系统实时性的因素

    Xenomai正是充分利用了Adeos技术,它的首要目标是帮助人们尽量平缓地移植那些依赖传统RTOS的应用程序到GNU/Linux环境,避免全部重写应用程序。它提供一个模拟器模拟传统实时操作系统的API,这样就很容易移植应用程序
    的头像 发表于 05-30 14:24 5465次阅读
    为什么<b class='flag-5'>选择</b><b class='flag-5'>Linux</b><b class='flag-5'>操作系统</b>?制约标准<b class='flag-5'>Linux</b><b class='flag-5'>操作系统</b><b class='flag-5'>实时</b>性的因素

    实时操作系统和非实时操作系统的区别

    本文主要阐述了实时操作系统和非实时操作系统的区别。
    发表于 09-02 15:58 1.1w次阅读

    什么是分时操作系统Linux属于实时操作系统吗?

    我们平时分享的µC/OS、FreeRTOS、RT-Thread、ThreadX这些都是实时操作系统(RTOS),那么有读者问:什么是分时操作系统Linux属于
    的头像 发表于 06-23 17:04 9119次阅读

    Linux+嵌入式实时操作系统开发与应用

    Linux+嵌入式实时操作系统开发与应用(嵌入式开发项目实战)-Linux+嵌入式实时操作系统
    发表于 07-30 13:28 21次下载
    <b class='flag-5'>Linux</b>+嵌入式<b class='flag-5'>实时</b><b class='flag-5'>操作系统</b>开发与应用

    选择实时操作系统(RTOS)的要点详解

    对许多嵌入式项目来说,系统设计师都倾向于选择实时操作系统(RTOS)。但RTOS总是必要的吗?答案是取决于具体的应用,因此了解我们要达到什么目标是决定RTOS是必要的还是花瓶的关键。
    的头像 发表于 11-18 10:02 3062次阅读

    Linux实时系统还是分时操作系统?

    我们平时分享的µC/OS、FreeRTOS、RT-Thread、ThreadX这些都是实时操作系统(RTOS),那么有读者问:什么是分时操作系统Linux属于
    的头像 发表于 12-28 11:39 1550次阅读

    linux实时系统还是分时操作系统

    大家平时玩单片机基本上对于µC/OS、FreeRTOS、ThreadX这些操作系统非常熟悉了,他们都属于实时操作系统(RTOS),在工业领域比较广泛;然而对于linux这样的基于时间片
    的头像 发表于 11-11 11:43 425次阅读