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

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

3天内不再提示

RTOS常用的调度算法

strongerHuang 来源:strongerHuang 2023-05-29 09:22 次阅读

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

这里分享一个嵌入式招聘信息的平台:

1

时间片轮询调度

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

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

fa1365de-fdb6-11ed-90ce-dac502259ad0.png

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

2

基于优先级的协同调度

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

fa460ab6-fdb6-11ed-90ce-dac502259ad0.png

3

抢占式调度

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

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

4

总结

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

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

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

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

    关注

    48

    文章

    6812

    浏览量

    147652
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10446

    浏览量

    206574
  • RTOS
    +关注

    关注

    20

    文章

    776

    浏览量

    118798

原文标题:RTOS应用中的调度策略

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

收藏 人收藏

    评论

    相关推荐

    FreeRTOS任务调度器的三种调度算法讲解(下)

    配置如下时,调度算法就会变成不带时间片的抢占式调度
    的头像 发表于 03-21 13:46 611次阅读
    FreeRTOS任务<b class='flag-5'>调度</b>器的三种<b class='flag-5'>调度</b><b class='flag-5'>算法</b>讲解(下)

    RTOS的ABC讨论(转)

    ,这个时间就不怎么太保证,偶尔的会超出,仅仅有统计上的意义。不严谨的说是这个意思。因为要实时,所以调度算法不能使用普通的调度算法调度
    发表于 02-27 14:20

    详解Kernel2.6调度算法

    Kernel2.6调度算法仍然是基于优先级的调度,它的算法复杂度为O(1),也就是说是调度器的开销是恒定的,与系统当前的负载没有关系。
    发表于 08-07 06:52

    RTOS实时内核μC/OS怎么优化任务调度算法

    /OSII继承了μC/OS的算法,有执行效率高、占用空间小、实时性强和可扩展性好等特点,被移植到几乎所有类型的CPU上,成为在嵌入式领域非常有影响力的RTOS。然而,由于该实时内核是为8位CPU设计的,对于那些具有优先级算法硬件
    发表于 11-06 06:40

    怎么使用stm32的LWIP协议栈进行报文调度算法的开发?

    各位朋友好,我的导师要求我设计一个新的报文调度算法,能够实现不同优先级的报文在发送的过程中,实现高优先级报文的低延时和低抖动。要求使用stm32的LWIP协议栈进行报文调度算法的开发,
    发表于 04-07 04:35

    RT_Thread的算法和uCosIII的调度算法一样吗?

    我看官方手册说设置时configMAX_PRIORITIES不能超过32,有没有谁试过改成255的或者更大的,小弟改了几下都不行!还有能问问FreeRTOS的任务调度算法和RT_Thread的不一样,RT_Thread的算法和u
    发表于 06-18 09:00

    调度器的原理及其任务调度代码实现

    一、介绍调度器是常用的一种编程框架,也是操作系统的拆分多任务的核心,比如单片机的裸机程序框架,网络协议栈的框架如can网关、485网关等等,使用场合比较多,是做稳定产品比较常用的编程技术二、原理1
    发表于 02-17 07:07

    网格任务调度算法研究

    网格任务调度算法是影响网格成功与否的关键技术之一。本文总结了网格计算系统的体系结构和特征,分析了网格任务调度算法的基本原理和性能指标,并对各种调度
    发表于 08-14 10:27 10次下载

    基于嵌入式RTOS的闭环反馈调度算法的研究

    分析了常见调度算法的特点,提出一种基于嵌入式实时操作系统的闭环反馈控制调度策略。针对任务的特点.从任务的周期与非周期性、I/O消耗和处理器消耗型两个方面对任务进行
    发表于 10-10 15:23 32次下载

    动态调度算法(DSA)

    动态调度算法动态调度算法(DSA)包括2 个方面:动态调度协议(DSP)和利用非实时间隔重发控制数据。
    发表于 03-30 10:30 1562次阅读
    动态<b class='flag-5'>调度</b><b class='flag-5'>算法</b>(DSA)

    遗传算法在加气母站气源调度中的应用_郭亮

    遗传算法在加气母站气源调度中的应用_郭亮
    发表于 03-19 11:45 0次下载

    从裸机调度过渡到RTOS的7个小技巧

    实时操作系统已经成为许多嵌入式系统中的关键组件,从裸机调度过渡到RTOS可能是一件棘手的事情。这里有七个小技巧可以帮助嵌入式开发人员更轻松地完成过渡。
    的头像 发表于 11-29 11:09 869次阅读

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

    从前后台架构的软件开发过渡到使用实时操作系统(RTOS)可能是一项困难的工作。但使用RTOS有许多优势,例如简化应用集成,支持任务抢占调度,当开发人员使用复杂的32位微控制器,且可以获取足够
    的头像 发表于 02-24 11:51 754次阅读

    RTOS应用中的调度策略

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

    RTOS核心:调度和分割

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