xenomai与VxWorks实时性对比(Jitter对比)
2020-06-07 10:54
162 查看
版权声明:本文为本文为博主原创文章,转载请注明出处。如有问题,欢迎指正。博客地址:https://www.cnblogs.com/wsg1100/
(下面数据,仅供个人参考)
可能大部分人一直好奇VxWorks与xenomai对比,实时性孰优孰劣,正好笔者最近要做一个这方面的对比,本文以实时系统其中一个重要指标---Jitter来进行简单对比。
一、环境
简单介绍一下环境:
硬件平台:双核cortex-A15处理器,CPU频率1.5GHZ,内存2GB。
xenomai:Linux-4.19+xenomai 3.1,具体配置:略;
VxWorks:VxWorks 7,具体配置:略;
二、时钟中断Jitter对比
1. VxWorks
测试时间2小时,单位us。
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操作。
bmIntJitterMqLoadmessage queue压力,两个同等优先级任务使用两个msgq相互发送接收1byte数据操作。
2.xenomai
测试时间2小时,定时周期100us,单位us。(xenomai测试没有VxWorks那么全面,后续添加相应压力测试补充。。。)
avg | min | max | |
---|---|---|---|
NoLoad | 0.516 | 0.287 | 6.198 |
Load | 0.768 | 0.325 | 6.859 |
NoLoad空载测试,linux普通启动后状态。
Loadlinux加压,
stress -c 10 -m 4,xenomai内核没有压力。
三、任务Jitter对比
1. VxWorks
测试时间2小时,单位us。
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 | |
---|---|---|---|
Load | 0.643 | -0.282 | 10.519 |
Loadlinux加压,
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
VxWorks毕竟是商业软件,任务及系统的每一个阶段都能详细统计耗时。
xenomai由于其双核的结构,在linux加压还是在xenomai加压都是应该思考的问题。
总的来说,对比VxWorks,xenomai压力太简单,并没有对实时核加压,根据VxWorks测试套件的具体测试方式,来对xenomai进行同样的测试,才更具对比价值。
相关文章推荐
- VxWorks Ucos-II 实时性对比问题
- Wince与Linux的实时性对比与分析(摘自电子发烧友网)
- Linux与VxWorks主要区别(六):实时性
- 第一章:嵌入式系统、实时性与VxWorks
- 请问什么机制导致vxworks比linux的实时性要强
- VxWorks、μClinux、μC/OS-II和eCos实时操作系统大对比
- 4 种实时操作系统实时性的分析对比 --转 time too important
- 4 种实时操作系统实时性的分析对比 --转 time too important
- linux和vxworks的实时性
- VxWorks、μClinux、μC/OS-II和eCos实时操作系统大对比
- 个人整理的Linux Shell语法速查表(用C语言语法来作对比)
- 对比C++理解Java函数传参数的方式
- IO测试工具 iometer 和pdtest的对比
- Elastic Search 的分布式特点(和MongoDB对比)
- 【Java基础】HashMap的四种遍历以及耗时对比
- 融跃财经:CFA VS高考,能不能相对比
- List.Contains实现对比
- mongodb与mysql命令对比
- Java中的ReentrantLock和synchronized两种锁定机制的对比