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

    文章

    5079

    浏览量

    166251
  • Linux
    +关注

    关注

    87

    文章

    10992

    浏览量

    206744
  • 操作系统
    +关注

    关注

    37

    文章

    6290

    浏览量

    121901

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

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

收藏 人收藏

    评论

    相关推荐

    Linux嵌入式实时操作系统开发与设计

    Linux嵌入式实时操作系统开发与设计
    发表于 08-04 10:10

    实时操作系统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

    4种实时操作系统实时性的分析对比

    本文分析了适用于测控领域的4种实时操作系统,并对比了它们实时性能的重要指标,归纳了实时性设计和实现中的若干问题。关键词: 实时
    发表于 03-25 10:19 31次下载

    Linux操作系统

    linux的教学内容1 、Linux概述 2 、Linux操作系统安装3、 Linux的内核 4 、Li
    发表于 04-10 16:54 0次下载
    <b class='flag-5'>Linux</b><b class='flag-5'>操作系统</b>

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

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

    Linux实时操作系统在s3c2410的移植

             本文描述了linux实时操作系统移植到arm处理器的方法和嵌入式linux
    发表于 09-11 08:27 34次下载

    Linux操作系统信号量机制的实时化改造

    为了提高Linux操作系统实时性,研究了Linux操作系统System V信号量机制在内核中的实现,发现其在
    发表于 06-25 16:41 18次下载

    如何选择实时操作系统

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

    Linux等四种嵌入式实时操作系统的比较

    和堪萨斯大学的KURT-Linux. 近年来,实时操作系统在多媒体通信、在线事务处理、生产过程控制、交通控制等各个领域得到广泛的应用,因而越来越引起人们的重视。 基本特征概述 *QNX是一个分布式、嵌入式、可规模
    发表于 10-17 15:55 2次下载

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

    Xenomai正是充分利用了Adeos技术,它的首要目标是帮助人们尽量平缓地移植那些依赖传统RTOS的应用程序到GNU/Linux环境,避免全部重写应用程序。它提供一个模拟器模拟传统实时操作系统的API,这样就很容易移植应用程序
    的头像 发表于 05-30 14:24 5189次阅读
    为什么<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 9864次阅读

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

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

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

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