如今,高性能处理器和通用操作系统实时升级的速度,似乎再次引发了嵌入式系统是否仍需要RTOS的讨论。
答案没有改变:在相对低端的处理器上只有真正的RTOS能提供一些保障,也就意味着,这些OS可以留在嵌入式环境中。
■ 究竟何时需要实时操作系统?
大多数嵌入式项目是否仍需要实时操作系统?考虑到当今高性能处理器的速度以及适用于Linux,Windows和其他通用操作系统(GPOS)的实时补丁的可用性,这是一个很好的问题。
答案在于嵌入式设备的本质。这些设备通常以数千,甚至数百万桃这种规模下生产,即使每套硬件成本降低1美元,也能为制造商节省一笔小财富。换言之,这些设备无法负担数百万赫兹处理器的成本(更不用说散热了)。
例如,在汽车远程信息处理市场,典型的32位处理器的运行频率约为600Mhz,远低于台式机和服务器中常见的处理器。在这样的环境中,设计用于从低端硬件中提取极其快速、可预测的响应时间的实时操作系统有巨大的经济优势。
除了节省成本外,实时操作系统提供的服务使许多计算问题更容易解决,特别是当多个活动竞争一个系统的资源时。例如,考虑一个用户期望(或需要)立即响应输入的系统。使用实时操作系统,开发人员可以保证由用户发起的操作将优先于其他系统活动执行,除非必须首先执行更重要的活动(例如,有助于保护用户安全的操作)。
还要考虑一个必须满足服务质量(QoS)要求的系统,例如显示实时视频的设备。如果设备的内容交付的任何部分都依赖于软件,那么它会以用户认为不可接受的速度体验掉帧,设备是不可靠的。然而,通过实时操作系统,开发人员可以精确地控制软件进程的执行顺序,并确保以适当和一致的速率进行回放。
■ 实时操作系统不公平
在嵌入式行业中,对实时“硬”时间的需求仍然很普遍。问题是:实时操作系统有什么是GPOS没有的?而且,对于某些GPOS来说,现在的实时扩展有多有用?他们能提供一个合理的实时操作系统性能吗?
让我们从任务调度开始。在GPOS中,调度程序通常使用“公平”策略将线程和进程分派到CPU。这样的策略可以实现桌面和服务器应用程序所需的高整体吞吐量,但不能保证高优先级、时间紧迫的线程优先于低优先级的线程执行。
例如,GPOS可能会降低分配给高优先级线程的优先级,或者为了保证系统中其他线程的公平性而动态调整线程的优先级。因此,高优先级线程可能被低优先级线程抢占。此外大多数GPOS具有无界的调度延迟:系统中的线程越多,GPOS调度一个执行线程所需的时间就越长,这些因素中的任何一个都可能导致高优先级线程错过最后期限,即使是在高速CPU上。
此外,高优先级线程可以不间断地运行,直到它完成它需要做的事情,当然,除非它被一个更高优先级的线程抢占。这种方法被称为基于优先级的抢占式调度,允许高优先级线程满足其最后期限,即使许多其他线程正在争夺CPU时间。 |