日期:2014-05-16  浏览次数:20613 次

linux 2.6 内核算不算实时?
2.4及以前的内核都是   near-real-time
现在2.6内核的进程调度号称是O(1),那么这个算不算硬实时呢?或者是不是完全满足了软实时,离硬实时还有一点距离呢?那么距离又在那里?
现在的uclinux使用   2.6的内核,算不算满足了硬实时,是不是意味着以后在嵌入式方面会有更大的发展呢?目前市场上商用的uclinux的实时产品好像比较少啊,都被vxworks,psos,greenhills等占了。。。

谢谢指点,希望大家踊跃讨论,一起解解疑惑。

------解决方案--------------------
不, 一个实时的OS, 进程切换应该是用irq来引发的, 不应该用timer

from Peter (www.kingofcoder.com编程王网站站长)
------解决方案--------------------
实时分为硬实时和软实时,楼上说的是硬实时
我们说的实时操作系统是指软实时,uc/os算是软实时,itron也算

linux不算,只是2.6比2.4实时性有所改进
------解决方案--------------------
不是,

实时os要可以抢占,
------解决方案--------------------
Linux是开源的,实时不实时,硬实时与软实时完全可以定制的吧,像RT-Linux就是硬实时,
Montavista linux就是软实时。你也可以修改linux的调度算法来满足不同的应用。
------解决方案--------------------
从总体上和从实时的实际表现来说linux不是实时操作系统
实时系统要求(所谓的硬实时):任何IO请求必须在规定的时间内响应,并且完成,这个时间很短,一般是指软件保存现场同时执行IO操作和硬件传递电子信号的必须时间。如果系统不能保证这种对事务的响应速度要求,那它一定不是实时系统。对于linux的i386体系内核,很明显,无论你怎么配置内核都不可能使它办到:无论有多少进程同时运行,都能立刻响应你的请求。linux内核的调度算法是带有优先级的最佳响应比调度算法,当响应比降低时就由长时等待的进程运行,这种动态调度策略使得linux从总体上说不是实时操作系统。

虽然linux中允许某些进程具有静态的优先级,施行实时调度,但如果这种进程很多时,linux谁都要照顾到,那又失去了实时性。最后它还不能说是实时OS.

软实时是指:允许偶尔超过硬实时的响应要求。显然linux也不是偶尔。
------解决方案--------------------
linux在实时方面最大的困难是处理中断嵌套, 目前似乎没有任何解决方案.
------解决方案--------------------
没有IRQ,如果用信号来实现,线程经常无法及时捕捉到信号提供的数据的实时性变化情况