[Raw-OS] 关于raw os 的强实时性

jorya_txj   2013-1-28 14:58 楼主

rawos 由于采用了特殊的系统处理方式,可以把系统最大关中断时间降到0us.

影响一个系统实时性最客观的参数是其系统的最大关中断时间。


在2440 板子上空跑一个实时操作系统的话,vxworks 的官方系统最大关中断时间为6us 以上, ucos 的话可以达到20us以上。但是raw os 是0.8us.

所以其实时性毫无疑问是超越这些系统的。


中断的处理对于实时性的提高也是很重要的一个手段。raw os 提供了中断下半部的手段,来处理中断。


所谓中断下半部意思是,中断的处理可以分成两部分:

上半部分中断是关闭的,主要处理是从硬件部分接收数据,然后触发中断下半部。

中断下半部主要是负责数据处理,这部分可能会占用比较长的时间,所以中断需要打开。


rawos 的中断下半部有raw_task_0 类似于linux 的software irq 或者tasklet, raw_task_0 是中端下半部里面优先级最高的,一出中断马上会被执行,所以里面可以放优先级高的中断处理函数,唯一需要注意的是, raw_task_0 的中断下半部处理是不能睡眠的,这个和linux 的software irq, 以及tasklet 原理是完全一致的。


rawos 的中断下半部处理还有workqueue, 类似于linux 的workqueue, workqueue是具有自己的优先级的,用户可以自定义优先级用来实现有优先级的中断下半部分处理。Workqueue 的一大优势是,下半部分处理允许睡眠。


综上所述,raw os把实时性发挥到淋漓尽致的状态,系统的0us 最大关中断时间,配合不同策略的中断下半部处理,使得用户的产品的实时性得到根本的保障。

回复评论 (5)

vxworks 的官方系统最大关中断时间为6us 以上, ucos 的话可以达到20us以上。但是raw os 是0.8us.

差距有这么大
点赞  2013-1-28 16:58
所谓后来者居上,正是此意。^_^
点赞  2013-1-28 18:00

回复 沙发 lr2131 的帖子

我觉得你这样说也有点扯淡。看过ucos程序没??   中断时间可以缩短,但绝不是像你说的终端分为上下半部分的原因,而且关键的中断可是不能放到下半部分的,因为下半部分有延时,更加会影响中断处理的时间。
点赞  2013-2-4 15:25
如果有不同的意见,可以进行讨论,楼上的请不要进行不文明的攻击
点赞  2013-2-9 17:36
扯淡不扯淡,需要同是操作系统的作者来衡量。
点赞  2013-2-12 22:34
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复