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

为什么说linux不是实时操作系统
看了一下实时操作系统的特点
1)多任务;
2)有线程优先级
3)多种中断级别

Linux都支持啊,而且2.6内核好像也支持抢占的,那么为什么说Linux就不是一个实时操作系统呢?希望高手能帮忙讲解一下。

------解决方案--------------------
这是现代操作系统的特点,而实时操作系统(Real-time operating system, RTOS)最大的特点是:对响应时间有严格的要求。
例如USA的宇宙飞船常用VxWorks,这才是闻名于世的RTOS。
------解决方案--------------------
linux的线程优先级是动态的,也就是即使高优先级线程还没有完成,底优先级的线程还是会得到一定的时间片。

linux有个RT Patch,严格限制了线程的优先级,可以提高实时性

https://rt.wiki.kernel.org/index.php/Main_Page

------解决方案--------------------
通用操作系统和实时操作系统的调度算法是不一样的,linux也针对这两种情况做了划分,但只能做到软实时(响应时间要求比较低)。

硬实时不光对操作系统有要求,对硬件都有要求,比如必须支持硬件高精度计时,否则“实时”就是空中楼阁。

Linux是通用操作系统,他的许多运行平台硬件非常差,从硬件层面就不可能实时

楼主找的资料可能有问题,你说的任何那些现代化操作系统都有,windows有、linux有、unix也有
------解决方案--------------------
2.6内核的抢占根本就不是为实时性而做的,而是为了桌面性能

2.4内核的内核模式不能抢占,当执行耗时的系统调用时,交互界面体验可能很差
------解决方案--------------------
探讨

多谢 jackyjkchen,找的资料不是很合适

没有高精度计时应该是主要的一个方面;然后你说的2.6内核的抢占是为了桌面性能我不是很理解,他可以为桌面的程序来做到抢占,那么对于我们自己跑的应用程序应该也可做到抢占吧!