什么是RTOS?
实时操作系统(RTOS)必须可靠;它必须快速响应,管理有限的资源并安排任务以使其按时完成,并确保功能隔离且不受其他功能的干扰。在本节中,您将了解更多关于什么是实时操作系统以及单片和微内核两种类型的RTOS架构的优缺点。
RTOS定义
操作系统的主要职责是管理系统中的硬件资源和活动:调度应用程序、将文件写入磁盘、通过网络发送数据等。当操作系统必须同时处理多个事件并确保系统在可预测的时间限制内响应这些事件时,它被称为实时操作系统(RTOS)。
为什么选择嵌入式系统的RTOS?
许多嵌入式系统需要实时行为,由于硬件资源限制,性能和效率是重中之重。RTOS提供严格的资源管理和调度,以满足应用程序的需求,包括多任务、优先级驱动的抢占式调度和快速上下文切换——所有这些都是嵌入式实时系统的基本特征。
RTOS通常占用空间小,并针对性能进行了优化。然而,每个RTOS都必须根据其支持的硬件和系统所需的功能进行定制。从管理少量任务的基本内核配置到管理数百个任务和子系统(包括图形、网络、文件系统、音频等)的全功能RTOS,RTOS应该灵活扩展以满足系统需求和资源。
RTOS架构
RTOS架构影响嵌入式系统的可靠性及其从故障中恢复的能力。有两种RTOS架构:宏内核和微内核。
什么是宏内核RTOS?
单片意味着“一块巨大的石头”。根据定义,单片内核运行内核空间中的所有操作系统组件。例如,单片RTOS包括设备驱动程序、文件管理、网络和作为内核空间一部分的图形堆栈。然而,应用程序在用户空间中运行。尽管将用户应用程序作为内存保护进程运行可以保护单片内核免受错误用户代码的侵害,但文件系统、协议栈或驱动程序中的单个编程错误可能会使系统崩溃。此外,对驱动程序或系统文件的任何更改都需要修改和重新编译操作系统。
宏内核RTOS(例如RTLinux)的优缺点
什么是微内核RTOS?
微内核RTOS由一个提供最少服务的小内核构成。微内核与一组在内核空间(用户空间)之外运行的可选协作进程一起工作,这提供了更高级别的操作系统功能。微内核本身缺乏文件系统和操作系统通常期望的许多其他服务。微内核RTOS体现了交付操作系统功能方法的一项基本创新:模块化是关键,小尺寸是副作用。
在微内核中,只有核心RTOS内核被授予对整个系统的访问权限,这提高了可靠性和安全性。微内核为其他进程保护和分配内存,并提供任务交换。所有其他组件,包括驱动程序和系统级组件,每个都包含在自己隔离的进程空间中。
隔离可以防止组件中的错误影响系统的其他部分——组件唯一可能崩溃的是它自己。这种崩溃很容易被检测到,并且可以在系统仍在运行时快速重启有故障的组件,以至于重启对性能没有影响或影响很小。
在代码开发过程中,所有进程的隔离有两个显着的好处:
- 错误在开发的早期被发现,并且很容易被追踪到错误进程中的一行代码。相比之下,即使在部署之后,单体操作系统的驱动程序开发中也会保留潜在的错误,因为游离指针或其他错误不会导致容易识别的进程崩溃。
- 驱动程序被视为应用程序进程,使它们更容易编写和调试。您无需成为设备驱动程序专家或内核调试器即可为微内核编写驱动程序。