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

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

3天内不再提示

国产实时操作系统:和RT-Linux,Zephyr的实时性对比

RT-Thread官方账号 2024-11-12 01:07 次阅读

工业领域、高安全高可靠性领域,实时操作系统在其中发挥着重要的作用,从毫秒级,微秒级实时响应,决定着装置系统能满足何种严苛的要求。


RT-Thread Smart操作系统是一套基于RT-Thread内核,并具备POSIX用户态运行环境的高性能实时操作系统。它类似Linux、Windows的架构,具备用户态和内核态(并相分离),用户态具备全地址空间(进程模型),启用了A核芯片中的MMU,多级页表,实现了在A核SoC大芯片上的实时控制系统。


RT-Thread Smart在具备POSIX用户态运行环境后,其实时性如何,和一般的RTOS相比,和通用的带实时补丁Linux操作系统相比,它的实时性能力到底如何。希望通过本文的测试给到大家一个对比认识。

测试平台

所有测试基于相同的一块瑞芯微 RK3566开发板,RK3566携带四核 64 位高性能 ARM Cortex-A55 处理器,主频 1.8GHz,4GB LPDDR4X 内存。


RT-Thread 内核基于开源主线仓库 master 分支,平台 SDK 基于 RT-Thread Smart 专业版本,使用 gcc 工具链,优化等级 O2。


Linux-RT 内核版本基于 linux-orangepi 仓库 orange-pi-5.10-rk35xx-rt 分支,5.10内核版本并已经开启了实时补丁选项。


Zephyr内核版本基于开源主线仓库master分支,commit:7a492d308828b928074816c49d38de18b4dcfbb4, 编译优化等级通过 Kconfig 配置为 O2。

RTOS 实时性能测试工具

首先是传统的实时操作系统测试对比,对比的另一实时操作系统选择的是Zephyr实时操作系统,都运行在4核SMP模式下进行测试。本次测试工具选择相同的测试用例代码,用于衡量不同的压力负载下的 RTOS 综合实时性能指标。

指标由以下三个部分构成:中断响应时延 + 异步通知时延 + 实时任务调度时延。这三个部分加起来的时间越短越好,同时多次测量的值分布越集中越好。

6e6f1b30-a04f-11ef-8084-92fbcf53809c.png

测试用例实现方式是在一个实时任务上通过高精度定时器设定一个时延,并挂起该任务。在中断到来时,通过同步原语通知实时任务异步事件到来,并唤醒。然后计算这段时间相对于期望时延的差值,得到这期间的时延数据。通过多次采样,施加不同的压力负载,获得 RTOS 在不同情况下的实时性能指标情况。压力负载则模拟 cpu、中断响应、访存操作。

6e844410-a04f-11ef-8084-92fbcf53809c.jpg

RTOS 实时性测试结果对比

6e9a508e-a04f-11ef-8084-92fbcf53809c.png

点击放大查看更清晰

测试分成了4种情况:

●无压力负载时测试数据,类似于其他都不运行,而是空跑;

● CPU计算负荷下的测试数据,使用 Dhrystone 测试 CPU 负载,它是一种典型的整数运算基准程序,用于模拟高强度的计算场景,以评估系统在繁忙时的实时响应能力。

● IO/中断负荷下的测试数据,通过 IPI(Inter-Processor Interrupts)生成大量中断请求,测试系统在执行 IO 操作处理高频中断场景下的实时性能。

●内存负荷下的测试数据,使用 MBW 测试工具进行内存带宽压力测试,模拟大规模数据传输的场景,考察系统在内存资源紧张时的实时响应情况。

通过上述结果可以发现:RT-Thread Smart基本指标在2.4us的延迟,当IO/中断,CPU计算负荷,内存负荷上去时,最大延迟会上升到8us附近。而Zephyr实时操作系统在一些极限点上延迟会到15us,甚至略显夸张的525us(还好不是1ms)。

cyclictest测试

cyclictest是Linux上非常流行、常见的实时性测试工具,它通过使用高精度定时器来测量两个时间点的延时:

6eb62cdc-a04f-11ef-8084-92fbcf53809c.png

它编译出来是一份用户态测试程序,这份代码在Linux,RT-Thread Smart上都不需要进行修改,直接通过gcc交叉工具链采用O2优化选项进行编译即可。

Linux 测试使用命令:cyclictest -p 95 -d 0 -i 1000 -D 10m -m -n --histogram=100

rt-smart 测试使用命令:cyclictest -d 0 -i 1000 -D 10m -m -n --histogram=20(Linux 优先级规则与 rt-thread 不同,保证 cyclictest 是系统中最高优先级任务即可)

cpu 负载:在后台启动 dhrystone 任务。通过 top 命令观察,每个核启动一个时 cpu 占用率峰值可以达到 99.7% 以上。

内存负载:执行 cyclictest 测试的同时,运行 mbw 任务模拟高内存负载环境。

IO 负载:执行 cyclictest 测试的同时,运行 iperf 服务,并连接客户端测试,以此模拟高网络(IO)负载环境。

cyclic 测试指标对比

6ec6d154-a04f-11ef-8084-92fbcf53809c.png6ee63eae-a04f-11ef-8084-92fbcf53809c.png

点击放大查看更清晰

上述是两份对比图,前面的是cyclictest的min/avg/max对比图。可以看到RT-Thread Smart的实时性表现都比较好,max值在11/12us左右,在内存负载的情况下max值会到30+us。

下面的图则是时延数据的分布情况,可以发现相对于 Linux-RT,rt-smart 下的测试指标在各类负载下的重复实验中基本上都比较集中。因此同为支持到POSIX用户态应用程序的RT-Thread Smart操作系统,相比较带实时补丁的Linux来说,它的实时性优势也是非常明显,相当于提供POSIX应用程序的同时,依然具备非常好的实时性能力。

性能优化是一个持久而漫长的过程,这个其中需要持续的定位整体系统中的性能损耗点,所以在这个过程中我们也在不断迭代、追求极致,并加入更有效的手段、工具来辅助定位及解决问题。下一篇文章,我们将介绍rt-smart上的ftrace及性能可视化等工具,来展现系统的内部系列行为,敬请期待。

欢迎大家在 RT-Thread Github 仓库或论坛上向我们反馈意见和建议。另外,如果您对参与到 RT-Thread 的平台支持(risc-v、arm、arm64 平台上的驱动、内核代码完善)、应用移植与开发、文档维护感兴趣,我们诚邀您加入 Smart 兴趣小组,参与到与 Smart 相关的开源贡献中。

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

    关注

    37

    文章

    6801

    浏览量

    123283
  • RT-Linux
    +关注

    关注

    0

    文章

    5

    浏览量

    6206
  • Zephyr
    +关注

    关注

    0

    文章

    21

    浏览量

    5963
收藏 人收藏

    评论

    相关推荐

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

    系统就难以满足实时性需求,但是目前linux社区已经增加了较多版本的实时补丁,给linux内核
    的头像 发表于 11-11 11:43 421次阅读

    航电实时测试系统解决方案

    航电实时测试系统主要应用于航空座舱的实时测试。座舱测试过程中,输入和输出信号的实时至关重要,尤其是在多任务
    的头像 发表于 10-23 15:34 260次阅读
    航电<b class='flag-5'>实时</b>测试<b class='flag-5'>系统</b>解决方案

    新书发布——《RT-Thread嵌入式实时操作系统内核、驱动和应用开发技术》

    我们非常高兴地宣布,由郑苗秀、沈鸿飞和廖建尚编著的《RT-Thread嵌入式实时操作系统内核、驱动和应用开发技术》一书正式发布。本书的编写团队由多位在嵌入式和实时
    的头像 发表于 09-03 08:06 571次阅读
    新书发布——《<b class='flag-5'>RT</b>-Thread嵌入式<b class='flag-5'>实时</b><b class='flag-5'>操作系统</b>内核、驱动和应用开发技术》

    简单认识RTOS实时操作系统

    RTOS(Real Time Operating System,实时操作系统)是一种专门设计用于在严格时间限制内处理任务的操作系统。它以其高实时
    的头像 发表于 08-20 11:20 2690次阅读

    实测14us,Linux-RT实时性能及开发案例分享—基于全志T507-H国产平台

    龙科技提供的案例用户手册进行操作,使用Cyclictest程序测试系统实时,得出如下测试结果。 图2 Linux-RT-4.9.170内核
    发表于 07-25 15:58

    3568F-翼辉SylixOS国产操作系统演示案例

    等。 SylixOS、RT-Linux、Xenomai系统实时和抖动官方对比数据如下图所示,详情请 查阅产品资料“4-软件资料SyliO
    发表于 07-25 15:52

    工业实时操作系统对比:鸿道Intewell跟rt-linux有啥区别

    Intewell和RT-Linux是两种不同的实时操作系统(RTOS),它们具有各自独特的特点和优势。以下是Intewell操作系统的一些关键特性,以及与
    的头像 发表于 07-03 10:00 518次阅读
    工业<b class='flag-5'>实时</b><b class='flag-5'>操作系统</b><b class='flag-5'>对比</b>:鸿道Intewell跟<b class='flag-5'>rt-linux</b>有啥区别

    基于全志T507-H的Linux-RT实时测试案例分享

    内核开源、免费、功能完善。 RT PREEMPT补丁,使Linux内核成为硬实时操作系统,无需完整的内核重写。 既有实时
    发表于 06-03 09:50

    实时操作系统RT-Thread及FreeRTOS

    RT-Thread与其他很多RTOS如FreeRTOS的主要区别之一是,它不仅仅是一个实时内核,还具备丰富的中间层组件,如下图所示。FreeRTOS和RT-Thread是两种常见的嵌入式实时
    的头像 发表于 05-29 08:10 3847次阅读
    <b class='flag-5'>实时</b><b class='flag-5'>操作系统</b>之<b class='flag-5'>RT</b>-Thread及FreeRTOS

    微内核实时操作系统的介绍

    微内核实时操作系统(Microkernel Real-Time Operating System, μRTOS)是一种专为实时设计的操作系统。它采用微内核架构,以提高
    的头像 发表于 05-11 17:13 495次阅读

    新书发布——《实时操作系统应用技术:RT-Thread与ARM编程实践》

    RT-Thread又一本新书《实时操作系统应用技术——基于RT-Thread与ARM的编程实践》发布,标志着RT-Thread生态和
    的头像 发表于 05-11 08:35 793次阅读
    新书发布——《<b class='flag-5'>实时</b><b class='flag-5'>操作系统</b>应用技术:<b class='flag-5'>RT</b>-Thread与ARM编程实践》

    实测14us,Linux-RT实时性能及开发案例分享—基于全志T507-H国产平台

    TLT507-EVM评估板),按照创龙科技提供的案例用户手册进行操作,使用Cyclictest程序测试系统实时,得出如下测试结果。 对比
    发表于 04-18 10:21

    带你认识实时操作系统(rtos)

    实时操作系统(RTOS)是为嵌入式系统实时应用提供一个稳定、可预测和高效运行环境的操作系统实时
    的头像 发表于 04-16 16:30 1247次阅读
    带你认识<b class='flag-5'>实时</b><b class='flag-5'>操作系统</b>(rtos)

    瑞萨正式加入Zephyr项目,携手共建开源实时操作系统新生态

    近日,业界领先的半导体解决方案提供商瑞萨宣布正式加入Zephyr®项目,并荣升为银级会员。Zephyr作为Linux基金会的开源项目,致力于面向未来、资源受限的设备打造安全、互联且灵活的实时
    的头像 发表于 03-12 09:18 673次阅读

    详解实时操作系统和非实时操作系统

    实时操作系统,当外界事件和数据产生时,系统能以足够快的速度予以处理,其处理结果能在规定的时间内控制生产结果或对系统做出响应,并控制所有实时
    的头像 发表于 12-26 09:54 4735次阅读
    详解<b class='flag-5'>实时</b><b class='flag-5'>操作系统</b>和非<b class='flag-5'>实时</b><b class='flag-5'>操作系统</b>