版权声明:本文为本文为博主原创文章,转载请注明出处。如有问题,欢迎指正。博客地址:https://www.cnblogs.com/wsg1100/

(下面数据,仅供个人参考)

可能大部分人一直好奇VxWorks与xenomai对比,实时性孰优孰劣,正好笔者最近要做一个这方面的对比,本文以实时系统其中一个重要指标---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进行同样的测试,才更具对比价值。

【原创】xenomai与VxWorks实时性对比(Jitter对比)的更多相关文章

  1. 【原创】xenomai与VxWorks实时性对比(资源抢占上下文切换对比)

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

  2. 【原创】有利于提高xenomai 实时性的一些配置建议

    版权声明:本文为本文为博主原创文章,转载请注明出处.如有错误,欢迎指正. @ 目录 一.影响因素 1.硬件 2.BISO(X86平台) 3.软件 4. 缓存使用策略与GPU 二.优化措施 1. BIO ...

  3. 【原创】ARM平台内存和cache对xenomai实时性的影响

    目录 1. 问题概述 2. stress 内存压力原理 2. cache 因素 2.1 未加压 2.2 加压(cpu/io) 3. 内存管理因素 3.1 内存分配/释放 3.2 MMU拥塞 4 总结 ...

  4. 为树莓派添加一个强实时性前端[原创cnblogs.com/helesheng]

    树莓派是最近流行嵌入式平台,其自由的开源特性以及低廉的价格,吸引了来 自全球的大量极客和计算机大咖的关注.来自各大树莓派社区的幕后英雄,无私地在这个开源硬件平台上做了大量的工作,将其打造成了世界上通用 ...

  5. 【原创】xenomai内核解析--实时IPC概述

    版权声明:本文为本文为博主原创文章,转载请注明出处.如有问题,欢迎指正.博客地址:https://www.cnblogs.com/wsg1100/ 目录 1.概述 2.Real-time IPC 2. ...

  6. 【原创】xenomai内核解析--实时内存管理--xnheap

    目录 一. xenomai内存池管理 1.xnheap 2. xnpagemap 3. xnbucket 4. xnheap初始化 5. 内存块分配 5.1 小内存分配流程(<= 2*PAGE_ ...

  7. Linux 2.6 内核实时性分析 (完善中...)

      经过一个月的学习,目前对linux 下驱动程序的编写有了入门的认识,现在需要着手实践,编写相关的驱动程序. 因为飞控系统对实时性有一定的要求,所以先打算学习linux 2.6 内核的实时性与任务调 ...

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

    1. 概述 选择一个合适的嵌入式操作系统,可以考虑以下几个因素:  第一是应用.如果你想开发的嵌入式设备是一个和网络应用密切相关或者就是一个网络设备,那么你应该选择用嵌入式Linux或者uCLinux ...

  9. vxworks 实时操作系统

    VxWorks 是美国 Wind River System 公司( 以下简称风河公司 ,即 WRS 公司)推出的一个实时操作系统.Tornado 是WRS 公司推出的一套实时操作系统开发环境,类似Mi ...

随机推荐

  1. 央行数字货币(CBDCs)的互操作性至关重要

    CBDCs(央行数字货币)将在我们的有生之年产生重大的金融转变.然而,除非这些工具吸取了法定货币的教训,否则创新将毫无意义.互操作性一直是影响CBDC采用和功能的最重要障碍之一.因此,各国央行在这一理 ...

  2. git clone下载速度很慢的解决方法

    一直用git clone从github上下载源码学习,但是有时候git clone速度好慢,只有几Kb的速度,按这个速度下载安卓源码的话估计要下一年. 然后我再网上找各种教程,试过通过vps下载git ...

  3. 基层教师 - CMD命令之net命令与IPC连接

    1)建立空连接: net use \\IP\ipc$ "" /user:"" (一定要注意:这一行命令中包含了3个空格) 2)建立非空连接: net use \ ...

  4. three.js 几何体(二)

    上一篇简单的介绍了几何体的构造体参数,这一篇郭先生就更加详细的说一说(十分简单的几何体我就不说了). 1. ShapeGeometry形状几何体 形状几何体方便我们从一个或多个路径形状中创建一个单面多 ...

  5. 02 flask源码剖析之flask快速使用

    02 flask快速使用 目录 02 flask快速使用 1.flask与django的区别 2. 安装 3. 依赖wsgi Werkzeug 4. 快速使用flask 5. 用户登录&用户管 ...

  6. 数据可视化之PowerQuery篇(十五)如何使用Power BI计算新客户数量?

    https://zhuanlan.zhihu.com/p/65119988 每个企业的经营活动都是围绕着客户而开展的,在服务好老客户的同时,不断开拓新客户是每个企业的经营目标之一. 开拓新客户必然要付 ...

  7. bzoj2843极地旅行社

    bzoj2843极地旅行社 题意: 一些点,每个点有一个权值.有三种操作:点与点连边,单点修改权值,求两点之间路径上点的权值和(需要判输入是否合法) 题解: 以前一直想不通为什么神犇们的模板中LCT在 ...

  8. Oracle RMAN 异机恢复一例

    背景介绍:本例需求是将NBU备份的oracle数据库恢复到另一主机上. NBU环境配置.异机上的Oracle软件安装配置忽略,下面只介绍OracleDB恢复的过程. ----------------- ...

  9. scrapyd+gerapy的项目部署

    scrapyd+gerapy的项目部署: 简单学习,后续跟进完善 声明: 1)仅作为个人学习,如有冒犯,告知速删! 2)不想误导,如有错误,不吝指教! 环境配置: scrapyd下载: pip ins ...

  10. Nginx使用SSL模块配置https

    背景 开发微信小程序,需要https域名,因此使用Nginx的SSL模块配置https 步骤 一.去域名管理商(如腾讯云.阿里云等)申请CA证书 二.在Nginx中配置,一般情况下域名管理商会提供配置 ...