实时操作系统 (RTOS):组件、类型、示例

⚡ 智能摘要

实时操作系统 (RTOS) 为必须在严格、可预测的时间限制内处理数据和响应事件的应用程序提供服务,它采用基于优先级的调度和快速、确定性的任务切换,因此不会错过关键的截止时间。

  • ⏱️ 定义: 实时操作系统在固定的时间限制内处理传入数据,通常没有缓冲延迟。
  • 🎯 为什么要使用它: 基于优先级的调度将关键工作分离出来,并实现模块化、可测试的任务设计。
  • 🧩 组件: 调度器、对称多进程、函数库、内存管理和快速调度延迟。
  • 🗂️ 类型: 硬性实时系统、严格实时系统和软性实时系统在执行截止日期的严格程度上有所不同。
  • GPOS 与 RTOS: 实时操作系统 (RTOS) 的目标设备是嵌入式设备,它具有最小、可预测的中断延迟。
  • 🤖 人工智能视角: 机器学习在 RTOS 边缘设备上运行,而 Copilot 可以加速 FreeRTOS 编码。

实时的 Opera实时操作系统 (RTOS)

什么是实时 Opera实时操作系统(RTOS)?

A 实时操作系统 (RTOS) 是一个 操作系统 旨在服务于实时应用,这些应用能够即时处理传入的数据,几乎没有缓冲延迟。RTOS 的全称是实时操作系统。

在实时操作系统(RTOS)中,处理时间需求以十分之一秒为单位进行计算。它是一个具有固定时间约束的时间受限系统。在这种类型的系统中,处理必须在规定的时间约束内完成,否则系统将运行失败。

为什么要使用 RTOS?

以下是使用实时操作系统 (RTOS) 的重要原因:

  • 它提供基于优先级的调度,使您可以将分析处理与非关键处理分开。
  • 实时操作系统提供 API 函数,从而可以编写更简洁、更小的应用程序代码。
  • ABStrac时间依赖性和基于任务的设计使得模块之间的相互依赖性减少。
  • 实时操作系统 (RTOS) 提供模块化、基于任务的开发,从而可以进行模块化、基于任务的测试。
  • 基于任务的 API 鼓励模块化开发,因为每个任务通常都有明确定义的角色。它允许设计人员和团队独立完成项目中各自的部分。
  • 实时操作系统是事件驱动的,不会将处理时间浪费在不会发生的事件上。

RTOS 的组件

RTOS 的组件

实时组件 Opera系统

以下是实时操作系统 (RTOS) 的重要组成部分:

调度程序: 实时操作系统的这一组件决定任务的执行顺序,通常基于任务的优先级。

对称多处理(SMP): RTOS 可以处理多个不同的任务,从而实现并行处理。

函数库: 它是实时操作系统(RTOS)的重要组成部分,充当连接内核和应用程序代码的接口。应用程序使用函数库向内核发送请求,以便内核能够产生所需的结果。

内存管理: 系统中需要此元素来为每个程序分配内存,它是实时操作系统 (RTOS) 中最重要的元素。

快速调度延迟: 它是操作系统可以识别的任务终止时间与就绪队列中的线程开始处理实际所需时间之间的时间间隔。

用户自定义数据对象和类: 实时操作系统(RTOS)使用C语言或Python等编程语言。 C++,应按照其操作进行组织。

实时操作系统的类型

实时操作系统有三种类型:

硬实时

在硬实时操作系统中,截止时间的处理非常严格,这意味着给定的任务必须在指定的计划时间开始执行,并且必须在分配的时间段内完成。

例如:医疗重症监护系统、飞机系统等。

公司实时

这类实时操作系统也需要遵守截止日期。然而,错过截止日期可能不会造成太大影响,但可能会导致不良后果,例如产品质量大幅下降。

例如:各种类型的多媒体应用。

软实时

软实时操作系统(RTOS)允许操作系统存在一定的延迟。这类RTOS会为特定任务设定截止时间,但允许存在少量延迟。因此,软实时操作系统对截止时间的处理方式较为温和。

例如:在线交易系统和牲畜报价系统。

RTOS 中使用的术语

以下是实时操作系统(RTOS)中使用的一些基本术语:

  • 任务: 一组相互关联的任务,共同提供系统功能。
  • 职位: 作业是可以分配给处理器的一小段工作,可能需要也可能不需要资源。
  • 作业发布时间: 这是指工作准备就绪,可以执行的时刻。
  • 作业的执行时间: 这是完成一项工作所需的时间。
  • 工作截止日期: 这是工作完成的必要时间。
  • 处理器: 它们也被称为活动资源。它们对于作业的执行很重要。
  • 相对截止日期: 作业允许的最大响应时间称为其相对截止时间。
  • 作业响应时间: 它是从任务发布时间到任务完成的瞬间所经过的时间长度。
  • 绝对期限: 这是相对截止日期,其中也包括发布时间。

RTOS 的特点

以下是 RTOS 的重要特性:

  • 占用内存极少
  • 消耗资源更少
  • 响应时间高度可预测
  • 即使在不可预测的环境下也能可靠运行。
  • 内核会保存被中断任务的状态,然后确定接下来应该运行哪个任务。
  • 内核恢复任务状态并将 CPU 控制权移交给该任务。

选择 RTOS 的因素

以下是选择实时操作系统时需要考虑的关键因素:

  • 性能: 在选择实时操作系统时,性能是最重要的考虑因素。
  • 中间件: 如果实时操作系统中没有中间件支持,就会出现进程集成耗时的问题。
  • 无错误: 实时操作系统 (RTOS) 系统设计为无错误,因此在执行任务时出现错误的几率极小。
  • 嵌入式系统用途: 实时操作系统(RTOS)的程序体积小,因此RTOS被广泛用于…… 嵌入式系统.
  • 最大限度利用: 实时操作系统 (RTOS) 可帮助您最大限度地利用系统资源。
  • 任务转移: 任务切换时间非常短。
  • 独特的功能: 一个好的实时操作系统应该功能强大,并提供额外的功能,例如如何执行命令以及如何有效地保护系统内存。
  • 24/7全天候性能: 实时操作系统 (RTOS) 非常适合需要 24/7 全天候运行的应用。

GPOS 和 RTOS 的区别

一般用途 Opera系统 (GPOS) 实时的 Opera实时操作系统 (RTOS)
它适用于台式电脑和笔记本电脑。 它仅适用于嵌入式应用程序。
基于流程的调度。 采用基于时间的调度方式,例如轮询调度。
中断延迟在实时操作系统中并不像在实时操作系统中那样重要。 中断延迟最小,仅需几微秒。
系统中不存在优先级反转机制。 由于存在优先级反转机制,因此系统无法对其进行修改。
内核的操作可能会被抢占,也可能不会。 内核的操作可以被抢占。
优先级反转现象仍未被察觉。 无法保证预测结果。

实时应用 Opera系统

实时系统用于:

  • 航空公司订票系统。
  • 空中交通管制系统。
  • 提供即时更新的系统。
  • 任何能够提供最新、最详细股票价格信息的系统。
  • RADAR 等国防应用系统。
  • 网络化多媒体系统。
  • 指挥控制系统。
  • 网络电话。
  • 防抱死制动系统。
  • 心脏起搏器。

RTOS 的缺点

使用实时操作系统 (RTOS) 的缺点如下:

  • 实时操作系统同时运行最少数量的任务,并且只关注那些包含错误的应用程序,以便避免这些错误。
  • 实时操作系统专注于少数几个任务。因此,这类系统很难进行多任务处理。
  • 实时操作系统需要特定的驱动程序,以便能够快速响应中断信号,从而保持其运行速度。
  • 实时操作系统会占用大量资源,因此该系统成本较高。
  • 低优先级任务可能需要等待很长时间,因为实时操作系统优先考虑正在执行的程序的准确性。
  • 实时操作系统中任务切换次数最少。
  • 它使用复杂的算法,这些算法很难理解。
  • 实时操作系统会占用大量资源,这有时并不适合系统。

常见问题

RTOS 代表实时操作系统。 Operating 系统旨在严格、可预测的时间限制内处理数据并响应事件,且大多没有缓冲延迟。

流行的实时操作系统包括 FreeRTOS、VxWorks、Zephyr、QNX、RTLinux 和 Micrium µC/OS。它们为需要确定性时序的嵌入式、汽车、医疗和工业设备提供支持。

标准版 Windows Linux 是通用操作系统,而非实时操作系统。虽然存在一些实时变体,例如 Linux PREEMPT_RT 补丁,但这些变体仍然存在。 Windows 具有实时扩展功能的物联网,适用于确定性工作负载。

抖动是指实时操作系统(RTOS)响应事件所需时间的波动。抖动越低,时间响应就越可预测,这也是为什么硬实时系统会尽可能降低抖动的原因。

上下文切换会保存当前任务的状态并加载另一个任务,以便调度器可以运行优先级更高的任务。快速的上下文切换可以保证实时操作系统 (RTOS) 的响应时间可预测。

当低优先级任务占用高优先级任务所需的资源时,就会发生优先级反转。实时操作系统内核使用优先级继承或优先级上限协议来防止长时间且不可预测的延迟。

机器学习运行在基于实时操作系统(RTOS)的边缘设备上,用于实时视觉、预测性维护和异常检测。RTOS 保证了人工智能推理所需的时序,从而满足安全关键控制的需求。

是的。GitHub Copilot 可以为 FreeRTOS 等内核提供任务、队列和信号量代码建议。但开发者仍需在目标硬件上验证时序、堆栈大小和中断安全性。

总结一下这篇文章: