关于嵌入式实时操作系统的实时性

嵌入式实时操作系统RTOS里实时的衡量指标到底是什么呢?1s肯定达不到实时,那需要多快呢?100ms,10ms,1ms,还是100us,10us?

还有这些指标是如何测量的呢?

一个关于1553B总线消息周期实时性指标的例子

一篇论文中关于1553B总线消息周期实时性的指标,从这个例子中可以看出,对于windows这种非实时操作系统而言,10ms的精度也很难保证。因此,实时性指标要求任务需要至少满足10ms的指标,甚至更高。

韩春慧,王煜,黄书华,许权,张珅,鲁月林. 基于BM3803的1553B总线通信软件设计 [J]. 中国空间科学技术, 2019,39(234), 05 65-72.

论文中需要完成的1553总线测试终端的消息的周期数值偏差较为严格,

对于任务1广播时间码,周期为1s,周期偏差不能超过100us,

对于任务7系统同步,周期为2s,周期偏差不能超过10 000us=10ms,如下图所示。

关于嵌入式实时操作系统的实时性_第1张图片

如果使用传统的windows+1553B-PCI板卡方案的话,不能保证以上的精度;所以,论文使用了嵌入式实时操作系统的方案,BM3803+uCOS+61580,该系统可以满足上图的精度。

下表为实际测试结果,对于任务1,采用嵌入式实时操作系统方案,周期精确度偏差平均为8us,而采用windows方案则高达13ms,超过了100us=0.1ms的精度要求。

其它任务的周期精度要求均为10ms以内,对于嵌入式实时操作系统方案,周期精度平均1.5ms,而windows则为15ms,超过了精度要求。

关于嵌入式实时操作系统的实时性_第2张图片

论文

链接:https://pan.baidu.com/s/15P6VCZqdieAlSH9Mq8anmg
提取码:o1vq

关于实时性都有哪些指标

expresslogic有一个文档Measuring RTOS Real-Time Performance,其中描述了实时性的各种指标,最后,介绍了其RTOS实时性测量软件。

https://rtos.com/wp-content/uploads/2017/10/EL_Measuring_RTOS_Real-Time_Performance.pdf

主要分为两部分,

一是中断处理实时性,主要包括以下步骤:

(1)中断当前正在执行的任务,

(2)保存当前任务上下文,

(3)开始执行中断服务程序ISR,

(4)ISR中进行一些处理,以确定需要采取的动作,

(5)保存一些中断相关的关键数据,

(6)设置一些必须的输出,

(7)确定该执行哪个任务(一般中断到来之后,需要的处理会比较多,一般中断中会处理必须的事情,剩下的处理由某个任务来处理)

(8)清除中断状态寄存器,

(9)将控制转移到要执行的任务。

二是系统服务实时性,包括

(1)在某个事件发生时调度一个任务执行,

(2)任务之间传递消息(消息队列),

(3)申明公共资源三方面(信号量等)。

 

TNKernel-RX/Thread-Metric/,某个操作系统使用了Thread Metric

源代码:https://github.com/msalau/TNKernel-RX/tree/master/Thread-Metric

pdf链接:https://pan.baidu.com/s/1pJH2azMJb8QNmYZwXUQpFA
提取码:t421

 

你可能感兴趣的:(关于嵌入式实时操作系统的实时性)