路由器vxworks和linux哪个好,怎样评价linux和vxworks的实时性

原标题:怎样评价linux和vxworks的实时性

硬实时与软实时之间最关键的差别在于,软实时只能提供统计意义上的实时。

SYS_CLK_RATE是1000,那么就是1ms。。如果是60那么就大约是16.67ms。。。【我们的设备就是60】通常来讲,vxWorks手册建议不要将时钟率设得太高,否则它就由硬实时变得趋向于软实时了。。因为过高的时钟率使得内核调度频繁进入,可能导致一些低优先级的硬件中断不能得到及时响应。

首先看一下的实时性的发展。

linux2.4的时候,用户空间可以被抢占,内核空间不能被抢占,因此实时性很差。

到2.6以后,内核中多了一个CONFIG_PREEMPT的配置。它使得大部分的内核代码可以被抢占,而spinlock保护的代码和中断处理函数不能被高优先级的内核线程抢占。这样实时性有了一定的提高,可以达到几个毫秒量级。

在主流之外,由Ingo Molnar和Thomas Gleixner维护的patch:CONFIG_PREEMPT_RT进一步提高了linux的实时性,达到了<100us的程度。它所做的修改是:

1,重新实现了rtmutex,使得spinlock可以被抢占,使被spinlock保护的代码可以被抢占。

2,把中断处理函数线程化。

3,对spinlock和semaphore实现了优先级继承。

4,使用了高精度的时钟。

因此,内核成为full preemptible

而上面这些在vxWorks中都早已实现,其系统本身开销小,进程调度、通信和中断处理等系统公用程序精炼有效,延迟很短。

任务调度策略以可抢占式调用为基础,辅以实践轮转机制,使得vxworks能够及时响应高优先级的任务。

另外,

1,不考虑RTP, vxWorks不支持用户态任务。因此上下文切换时间较小。

2,linux的某些函数没有确定的最大执行时间。如内存分配函数。VxWorks当然不能有这种函数。

3,驱动要精心设计,不能随意关中断。

4,某些协议栈,如PCI和usb,在linux上没有对实时性进行优化过。而VXWorks作为老牌的rtos,所做的任何修改都会考虑到实时性。

特别推荐

特别推荐

责任编辑:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值