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

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

3天内不再提示

来了解一下RTOS应用中的调度策略

麦克泰技术 来源:麦克泰技术 2023-02-24 11:51 次阅读

从前后台架构的软件开发过渡到使用实时操作系统(RTOS)可能是一项困难的工作。但使用RTOS有许多优势,例如简化应用集成,支持任务抢占调度,当开发人员使用复杂的32位微控制器,且可以获取足够的Flash和RAM空间时,使用RTOS开始变得有意义。许多32位应用程序需要使用USB、TCP/IP和文件系统,这对于裸机应用程序的开发是非常困难的,且大多数第三方中间件被设计为与RTOS无缝集成。

在使用RTOS之前,用户可能需要深入研究RTOS的细节,我们来了解一下RTOS中常用的调度技术。

1时间片轮询调度

前后台系统实现通常基于轮询调度技术,它是一种很自然的软件编写方式,只需向超级循环中添加新代码,相当于增加了一个新的任务。

RTOS中的轮询调度策略,是允许多个任务可以分配同一个优先级别。调度程序基于时钟监控任务时间,任务处于相关优先级,按照先进先出的原则执行分配到的时间片,时间到了,即使当前任务还没有完成,任务也将CPU时间传递给下一个任务。在下一个分配到的时间段内,该任务将从它停止的位置继续执行。

35bf6066-b3f6-11ed-bfe3-dac502259ad0.png

常用的RTOS,如μC/OS-III(Cs/OS3)、FreeRTOS都支持时间片轮询算法。FreeRTOS中每个任务的时间片长度是固定的,为一个时间节拍;而μC/OS-III中每个任务的时间片长度可变,可在任务创建时指定。

2基于优先级的协同调度

在RTOS中,协同调度是基于优先级的非抢占调度方法。任务按优先级排序,并且是事件驱动类型的,一旦正在运行的任务完成,或者任务主动调用OS服务放弃CPU,就绪运行的优先级最高的任务才可以获得CPU使用权。

35db3750-b3f6-11ed-bfe3-dac502259ad0.png

3抢占式调度

RTOS通过可抢占调度保证实时性。为了保证任务响应,在抢占调度策略中,只要一个优先级更高的任务就绪,正在运行的任务低优先级任务将被切换出来。通过抢占,正在运行的任务被迫放弃处理器,即使任务工作还没有完成。

35ede3fa-b3f6-11ed-bfe3-dac502259ad0.png

RTOS通常可以配置为使用许多确定性调度算法,以保证满足任务截止时限。如FreeRTOS、μC/OS-III支持抢占和时间片轮询两种调度方法。

4总结

RTOS对于嵌入式软件开发人员来说是一个强大的工具。RTOS应用中,每个任务都有单独的任务控制块,其中包含堆栈、优先级和ID等参数。每个任务都可以被看作是单独的应用程序。RTOS还提供了各种各样的同步和通信工具,如信号量、互斥信号量和消息队列,简化应用的开发。

但任务切换将消耗CPU时间,即使在32位处理器上,RTOS也会造成时间损失。任务切换比中断占用更多的时间。如果是一个很小的应用程序,但需要充分利用处理器资源,在这种情况下,需仔细考虑RTOS的可行性。

每种调度算法都有其优缺点,了解RTOS常用的调度算法,可以帮助我们做出合适的选择。

审核编辑:汤梓红

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

    关注

    37

    文章

    6651

    浏览量

    123094
  • RTOS
    +关注

    关注

    21

    文章

    809

    浏览量

    119336
  • 实时操作系统

    关注

    1

    文章

    194

    浏览量

    30724
  • 应用程序
    +关注

    关注

    37

    文章

    3232

    浏览量

    57529
  • 调度
    +关注

    关注

    0

    文章

    52

    浏览量

    10749

原文标题:来了解一下RTOS应用中的调度策略

文章出处:【微信号:麦克泰技术,微信公众号:麦克泰技术】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    请问CMSIS-RTOS RTX的任务调度锁在哪里?

    请问一下,CMSIS-RTOS RTX的任务调度锁在哪里?谢谢!
    发表于 05-13 08:28

    选择实时操作系统(RTOS)前你需要了解的几个要点

    响应速度。对开发人员来说,窍门在于把系统需求与硬件和软件匹配起来,然后才是RTOS在嵌入式应用的重要性。RTOS可以实现一系列调度
    发表于 06-29 08:00

    了解一下stm32的外部中断

    ,然后又继续写作业。停止正在处理的事情转而处理另件事,在处理完另件事后又回来处理原来的事情,这在单片机中就是中断的概念。在各类单片机中都有这几类中断:串口中断定时器中断外部中断今天就来了解
    发表于 08-16 07:22

    如何使用Tracealyzer理解多任务调度

    调试器视图的补充。我们今天来了解一下如何通过Tracealyzer记录的数据获取任务优先级及执行时间相关的信息。优先级决定何时调度大多数RTOS使用固定优先级
    发表于 12-17 16:01

    RTOS核的作用是什么

    [导读] 大家好,我是逸珺。前面文利用FreeRTOS点灯,算是将FreeRTOS给跑起来了,要用好RTOS,从黑盒角度去理解一下调度器是怎么工作的是很必要的,当然如果想研究其内部实
    发表于 01-13 06:54

    CPU频率调度策略有哪些?

    CPU频率调度策略有哪些?
    发表于 03-10 06:54

    十分钟了解RTOS

    越好。4、调度调度是内核的主要职责,负责确认运行哪个任务以及何时运行。大多数实时内核采用优先级策略,每个任务根据其重要性分配个优先级。任务的优先级由应用指定。在基于优先级
    发表于 09-07 13:17

    了解一下RTOS消息队列的应用

    基于RTOS的应用,通常使用队列机制实现任务间的数据交互,个应用程序可以有任意数量的消息队列,每个消息队列都有自己的用途。 什么是消息队列? 消息队列是个内核对象(即数据结构)
    发表于 06-12 14:17

    宏碁智能佛珠了解一下

    朋友,最近工作顺利吗?家庭幸福吗?生活美满吗?看你心情复杂,要不要了解一下宏碁刚发布的智能佛珠?
    的头像 发表于 08-08 16:27 3511次阅读

    RTOS应用调度策略

    RTOS,协同调度是基于优先级的非抢占调度方法。任务按优先级排序,并且是事件驱动类型的,旦正在运行的任务完成,或者任务主动调用OS服务
    的头像 发表于 05-29 09:19 614次阅读
    <b class='flag-5'>RTOS</b>应用<b class='flag-5'>中</b>的<b class='flag-5'>调度</b><b class='flag-5'>策略</b>

    了解一下光纤传输的特点

    光纤作为综合布线种常见的传输媒介,很多人搞不清楚光纤和光缆这两者,光纤是光传导工具,传输原理是“光的全反射”,被用作长距离的信息传递,下面跟着科兰小编一起来了解一下光纤传输的特点。
    的头像 发表于 06-08 13:42 769次阅读

    RTOS核心:调度和分割

    对许多嵌入式项目来说,系统设计师都倾向于选择实时操作系统(RTOS)。但RTOS总是必要的吗?答案是取决于具体的应用,因此了解我们要达到什么目标是决定RTOS是必要的还是花瓶的关键。
    的头像 发表于 06-22 10:46 703次阅读

    虹科带你来了解一下汽车以太网和TSN的测试标准

    虹科带你来了解一下汽车以太网和TSN的测试标准
    的头像 发表于 12-22 17:46 3282次阅读
    虹科带你<b class='flag-5'>来了解</b><b class='flag-5'>一下</b>汽车以太网和TSN的测试标准

    了解一下“薄膜厚度监控”

    光学镀膜干货来了了解一下“薄膜厚度监控”
    的头像 发表于 07-20 10:11 807次阅读
    <b class='flag-5'>了解</b><b class='flag-5'>一下</b>“薄膜厚度监控”

    无需电流采样电阻的智能电机驱动IC,不来了解一下么?

    无需电流采样电阻的智能电机驱动IC,不来了解一下么?
    的头像 发表于 11-30 17:43 415次阅读
    无需电流采样电阻的智能电机驱动IC,不<b class='flag-5'>来了解</b><b class='flag-5'>一下</b>么?