xenomai与VxWorks实时性对比(Jitter对比)

简介: 本文对比了VxWorks和xenomai的实时性,聚焦于Jitter这一关键指标。在特定的硬件环境下(双核Cortex-A15,2GB内存),VxWorks和xenomai的读取时间戳耗时分别为0.249和0.163微秒。在时钟中断Jitter方面,VxWorks各项测试平均值约为4.066微秒,而xenomai在空载和加载情况下的平均值分别为0.516和0.768微秒。任务Jitter上,VxWorks和xenomai内核态任务的平均Jitter接近,但xenomai用户态任务Jitter较高。

版权声明:本文为本文为博主原创文章,转载请注明出处。如有问题,欢迎指正。博客地址:https://www.cnblogs.com/wsg1100/
(下面数据,仅供个人参考)

可能大部分人一直好奇VxWorks与xenomai对比,实时性孰优孰劣,正好笔者最近要做一个这方面的对比,本文以实时系统其中一个重要指标---Jitter来进行简单对比。
jitter

一、环境

简单介绍一下环境:

硬件平台:双核cortex-A15处理器,CPU频率1.5GHZ,内存2GB。

xenomai:Linux-4.19+xenomai 3.1,具体配置:略;

VxWorks:VxWorks 7,具体配置:略;

==注:由于VxWorks benchmark测试包含很多测试项,以下数据为其中包含的几项,每项测试2万次,整个benchmark才跑了两个多小时。xenomai则是每项跑了2小时,周期100us,这样差不多7200万次;==

VxWorks读取时间戳耗时:

VxWorks avg min max
bmTimestampRead 0.249 0.162 0.487

xenomai读取时间戳耗时:
| Xenomai| avg | min | max |
| -------------------- | ----- | ----- | ------ |
|bmTimestampRead | 0.163| 0.162| 0.325|

二、时钟中断Jitter对比

1. VxWorks

avg min max
bmIntJitterNoLoad 4.066 0.000 13.338
bmIntJitterSemLoad 4.066 0.000 13.338
bmIntJitterMqLoad 4.066 0.000 13.663
bmIntJitterDelayLoad 4.066 0.000 13.501

bmIntJitterNoLoad空载,无任何压力。

bmIntJitterSemLoadsemaphore压力,两个同等优先级任务对同一semaphore进行PV操作。

bmIntJitterMqLoad message queue压力,两个同等优先级任务使用两个msgq相互发送接收1byte数据操作。

2.xenomai

测试时间2小时,定时周期100us,次数:7200万次。单位us。(xenomai测试没有VxWorks那么全面,后续添加相应压力测试补充。。。)

avg min max
NoLoad 0.516 0.287 6.198
Load 0.768 0.325 6.859

NoLoad 空载测试,linux普通启动后状态。

Load linux加压,stress -c 10 -m 4,xenomai内核没有压力。

三、任务Jitter对比

1. VxWorks

avg min max
bmTaskJitterNoLoad 4.066 0.000 15.290
bmTaskJitterSemLoad 4.066 0.000 15.778
bmTaskJitterMqLoad 4.066 0.000 15.778
bmTaskJitterDelayLoad 4.066 0.000 15.290

2.xenomai内核态任务Jitter

测试时间2小时,定时周期100us,任务优先级99,单位us。

avg min max
LinuxLoad 0.643 -0.282 10.519

LinuxLoad linux加压,stress -c 10 -m 4,xenomai内核没有压力。

为什么会存在负值?负值表示xenomai内核提前一点点将任务唤醒了。这与xenomai内核的定时处理机制有关,这是可以调整的,可关注本博客后续的xenomai内核解析。

具体数据分布如下:

0 1
0.25 37403654
0.75 5725957
1.25 5300392
1.75 3143282
2.25 2329224
2.75 1360290
3.25 511552
3.75 135384
4.25 37234
4.75 42208
5.25 18950
5.75 4495
6.25 532
6.75 295
7.25 172
7.75 43
8.25 13
8.75 6
9.25 1
9.75 3
10.25 1
10.75 2
11 1

3.xenomai用户态任务Jitter

测试时间2小时,定时周期100us,任务优先级99,单位us。

avg min max
Load 3.605 0.422 13.328

具体数据分布如下:

0 1
0.25 2
0.75 44
1.25 137
1.75 1540
2.25 13471
2.75 1943224
3.25 38106382
3.75 19789463
4.25 6749386
4.75 2940300
5.25 1812680
5.75 549134
6.25 47176
6.75 18063
7.25 16545
7.75 9921
8.25 1391
8.75 389
9.25 132
9.75 97
10.25 104
10.75 46
11.25 18
11.75 21
12.25 6
12.75 4
13.25 2
13.5 1
avg min max
bmTaskJitterNoLoad -0.249 1.637 13.199
bmTaskJitterSemLoad -0.788 1.489 12.087
bmTaskJitterMqLoad -0.241 1.790 12.683
bmTaskJitterDelayLoad -0.211 1.243 12.523

VxWorks毕竟是商业软件,任务及系统的每一个阶段都能详细统计耗时。
xenomai由于其双核的结构,在linux加压还是在xenomai加压都是应该思考的问题。

总的来说,对比VxWorks,xenomai压力太简单,并没有对实时核加压,根据VxWorks测试套件的具体测试方式,来对xenomai进行同样的测试,才更具对比价值。

目录
相关文章
|
存储 缓存 C语言
TCM、ITCM、DTCM
TCM、ITCM、DTCM
2731 0
|
Ubuntu Docker 容器
如何在Ubuntu上安装Docker?
【2月更文挑战第10天】
1404 0
|
6月前
|
机器学习/深度学习 编解码 自然语言处理
智能体如何“看懂”界面,精准找到“人想要”的对应地方
本文详解智能体如何像人类一样“看懂”GUI界面,突破传统自动化局限。通过视觉感知、语义对齐、GUI定位与记忆适配四大能力,实现从指令理解到精准操作的全链路意图驱动交互,赋能企业级复杂系统自动化。
467 8
|
资源调度 监控 物联网
《深入探秘:分布式软总线自发现、自组网技术原理》
分布式软总线是实现设备高效互联的关键技术,其自发现与自组网功能为多设备协同奠定了基础。通过融合Wi-Fi、蓝牙、NFC等通信技术,设计针对性发现协议,并采用统一接口封装,简化开发复杂度。自组网技术解决异构网络互联互通问题,支持混合拓扑结构,优化通信资源调度,引入软时钟确保时间同步。这些特性使分布式软总线成为构建万物互联智能时代的核心支撑,推动智能家居、智能办公等领域创新发展,提升生活与工作效率。
866 8
|
安全 Unix Linux
VMware Workstation 17.6.3 发布下载,现在完全免费无论个人还是商业用途
VMware Workstation 17.6.3 发布下载,现在完全免费无论个人还是商业用途
159821 65
|
缓存 算法 Linux
xenomai /PREEMPT-RT 实时性优化指南
xenomai /PREEMPT-RT 实时性优化指南
1802 0
xenomai /PREEMPT-RT 实时性优化指南
|
人工智能 TensorFlow 算法框架/工具
《探索AI与鸿蒙融合的开源宝藏:这些框架你不能错过》
人工智能(AI)与鸿蒙系统的集成开发正引领技术创新潮流,为用户带来更智能、流畅的体验。华为HiAI作为鸿蒙AI生态的核心引擎,提供计算机视觉、语音识别等多领域支持,实现设备间协同共享;TensorFlow Lite for Microcontrollers专为资源受限的物联网设备优化,助力轻量级AI模型运行;MindSpore Lite适合移动和边缘设备,具备高效推理性能;OpenCV for HarmonyOS则在计算机视觉领域大放异彩,赋能图像处理和视频分析。这些开源框架各具优势,为开发者提供了强大工具,推动AI与鸿蒙生态繁荣发展。
686 13
|
消息中间件 测试技术 Linux
linux实时操作系统xenomai x86平台基准测试(benchmark)
本文是关于Xenomai实时操作系统的基准测试,旨在评估其在低端x86平台上的性能。测试模仿了VxWorks的方法,关注CPU结构、指令集等因素对系统服务耗时的影响。测试项目包括信号量、互斥量、消息队列、任务切换等,通过比较操作前后的时戳来测量耗时,并排除中断和上下文切换的干扰。测试结果显示了各项操作的最小、平均和最大耗时,为程序优化提供参考。注意,所有数据基于特定硬件环境,测试用例使用Alchemy API编写。
1676 0
linux实时操作系统xenomai x86平台基准测试(benchmark)
|
Linux 测试技术 API
xenomai内核解析之xenomai初探
本文是关于Xenomai实时操作系统的初探,Xenomai是一个实时性增强的Linux系统,它通过实时内核和用户空间库提供硬实时性能。Xenomai 3主要由实时内核Cobalt、实时驱动模型RTDM、用户空间库libcobalt等组成,支持两种构建实时系统的方式:Cobalt和Mercury。Cobalt在内核空间与标准Linux内核并存,通过I-Pipe处理中断,确保实时任务的执行。Mercury则是通过修改Linux内核实现。
2351 0
xenomai内核解析之xenomai初探

热门文章

最新文章