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

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

3天内不再提示

RTOS实时操作系统怎么执行多任务的?

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 2020-03-03 13:49 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

很多朋友长时间使用裸机编程,切换过来学习RTOS,就对其中很多概念产生了误解。

1写在前面

大部分人开始学习RTOS实时操作系统时,对RTOS中的一些概念都不太理解。

一上来就是临界段、调度、信号量、互斥锁等这些概念,相信大部分都是是懵的。

我想说,不太懂这些概念很正常,一下子懂了,我倒反而觉得不正常。

2什么是多任务

这里大部分人应该都是从裸机阶段过来的,裸机系统一般也称之为单任务系统、轮询系统或前后台系统。

这个概念相信大家都能明白,轮询就是在一个大while循环里执行。前后台系统就是在执行while时,有中断(前台)响应的系统。

int main(void){/*初始化*/ while(1) {/*循环处理多项事情 */ }}

那么,什么是多任务呢?

当多任务操作系统使用某种任务调度策略允许两个或更多进程并发共享一个处理器时,事实上处理器在某一时刻只会给一件任务提供服务。

因为任务调度机制保证不同任务之间的切换速度十分迅速,因此给人多个任务同时运行的错觉。

---来自百度百科

初学者可以理解为:有类似上面的多个轮询系统。

如下代码,将大while中的多项事情,分为几个事情,分别处理。

void Task1(void){ /* 初始化 */ while(1) { /* 处理事情1 */ }} void Task2(void){ /* 初始化 */ while(1) { /* 处理事情2 */ }}

这里就要牵涉到各个任务之间的切换:任务调度。

3任务调度

说任务调度之前,先说一插曲:

我开始学RTOS时,觉得CPU这么短时间(1ms)在各个任务之间来回切换,而且切换还需要执行那么多代码,这样CPU还能执行多少代码啊?

其实,我当时太低估了处理器的能力。

STM32F103跑72M来说,1ms时间可以执行的代码有多少,你们心里有概念吗?

沿着这个问题,大家深思,其实都能明白,区区那切换(任务调度)的代码对于CPU速度来说,可以忽略(当然,这个相对)。

任务调度

任务调度可以分抢占调度和轮询调度。

在RTOS中,为了使任务得到实时响应,一般使用抢占调度方式,我们拿UCOS为例:

你会发现只程序执行过程中,如果有高优先级任务带来,高优先级任务就会打断低优先级任务。

直到高优先级任务执行完,低优先级任务才得到相应。

这里有人可能会问:如果高优先级一直,或者长时间执行可以吗?

答案是:NO

这里就关系到任务优先级分配,以及任务设计问题。

一般来说,高优先级任务是在等待一个事件的触发,执行一件紧急,而不会太耗时的事情。

太耗时任务一般留给低优先级任务,在系统不忙时慢慢处理。

调度过程

我们设置系统滴答为1ms时间,那么系统就会间隔1ms检查一次就绪任务中优先级更高的任务。

这个1ms滴答是由定时器中断产生,一般像在STM32由内核滴答定时器产生。

如上图,他在(2)的位置就检测到有更高优先级任务(7)就绪,此时就会跳转到任务(7)去执行。

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

    关注

    25

    文章

    863

    浏览量

    122637
  • 多任务
    +关注

    关注

    0

    文章

    18

    浏览量

    9300
  • 实时操作系统

    关注

    1

    文章

    206

    浏览量

    31819
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    什么是嵌入式操作系统

    、嵌入式操作系统的定义 嵌入式操作系统是专门为资源受限的嵌入式设备(比如 STM32 单片机、物联网模块、工业控制器)设计的微型操作系统,核心作用是:管理硬件资源、调度多任务、提供标
    发表于 12-09 10:33

    学习RTOS的意义?

    RTOS实现多任务管理。 嵌入式操作系统有众多的软件组件,可以极大的加速项目进度,避免重复造车轮。 2.技能需要 掌握操作系统,和基于RTOS
    发表于 11-27 08:16

    单片机的操作系统

    RTX ‌:ARM官方推荐,与CMSIS-RTOS标准兼容,支持时间片轮转调度,适合汽车电子等硬实时任务。 ‌ ‌ 都江堰操作系统(djyos) ‌:事件驱动型内核,适用于高并发场景。 ‌ 选择时需结合硬件资源(如CPU类
    发表于 11-14 06:18

    嵌入式实时操作系统的特点

    实时嵌入式操作系统(Real-Time Embedded Operating System)是专门设计用于嵌入式系统实时操作系统。嵌入式
    发表于 11-13 06:30

    如何选择合适的实时操作系统

    选择合适的实时操作系统RTOS,Real-Time Operating System)可能会影响你在不同行业的职业发展路径。
    的头像 发表于 09-09 14:47 837次阅读

    鸿道Intewell实时操作系统有哪些应用场景

    鸿道Intewell工业操作系统作为一款国产实时操作系统RTOS),在工业领域因其高实时性、高可靠性和强定制化能力,被广泛应用于对
    的头像 发表于 06-26 10:15 531次阅读

    零延迟响应:安卓工控机如何用实时操作系统RTOS)赋能工业控制

    操作系统),在硬实时调度、确定性执行、资源隔离等方面实现突破,为工业控制注入确定性响应能力。 一、硬实时调度:重塑工业控制的时间基准 RTOS
    的头像 发表于 06-09 15:49 865次阅读

    快速入门——LuatOS:sys库多任务管理实战攻略!

    的开发者,这里将用最简明的步骤,助你轻松实现多任务应用开发! sys库是LuatOS的核心系统调度库,它基于Lua协程机制实现了实时多任务调度、定时器管理以及消息通信等功能。 在详细介
    的头像 发表于 05-29 14:36 619次阅读
    快速入门——LuatOS:sys库<b class='flag-5'>多任务</b>管理实战攻略!

    揭秘LuatOS:实时操作系统RTOS核心库的关键技术剖析!

    电机控制、传感器采集等实时数据处理场景。 在LuatOS开发中, 用于实时操作系统RTOS)相关功能的核心库 ——提供了定时器管理、系统
    的头像 发表于 05-21 16:02 532次阅读
    揭秘LuatOS:<b class='flag-5'>实时</b><b class='flag-5'>操作系统</b><b class='flag-5'>RTOS</b>核心库的关键技术剖析!

    基于LuatOS核心库的实时操作系统开发:从理论到实践~

    ,降低了系统阻塞风险。 在LuatOS开发中,用于实时操作系统RTOS)相关功能的核心库——提供了定时器管理、系统控制、内存监控、路径配置
    的头像 发表于 05-16 13:56 420次阅读
    基于LuatOS核心库的<b class='flag-5'>实时</b><b class='flag-5'>操作系统</b>开发:从理论到实践~

    什么样的才叫实时工业操作系统

    实时工业操作系统的核心是在严格时间约束下保证任务执行的确定性、可靠性和安全性,通常需通过专用架构、实时调度算法和工业级认证来满足严苛的工业环
    的头像 发表于 04-17 10:09 570次阅读
    什么样的才叫<b class='flag-5'>实时</b>工业<b class='flag-5'>操作系统</b>

    实时操作系统RTOS选型指南及实例分析

    鸿道Intewell操作系统是由科东软件自主研发的新型工业操作系统,历经30多年研发积累,采用微内核架构和自主研发的Hypervisor虚拟化技术,保证系统实时性、高可靠性。鸿道In
    的头像 发表于 02-27 15:21 1045次阅读

    ARM嵌入式实时操作系统比较

    在嵌入式系统领域,实时操作系统RTOS)是确保任务按时完成的关键技术。ARM架构因其低功耗、高性能的特点,在嵌入式
    的头像 发表于 12-28 09:15 2482次阅读

    使用任务通知提高RTOS应用的效率

    实时嵌入式系统中,性能和资源效率是决定设计成败的关键因素。传统的实时操作系统RTOS)提供了如队列、信号量和事件组机制,实现
    的头像 发表于 12-27 14:54 1088次阅读

    鸿道Intewell操作系统的Windows实时拓展方案

    鸿道Intewell操作系统的Windows实时拓展方案,即鸿道Intewell-Win构型,是一款专为工业控制领域设计的国产操作系统,支持Windows实时扩展,具备以下特点和优势:
    的头像 发表于 12-24 17:40 851次阅读
    鸿道Intewell<b class='flag-5'>操作系统</b>的Windows<b class='flag-5'>实时</b>拓展方案