我很早以前就从事VxWorks 5.5的工作,这是在世界上最好的实时OS上工作的最佳体验。从那时起,我再也没有机会再做一次。但是,一个问题不断涌向我,是什么使得如此快速和确定性的呢?
我无法通过Google找到很多有关此问题的引用。
因此,我只是想着是什么使常规操作系统变得不确定:
请根据需要更正我的理解。
最佳答案
我相信以下内容可以解释很多差异:
没有分页/交换
确定性RTOS只是不能将内存页面交换到磁盘。这将破坏确定性,因为在任何时候您都可能需要换入或换出内存。
vxWorks要求您的应用程序完全适合RAM
无进程
在vxWorks 5.5中,有任务,但是没有Windows或Linux之类的过程。这些任务更类似于线程,并且切换上下文是相对便宜的操作。在Linux/Windows中,切换过程非常昂贵。
请注意,在vxWorks 6.x中引入了过程模型,该过程模型增加了一些开销,但主要与从用户模式转换为Supervisor模式有关。新模型不一定会直接影响任务切换时间。
固定优先级
在vxWorks中,任务优先级由开发人员设置并且在系统范围内。在任何给定时间,最高优先级的任务将是正在运行的任务。因此,您可以设计系统以确保截止日期最短的任务总是先于其他任务执行。
一般来说,在Linux/Windows中,尽管您可以控制进程的优先级,但调度程序最终将允许低优先级的进程运行,即使高优先级的进程仍处于事件状态。
关于performance - 是什么使VxWorks如此确定性和快速性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8800371/