• 实时操作系统(RTOS)指南


    什么是RTOS

    实时操作系统(RTOS)必须可靠;它必须快速响应,管理有限的资源并安排任务以使其按时完成,并确保功能隔离且不受其他功能的干扰。在本节中,您将了解更多关于什么是实时操作系统以及单片和微内核两种类型的RTOS架构的优缺点。

    RTOS定义

    操作系统的主要职责是管理系统中的硬件资源和活动:调度应用程序、将文件写入磁盘、通过网络发送数据等。当操作系统必须同时处理多个事件并确保系统在可预测的时间限制内响应这些事件时,它被称为实时操作系统(RTOS)。

    为什么选择嵌入式系统的RTOS?

    许多嵌入式系统需要实时行为,由于硬件资源限制,性能和效率是重中之重。RTOS提供严格的资源管理和调度,以满足应用程序的需求,包括多任务、优先级驱动的抢占式调度和快速上下文切换——所有这些都是嵌入式实时系统的基本特征。

    RTOS通常占用空间小,并针对性能进行了优化。然而,每个RTOS都必须根据其支持的硬件和系统所需的功能进行定制。从管理少量任务的基本内核配置到管理数百个任务和子系统(包括图形、网络、文件系统、音频等)的全功能RTOS,RTOS应该灵活扩展以满足系统需求和资源。

    RTOS架构

    RTOS架构影响嵌入式系统的可靠性及其从故障中恢复的能力。有两种RTOS架构:宏内核和微内核。

    什么是宏内核RTOS?

    单片意味着“一块巨大的石头”。根据定义,单片内核运行内核空间中的所有操作系统组件。例如,单片RTOS包括设备驱动程序、文件管理、网络和作为内核空间一部分的图形堆栈。然而,应用程序在用户空间中运行。尽管将用户应用程序作为内存保护进程运行可以保护单片内核免受错误用户代码的侵害,但文件系统、协议栈或驱动程序中的单个编程错误可能会使系统崩溃。此外,对驱动程序或系统文件的任何更改都需要修改和重新编译操作系统。

    宏内核RTOS(例如RTLinux)的优缺点

    优点缺点
    进程调度、内存管理和文件管理都作为单个大进程在相同的地址空间中运行,这可以提高性能。任何服务的故障都可能导致操作系统崩溃。
    整个操作系统包含在一个静态二进制文件中,它可能比动态链接库运行得更快、更可靠。添加或删除服务需要修改和重新编译操作系统。
    操作系统的内核服务代表了一个巨大的攻击面——如果服务受到威胁,它可能会使整个系统易受攻击。
    更大的尺寸
    难以调试和维护。

    什么是微内核RTOS?

    微内核RTOS由一个提供最少服务的小内核构成。微内核与一组在内核空间(用户空间)之外运行的可选协作进程一起工作,这提供了更高级别的操作系统功能。微内核本身缺乏文件系统和操作系统通常期望的许多其他服务。微内核RTOS体现了交付操作系统功能方法的一项基本创新:模块化是关键,小尺寸是副作用。
    在微内核中,只有核心RTOS内核被授予对整个系统的访问权限,这提高了可靠性和安全性。微内核为其他进程保护和分配内存,并提供任务交换。所有其他组件,包括驱动程序和系统级组件,每个都包含在自己隔离的进程空间中。
    隔离可以防止组件中的错误影响系统的其他部分——组件唯一可能崩溃的是它自己。这种崩溃很容易被检测到,并且可以在系统仍在运行时快速重启有故障的组件,以至于重启对性能没有影响或影响很小。
    在代码开发过程中,所有进程的隔离有两个显着的好处:

    1. 错误在开发的早期被发现,并且很容易被追踪到错误进程中的一行代码。相比之下,即使在部署之后,单体操作系统的驱动程序开发中也会保留潜在的错误,因为游离指针或其他错误不会导致容易识别的进程崩溃。
    2. 驱动程序被视为应用程序进程,使它们更容易编写和调试。您无需成为设备驱动程序专家或内核调试器即可为微内核编写驱动程序。

    微内核实时操作系统(例如 QNX 中微子实时操作系统)的优缺点

    优点缺点
    故障隔离和恢复以实现高可用性。需要更多的上下文切换,这可能会增加开销。
    动态重启失败的系统服务,而不会影响内核(不重新启动系统)。
    轻松扩展-无需内核专家也无需重新编译即可开发设备驱动程序和操作系统扩展。
    更易于调试。
    更小的尺寸
    内核空间中运行的代码更少,可减少攻击面并提高安全性。

    宏内核和微内核比较

    分类微内核单片
    性能由于上下文切换数量较多,性能略慢。由于上下文切换数量更少,性能更高。
    系统更新无需更改内核即可执行新的驱动程序和操作系统服务更新,因此不需要重新启动操作系统。新的驱动程序和操作系统服务更新需要重新生成并重新启动操作系统。
    电源故障恢复可以单独重新启动任何服务,而不会中断内核。恢复失败的服务需要重新启动操作系统。
    资质认证更容易、更便宜地鉴定和认证内核。大多数系统更新不需要完整的资格认证周期,而是仅限于更新的服务或驱动程序。资格和认证困难且成本更高。系统更新需要完整的资格认证和认证周期,因为操作系统通常会重建。
    维护更轻松、更省时地维护和排除已部署的系统故障。用户可以更新、排除故障和重新启动服务,而无需重新启动整个操作系统。维护和故障排除具有挑战性且更耗时。用户在执行大多数系统更新、故障排除步骤或服务重新启动时需要重新启动操作系统。

    参考

  • 相关阅读:
    地理信息系统原理重点整理
    重新认识架构—不只是软件设计
    C++内存管理
    无法安装64位版本的office,因为在您的PC上找到以下32位程序
    浅浅探索Memcached
    【PAT甲级】1150 Travelling Salesman Problem
    Maven打包又在找main方法
    【树莓派不吃灰】搭建Homeassistant 开源智能家居平台平台(非Hass OS搭建方式),记录搭建过程的各种坑
    1、年千亿营收企业Java研发人员日常使用Linux命令总结
    【cookie和session】娓娓道来cookie和session
  • 原文地址:https://blog.csdn.net/qq_16740151/article/details/134035862