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

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

3天内不再提示

嵌入式实时操作系统优先级抢占式调度机制解析

麦克泰技术 来源:麦克泰技术 2024-04-05 05:22 次阅读

电电侠 想学习RTOS,奈何不知从何下手,唉 实时操作系统?我熟啊,且听我慢慢给你道来

科科君

实时操作系统(RTOS)广泛应用于消费电子、娱乐产品、家用电器、工业设备、医疗仪器、军事武器和科研设备中,在航空航天控制系统、汽车工业、银行金融、机器人系统、安全和电信以及交通控制等安全攸关领域发挥着关键作用。

电电侠 应用领域真广啊,我还想知道学习RTOS的关键是什么 那必须是调度,调度调度惊起一番。。。

科科君

RTOS首先至少需支持优先级抢占式调度,任务间同步与通信应能避免优先级反转, 并提供高精度定时器。RTOS往往运行在资源受限的设备,调度资源确定性与调度时间确 定性是重要需求,进而可以保证在事先确定的时间内使用系统资源。

电电侠 有点明白了,科科大大快快继续讲 接下来我们将探讨基于优先级的抢占式调度

科科君

在我们的例子中,当一个优先级更高的任务进入就绪状态时,当前的任务会停止运行。这意味着一个任务可以处在三个状态之一:运行中(执行中)、就绪和挂起。可以用如下状态转换图描述任务在抢占式调度中的行为。

b4458ea8-ed82-11ee-a297-92fbcf53809c.png

电电侠 那什么时候任务处于运行状态?什么时候处于就绪状态? 只有在被RTOS调度时一个任务才能进入运行状态,在此之前它必须处在就绪状态,在基于优先级的系统中它还必须处在就绪队列的第一位。

科科君

任务挂起或者被抢占时会离开运行状态。当任务结束执行,或者因为某种原因无法继续时,任务会挂起,比如在本例中任务需要进行特定时长的延时。当任务进入挂起状态时会释放处理器的使用权,从而允许其他任务运行(见下图)。释放可以是任务自行触发的,也可以是 RTOS强制的。一个运行中的任务可以用两种方式自行释放处理器:其一,任务完成了必需的操作退出;其二,任务因为内部产生的信号(内部事件)放弃对处理器的控制。

下图列举了强制释放处理器的原因

科科君

b460865e-ed82-11ee-a297-92fbcf53809c.png

电电侠 有没有任务状态模型可供参考呢 下图即为任务状态的一般模型,详细过程如下所述

科科君

b4839a36-ed82-11ee-a297-92fbcf53809c.png

当抢占发生时,任务即使没有完成也会被迫放弃处理器,此时任务并没有被挂起,而是会返回就绪队列。任务在队列中的位置是由优先级决定的,它会在队列中等待到下一次被调度。当条件满足时任务会从挂起状态进入就绪状态,比如完成一个事件、经过特定的时间或者某种事件和时间的组合。不同的任务有不同的挂起状态。

简单示例

如果需要,任务模型可以进一步扩充并显示任务的创建和删除。在基于优先级的系统中,任务的就绪和再调度会变得很复杂,下图是一个简单的例子,图中展示了优先级对任务在就绪和挂起队列中位置的影响,以及当任务就绪时就绪队列是如何变化的。

b4973488-ed82-11ee-a297-92fbcf53809c.png

电电侠 学习到了,不过还有一个小问题,可否解释下“再调度(reschedule/rescheduling)”? 再调度是决定接下来要运行的任务的过程,也可翻译为重新调度。

审核编辑:黄飞

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

    关注

    68

    文章

    19077

    浏览量

    228723
  • 嵌入式
    +关注

    关注

    5056

    文章

    18953

    浏览量

    301639
  • 操作系统
    +关注

    关注

    37

    文章

    6654

    浏览量

    123109
  • RTOS
    +关注

    关注

    21

    文章

    809

    浏览量

    119342

原文标题:嵌入式实时操作系统——基于优先级的抢占式调度

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

收藏 人收藏

    评论

    相关推荐

    基于优先级调度嵌入式实时操作系统内核详解(上)

    今日分享参加瑞萨RA MCU创意氛围赛的选手项目——基于优先级的RTOS内核。本项目为基于优先级调度嵌入式实时
    发表于 09-04 14:12 647次阅读

    嵌入式实时操作系统uCos

    嵌入式实时操作系统uCos:嵌入式实时操作系统µCOS -II一、RTOS基础 
    发表于 12-10 14:35

    嵌入式领域linux作为实时操作系统的缺点

    `linux以自由和开发源码赢得了许多工程师的青睐,现在许多嵌入式产品使用的是linux系统,然而linux内核作为实时操作系统有非常,明显的几个缺点1.任务
    发表于 01-06 13:31

    几种嵌入式实时操作系统分析与比较

    实时操作系统采用基于优先级抢占调度与时间片轮转调度
    发表于 06-11 09:14

    嵌入式操作系统FreeRTOS 的原理与实现

    的使用权后才能获得运行,这样可提高CPU的运行效率。2、FreeRTOS操作系统的原理与实现2.1任务调度机制的实现任务调度机制嵌入式实时
    发表于 06-23 08:00

    实时操作系统概念

    对很多嵌入式系统来说,一个设计良好的实时操作系统可以让开发工程师把握系统执行任何任务或响应任何关键事件的时间,满足
    发表于 07-19 06:18

    【案例分享】FreeRTOS的嵌入式实时操作系统的实现

    FreeRTOS是一个源码公开的免费的嵌入式实时操作系统,通过研究其内核可以更好地理解嵌入式操作系统的实现原理.本文主要阐述FreeRTOS
    发表于 07-23 04:30

    嵌入式实时系统中的优先级反转是什么?

    的可抢占调度策略。系统为每一个任务分配一个优先权,调度程序保证当前运行的进程是
    发表于 09-17 07:16

    嵌入式系统概论

    操作系统:多道批处理系统,分时操作系统实时操作系统。5.实时
    发表于 10-27 08:09

    VxWorks操作系统具有哪些优点

    的控制采用优先级抢占和轮转调度机制,充分保证了可靠的实时性。·可靠性高,从而保证了用户工作环境的稳定。·集
    发表于 12-22 08:12

    嵌入式实时操作系统VxWorks内核调度机制研究

    嵌入式实时操作系统VxWorks内核调度机制研究
    发表于 03-29 12:26 13次下载

    高可信赖实时操作系统的防危调度机制

    为增强实时操作系统的防危性,在分析现有调度机制的基础上,探讨了最大关键度优先调度算法,该算法是一种混合型的
    发表于 05-16 11:52 10次下载

    嵌入式实时操作系统VxWorks内核调度机制分析

    本文简要介绍了多任务内核,重点分析了嵌入式实时操作系统VxWorks的内核调度机制——优先级抢占
    发表于 12-11 16:15 14次下载

    基于FreeRTOS的嵌入式实时操作系统的原理和实现

    FreeRTOS是一个源码公开的免费的嵌入式实时操作系统,通过研究其内核可以更好地理解嵌入式操作系统的实现原理.本文主要阐述FreeRTOS
    发表于 11-18 03:34 6627次阅读

    基于优先级调度嵌入式实时操作系统内核详解(下)

    基于优先级调度嵌入式实时操作系统内核详解(下)
    的头像 发表于 09-06 12:46 828次阅读
    基于<b class='flag-5'>优先级</b><b class='flag-5'>调度</b>的<b class='flag-5'>嵌入式</b><b class='flag-5'>实时</b><b class='flag-5'>操作系统</b>内核详解(下)