0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

实时操作系统RTOS简介

星星科技指导员 来源:嵌入式计算设计 作者:Rajan Mistry 2022-11-30 14:56 次阅读

当今嵌入式系统中最重要的组件之一是“RTOS”或“实时操作系统”,它负责从调度任务到启用C和Python等高级语言的所有内容。

那么,是什么让RTOS运转起来,为什么嵌入式系统开发人员应该关心它?

实时操作系统与全球通用操作系统

要了解RTOS,让我们退后一步,看看什么是“通用操作系统”(GPOS)。您可能已经熟悉 GPOS,因为它们可以在您每天使用的设备上找到,例如智能手机和工作电脑(例如 Android、Windows 等)。

通用操作系统中的“通用”意味着操作系统必须满足许多目标,例如提供良好的最终用户体验、支持不同类型的程序和硬件以及提供自定义选项等功能。

GPOS倾向于与处理器协同工作,其中每个内核一次运行一个执行线程。在这里,操作系统的调度程序决定运行哪个程序以及何时运行,在每个程序之间快速切换。这导致了同时执行的错觉,并希望提供良好的整体用户体验。除此之外,GPOS可以提供额外的功能,例如复杂的图形用户界面,复杂的文件I / O系统等。

另一方面,RTOS旨在提供可预测的执行模式,当处理必须符合有时限系统的时间限制(即,处理以特定频率完成或整个系统将失败)时,采用RTOS。因此,与GPOS相比,RTOS通常重量轻,体积小,并且通常仅提供在特定硬件上运行某些类型的应用程序所需的功能。在某些情况下,开发人员可以修改现有的RTOS,将其缩减为仅其特定应用程序所需的功能,和/或自定义其功能或性能特征。

实时操作系统可分为:

软:RTOS通常可以满足有时间限制的最后期限;抢占期通常在几毫秒内。

固定:RTOS有一定的时间限制,这些限制并不严格,可能会导致不希望但可接受的效果。

困难:RTOS 可以确定性地满足时序截止日期。硬RTOS通常更适合涉及关键任务应用的用例,例如机器人无人机中的应用。硬RTOS的抢占期通常小于几微秒。

与 GPOS 一样,RTOS 提供您期望从操作系统获得的部分或全部基本功能,例如线程同步、跨界通信(例如命名管道)、计时器、内存管理等。但是,RTOS 努力以符合底层系统和目标应用程序的时间限制要求的方式提供此功能。

在允许RTOS满足这些时间限制的众多因素中,任务调度和中断值得特别提及。

使用 GPOS,调度的处理方式通常可实现高吞吐量(即单位时间内完成执行的进程总数)。但是,这可能意味着高优先级进程的执行将被延迟,以便完成多个低优先级任务。另一方面,衡量RTOS的价值取决于它的响应速度或可预测性,而不是它在给定时间段内可以执行的工作量。

在实时操作系统中,调度通常是基于优先级的。大多数RTOS使用基于优先级的抢占式任务调度方法。在这里,高优先级进程将执行在低优先级进程之上。使用 GPOS,延迟可能会随着需要调度更多线程而累积。RTOS 没有此类问题,因为所有进程和线程的延迟都是有时间限制的。RTOS 还为您提供了一种确保共享系统资源免受并发访问的方法。

RTOS 的内核是可抢占的,而 GPOS 内核不可抢占,这在首先为高优先级进程和线程提供服务时很重要。如果没有抢占式内核,来自内核中的请求(例如来自驱动程序或系统服务的请求)将覆盖所有其他进程和线程。使用 RTOS,只有非常重要的服务请求保留在内核调用中,所有其他服务请求被视为外部进程和线程。基于内核的服务请求与 RTOS 的有限延迟相关联,以保持快速和可预测的响应。

实时操作系统的今天

开发人员可以在他们的项目中使用几种RTOS,包括商业(例如VxWorks,Red Hat Linux等)和开源产品(例如FreeRTOS,RTEMS等)。一些组织还拥有专门为其硬件产品开发的专有RTOS。

其中一个例子是Qualcomm Technologies的QuRT™ RTOS,它用于Qualcomm® Snapdragon™ 8系列移动平台上的高通® Hexagon™ DSP[1],由于其丰富的功能集,可以作为讨论RTOS的一个很好的例子。

例如,QuRT 提供多线程、互斥锁、信号量、计时器、中断处理、内存管理等,并允许程序和线程在单独的受保护地址空间中执行,以提高系统的安全性和稳定性。开发人员可以使用Hexagon DSP SDK编写旨在利用C / C++和/或汇编中的QuRT的用户程序,并使用QuRT API访问RTOS服务。每个用户程序都可以访问全局堆,并包含一个主线程调用堆栈、数据和文本部分,以及分配其他堆和线程的能力。由于 QuRT 将用户软件线程映射到处理器的硬件线程上,因此程序员无需关注底层线程模型。QuRT 可以全局调度优先级最高的可运行软件线程,并始终将中断定向到优先级最低的硬件线程。

QuRT 还管理软件和硬件看门狗定时器,以检测和重置系统故障。

有关更多信息,请参阅高通开发者网络 (QDN) 上的Hexagon DSP SDK 概述页面。

结论

RTOS 是确保在嵌入式设备(如物联网、机器人和移动设备中使用的设备)上可预测和及时执行的关键组件。因此,其目标是为必须在特定时间范围内执行的时间受限的应用程序提供工具,同时最大限度地减少延迟,例如中断和切换线程引起的延迟。

正如我们所看到的,有商业、开源和专有的RTOS可用于嵌入式系统。它们提供各种选项和功能,例如可定制性、跨平台或专业支持以及丰富的 SDK 支持。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    4983

    文章

    18295

    浏览量

    288593
  • 操作系统
    +关注

    关注

    37

    文章

    6290

    浏览量

    121898
  • RTOS
    +关注

    关注

    20

    文章

    776

    浏览量

    118800
收藏 人收藏

    评论

    相关推荐

    带你认识实时操作系统(rtos)

    实时操作系统RTOS)是为嵌入式系统实时应用提供一个稳定、可预测和高效运行环境的操作系统
    的头像 发表于 04-16 16:30 138次阅读
    带你认识<b class='flag-5'>实时</b><b class='flag-5'>操作系统</b>(<b class='flag-5'>rtos</b>)

    再谈嵌入式实时操作系统

    等领域。嵌入式实时操作系统RTOS)构造简单、功能齐全、便于使用,特别适合各类应用场景,因此它在软件应用程序开发中发挥着重要的作用,使嵌入式系统的开发更加高效。
    的头像 发表于 04-09 17:27 214次阅读
    再谈嵌入式<b class='flag-5'>实时</b><b class='flag-5'>操作系统</b>

    一个成熟且可靠的开源实时操作系统

    市场上有许多专有和开源实时操作系统RTOS)。ThreadX已经以其对小代码大小和高性能的关注而闻名。然而,它的竞争优势远远超出了这些属性。
    的头像 发表于 02-20 12:26 351次阅读

    详解实时操作系统和非实时操作系统

    实时操作系统,当外界事件和数据产生时,系统能以足够快的速度予以处理,其处理结果能在规定的时间内控制生产结果或对系统做出响应,并控制所有实时
    的头像 发表于 12-26 09:54 1915次阅读
    详解<b class='flag-5'>实时</b><b class='flag-5'>操作系统</b>和非<b class='flag-5'>实时</b><b class='flag-5'>操作系统</b>

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

    实时操作系统RTOS)是一种专为实时应用程序设计的操作系统实时应用程序需要在特定时间内做出预
    的头像 发表于 11-23 17:14 1667次阅读

    实时操作系统的滴答Tick设置多少才合适?

    实时操作系统的滴答Tick设置多少才合适? 介绍实时操作系统中Tick的设置。 在实时操作系统
    的头像 发表于 10-29 16:33 535次阅读

    到底啥是实时操作系统呢?它到底实时实时呢?

    到底啥是实时操作系统呢?它到底实时实时呢? 实时操作系统(Real Time Operatin
    的头像 发表于 10-29 16:33 732次阅读

    所有实时操作系统都是等效的吗

    RTOS抽象层消除了对任何RTOS操作系统的依赖,从而实现了更好的单元测试和超目标运行应用程序仿真的能力!当然,出现的问题是,当团队创建RTOS抽象层时,他们拼命地试图建议所有
    的头像 发表于 09-29 05:04 262次阅读
    所有<b class='flag-5'>实时</b><b class='flag-5'>操作系统</b>都是等效的吗

    实时操作系统(RTOS)和分时操作系统(TSOS)的区别

    大家平时玩单片机基本上对于µC/OS、FreeRTOS、ThreadX这些操作系统非常熟悉了,他们都属于实时操作系统RTOS),在工业领域比较广泛;然而对于linux这样的基于时间片
    发表于 09-21 10:19 3342次阅读

    Fabric操作系统9.0简介

    电子发烧友网站提供《Fabric操作系统9.0简介.pdf》资料免费下载
    发表于 09-01 10:45 0次下载
    Fabric<b class='flag-5'>操作系统</b>9.0<b class='flag-5'>简介</b>

    linux是实时系统还是分时操作系统

    大家平时玩单片机基本上对于µC/OS、FreeRTOS、ThreadX这些操作系统非常熟悉了,他们都属于实时操作系统RTOS),在工业领域比较广泛;
    的头像 发表于 08-18 09:48 1328次阅读

    FreeRTOS:一个迷你的实时操作系统内核

    、协程等,可基本满足较小系统的需要。由于RTOS需占用一定的系统资源(尤其是RAM资源),只有μC/OS-II、embOS、salvo、FreeRTOS等少数实时
    的头像 发表于 06-29 17:15 522次阅读
    FreeRTOS:一个迷你的<b class='flag-5'>实时</b><b class='flag-5'>操作系统</b>内核

    直播回顾 | 虹科实时操作系统INtime7——解决智能制造苛刻实时需求的关键RTOS

    6月15日晚2000,虹科技术工程师许工为大家分享了“虹科实时操作系统INtime7——解决智能制造苛刻实时需求的关键RTOS”主题直播课程,课程的主要内容包括
    的头像 发表于 06-21 17:23 555次阅读
    直播回顾 | 虹科<b class='flag-5'>实时</b><b class='flag-5'>操作系统</b>INtime7——解决智能制造苛刻<b class='flag-5'>实时</b>需求的关键<b class='flag-5'>RTOS</b>

    微控制器实时操作系统实践—实时系统介绍

    实时系统有各种各样的实现方式和使用情况。本书的重点是如何使用实时操作系统RTOS)在微控制器单元(MCU)上创建
    发表于 06-15 17:21 900次阅读
    微控制器<b class='flag-5'>实时</b><b class='flag-5'>操作系统</b>实践—<b class='flag-5'>实时</b><b class='flag-5'>系统</b>介绍

    选择实时操作系统(RTOS)的要点详解

    对许多嵌入式项目来说,系统设计师都倾向于选择实时操作系统(RTOS)。但RTOS总是必要的吗?答案是取决于具体的应用,因此了解我们要达到什么
    发表于 05-30 09:45 780次阅读