跳转到内容

嵌入式系统/实时操作系统

来自维基教科书,开放世界中的开放书籍

实时操作系统 (RTOS) 是一个计算环境,它在特定时间段内对输入做出反应。实时截止日期可能很小,以至于系统反应看起来是即时的。术语 实时计算 也被用来描述具有更长但固定时间限制的“慢速实时”输出。

了解实时操作系统和标准操作系统的区别就像想象你在玩电脑游戏一样。你在游戏中进行的每一个动作都像是在该环境中运行的一个程序。一款使用实时操作系统作为环境的游戏感觉像是你身体的延伸,因为你可以依靠特定的“延迟时间”:你请求动作与计算机显着执行你的请求之间的时间。然而,标准操作系统可能会感觉不连贯,因为延迟时间不可靠。为了实现时间可靠性,实时程序及其 操作系统 环境必须优先考虑截止日期实现,而不是其他任何事情。在游戏示例中,这可能会导致在反应时间和视觉效果发生冲突时出现掉帧或视觉质量下降。

如果操作系统始终能够让其程序在特定的时间限制内(通常是用户期望的时间限制)执行任务,则该操作系统被认为是实时的。为了满足此定义,采用以下方法中的部分或全部方法

  • RTOS 执行的任务很少,因此可以确保这些任务总是在截止日期之前执行
  • RTOS 在无法在时间限制内执行某些功能时会丢弃或减少这些功能(“负载削减”)
  • RTOS 始终以及时的方式监控输入
  • RTOS 监控资源,并在需要时中断后台进程以确保实时执行
  • RTOS 预计潜在请求,并释放足够的系统以允许及时响应用户的请求
  • RTOS 记录在最坏情况下当前正在运行的任务可能使用多少资源(每个时间片的 CPU 时间、RAM、通信带宽等),并拒绝接受新任务,除非该任务“适合”在剩余的未分配资源中。

本节中的章节将讨论 RTOS 的工作原理,一些使用 RTOS 的通用方法,以及 一些流行的 RTOS。最后,在后面的一些章节中,我们将讨论如何编写自己的 RTOS

RTOS 必须及时响应更改,但这并不一定意味着 RTOS 可以处理大量数据吞吐量。实际上,在 RTOS 中,响应时间短远比计算能力或数据速度更重要。有时,RTOS 甚至需要丢弃数据以确保满足严格的截止日期。本质上,这为我们提供了一个完美的定义:RTOS 是一个旨在满足严格截止日期的操作系统。除了这个定义之外,对于 RTOS 必须是什么或必须具备哪些功能几乎没有要求。一些 RTOS 实现非常完整且非常健壮,而其他实现非常简单,只适合于一个特定目的。

RTOS 可以是事件驱动的,也可以是时间共享的。事件驱动 RTOS 是一个仅在响应传入事件时才改变状态的系统。时间共享 RTOS 是一个随着时间变化而改变状态的系统。

对于大多数人来说,嵌入式系统不像计算机那么容易辨认。相反,它们隐藏在我们周围的日常物品中,帮助我们生活。嵌入式系统通常不通过熟悉的个人计算机接口设备(如鼠标、键盘和图形用户界面)与外部世界交互。相反,它们通过非凡的接口(如传感器、执行器和专用通信链路)与外部世界交互。实时和嵌入式系统在受限环境中运行,在该环境中,计算机内存和处理能力有限。它们通常需要在严格的时间期限内向用户和周围世界提供其服务。正是这些内存、速度和时间限制决定了在嵌入式软件中使用实时操作系统。

实时内核

[编辑 | 编辑源代码]

实时操作系统(以及所有操作系统的核心)的核心是内核。内核是操作系统的核心,负责所有操作系统工作

  1. 引导
  2. 任务调度
  3. 标准函数库

现在,我们将在后面讨论引导和引导加载程序,我们还将专门用几章来讨论任务调度。所以,我们至少应该提一下标准函数库:在嵌入式系统中,很少有足够的内存(如果有的话)来维护一个大型函数库。如果要包含函数,则这些函数必须小而重要。

在嵌入式系统中,内核通常会引导系统,初始化端口和全局数据项。然后,它会启动调度程序并实例化任何需要启动的硬件计时器。完成所有这些后,内核基本上会从内存中转储出去(库函数除外,如果有的话),调度程序将开始运行子任务。

基本内核服务

[编辑 | 编辑源代码]

在下面的讨论中,我们将重点关注“内核”——操作系统的一部分,它为在处理器上运行的应用程序软件提供最基本的服务。“内核”实时操作系统(“RTOS”)提供了一个“抽象层”,它从应用程序软件中隐藏了将要运行应用程序软件的处理器(或一组处理器)的硬件细节。

进一步阅读

[编辑 | 编辑源代码]

请参阅 嵌入式系统/常见 RTOS,了解常见实时操作系统的列表。

华夏公益教科书