您何时需要实时操作系统?
间。实时操作系统厂商不能不重视这点。所以对POSIX API(Linux以及各种类Unix系统使用的相同的API)的支持就是重要的第一步。因此要提供文档清晰的源代码和定制工具使得能够满足嵌入式开发人员的需求和设计挑战。
实时操作系统的架构也发挥了重要作用。例如,与使用其他系统架构相比,基于微内核设计的实时操作系统能从根本上简化操作系统的定制过程。在微内核实时操作系统中,只有少数核心基本对象(如信号、计时器、调度程序)才会存在于内核中。所有其他组件——设备驱动程序、文件系统、协议栈、用户应用程序,都会作为单独、内存受保护的进程在内核外部运行(参见图 5)。因此,开发定制的驱动程序和应用程序特定的操作系统扩展组件不需要专门的内核调试工具或内核专家。实际上,作为用户空间程序,开发这种操作系统扩展组件和开发标准应用程序一样容易,因为开发人员都能使用标准、源代码级工具和技术对它们进行调试。
例如,如果设备驱动程序试图访问其进程空间之外的内存,操作系统就能识别相关进程,指出故障位置并创建可使用源代码级调试工具查看的进程转储文件。转储文件可包括调试程序确定导致故障的源代码行所需的所有信息以及诊断信息(如数据项的内容和函数调用的历史)。
这种架构还提供了绝佳的故障隔离和恢复功能:如果驱动程序、协议栈或其他系统服务出现故障,它可在不影响其他服务或或损坏操作系统内核的情况下完成这种操作。实际上,“软件监视程序”会持续监测此类事件,并能以动态方式重启出现故障的服务,无需重启整个系统或以任何方式干扰用户。同样,驱动程序和其他服务都能以动态方式停止、启动或升级,无需关闭系统。
![](../img/eep/emb/emb-34742kitowlrfocn.jpg)
图 5. 在微内核实时操作系统中,系统服务作为标准的用户空间进程运行,
因而简化了操作系统的定制任务。
绝不可小看这些优势——因为破坏实时性能的最大威胁就是不定期的系统重启!甚至软件更新中包含的以可控制的方式进行的预定重启都会干扰系统运行。为保证一直满足最后期限的要求,软件开发人员必须使用即使在出现软件故障或进行服务升级时,也能保持连续可用的操作系统。
战略决策
实时操作系统能使复杂的应用程序变得可预测而且可靠;实际上,实时操作系统实现的精确时间控制,就是通用操作系统无法提供的可靠功能。(如果基于通用操作系统的系统由于计时错误而无法正常运行,我们可以合理认为该系统不可靠。)选择正确的实时操作系统本身仍然是一项复杂的任务。实时操作系统的底层架构是重要标准,而其他因素也不例外。具体包括:
- 调度算法的灵活选择——实时操作系统支持调度算法选择(先入先出 [FIFO] 调度、循环调度、偶发调度等)吗?开发人员能根据每个线程分配这些算法吗?或者实时操作系统要求他针对系统中的所有线程分配一种算法吗?
- 时间分区——实时操作系统支持能为进程提供有保证的 CPU 周期预算的时间分区吗?这种保证简化了对多个开发团队或供应商的子系统进行集成的工作。它们还能确保关键任务在系统遭到拒绝服务 (DoS) 攻击和其他恶意攻击时,保持可用并满足其最后期限的要求。
- 支持多核处理器——向多核处理器迁移的功能已成为各种高性能设计的基本要求。实时操作系统是否支持多重处理模式(对称多重处理、不对称多重处理、混合多重处理)的选择,并帮助开发人员最大限度地利用多核硬件?允许开发人员诊断和优化多核系统性能的系统跟踪工具支持实时操作系统吗?如果没有能显示资源竞争、线程的过度迁移和其他多核设计常见问题的工具,那么对多核系统进行优化就会变得异常麻烦和费时。
- 远程诊断工具——由于许多嵌入式系统都不允许有故障时间,因此实时操作系统的供应商应提供能在不中断系统服务的情况下分析系统运行的诊断工具。寻找能提供运行分析工具(用于系统剖析、应用程序剖析和内存分析的)的供应商。
- 开放的开发平台——实时操作系统供应商能否提供基于开放平台(如 Eclipse)的开发环境,允许开发人员“插入”他们最喜欢的第三方工具以便进行建模、版本控制等工作?或者,开发环境是基于专有技术的吗?
- 图形用户界面——实时操作系统使用基元图形库吗?或者它提供了高级图形处理功能(如多层界面、基于 Flash 的人机界面、多目标显示、3D 加速渲染和真正的窗口系统)吗?开发人员能轻松地自定义图形用户界面的视觉效果吗?图形用户界面能同时显示和输入多种语言(中文、朝鲜语、日语、英语、俄语等
- 构建面向未来的灵活信息娱乐系统(12-20)
- QNX 发布安全关键型系统的认证支持包(09-12)
- QNX软件系统有限公司发布完整的无线架构软件解决方(09-12)
- QNX为安全可靠的嵌入式系统提供移动级用户体验(09-12)
- Flying-Cam无人航拍系统采用QNX技术(09-12)
- QNX CAR 2应用平台可快速构建车载娱乐信息系统(10-24)