FreeRTOS学习笔记—④RTOS通信管理篇/同步互斥与通信(正在更新中)

news2024/11/13 18:39:02

二、RTOS的核心功能

  RTOS的核心功能块主要分为任务管理、内核管理、时间管理以及通信管理4部分,框架图如下所示:
  (1)任务管理:负责管理和调度任务的执行,确保系统中的任务能够按照预期运行。
  (2)内核管理:负责系统核心功能的管理,包括内存、中断、异常处理和系统启动等。
  (3)时间管理:负责所有与时间相关的操作,包括系统时钟、定时器、任务延迟和周期性任务的执行。
  (4)通信管理:提供任务之间的通信机制,确保任务能够有效地协作和共享资源。
在这里插入图片描述

2.3 通信管理

  RTOS的通信管理部分主要由同步互斥与通信构成。其中同步与互斥主要用于解决任务间的时间协调和共享资源保护的问题,而通信机制负责在任务间传递数据。因此两者通常结合使用来确保多任务在并发环境下的正确性和高效性。
  (1)同步:指的是多任务在执行的时候,某些步骤需要按照一定顺序进行,通过这种同步机制来确保多个任务之间能够协同工作,避免竞争条件。eg.比如说任务A需要等待任务B完成某个操作后再执行。
  (2)互斥:指的是用于防止多个任务同时访问一个共享资源,相比同步来说好理解些。
  (3)通信:指的是任务之间交换数据或信息的机制。通常用于多个任务间传递消息或数据来实现更复杂的任务协调。
  其中典型的同步与互斥机制包括信号量、互斥量(mutex)、事件组等;通信机制通常包括队列、任务通知等。在某些情况下,事件组也可以承担简单的任务间通信功能。这些其实也能说是同步与互斥的内核方法。
  信号量、互斥量(mutex)、事件组、队列、任务通知这些内核方法的操作都是:获取/释放、阻塞/唤醒、超时等,如下:
   ① A获取资源,用完后释放资源;
   ② A获取不到资源会进入阻塞,当B释放资源后把A唤醒让A来获取资源;
   ③ A获取不到资源会进入阻塞状态,可以定个闹钟来规定任务A等待的最大等待时长Tmax。如果A等待的时间超过了Tmax(即超时),那么会超时返回一个超时错误或继续执行其他任务。另一种情况则是在Tmax内B把资源释放了,即使A未超时也会被立刻唤醒,从阻塞状态恢复执行。
   下图为这几种方法的对比以及示意图,摘自韦东山老师的FreeRTOS手册:
在这里插入图片描述
在这里插入图片描述

2.3.1 队列

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2111459.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

信息学奥赛初赛天天练-84-NOIP2014普及组-基础题3-总线、存储器、邮件协议、二叉树、满二叉树、顶点的度、无向图、有向图

信息学奥赛初赛天天练-84-NOIP2014普及组-基础题3-总线、存储器、邮件协议、二叉树、满二叉树、顶点的度、无向图、有向图 PDF文档公众号回复关键字:20240906 1 NOIP 2014 普及组 基础题3 6 CPU、存储器、I/O 设备是通过( )连接起来的 A 接口 B 总线 C 控制线 D 系统文件 7 …

集成电路学习:什么是ROM只读存储器

ROM:只读存储器 ROM(Read-Only Memory,只读存储器)是一种重要的计算机存储设备,具有独特的特点和应用场景。以下是对ROM的详细解析: 一、ROM的定义与特点 ROM是一种只能读出事先所存数据的固态半导体存储器…

【系统架构设计师-2021年】综合知识-答案及详解

文章目录 【第1题】【第2题】【第3题】【第4题】【第5题】【第6~7题】【第8题】【第9题】【第10题】【第11题】【第12题】【第13题】【第14题】【第15题】【第16题】【第17题】【第18题】【第19题】【第20题】【第21题】【第22题】【第23题】【第24题】【第25题】【第26题】【第…

计算机基础知识-2

AT&T汇编和Intel汇编的区别 每取出完一条指令,PC会自动+"1",指向下一条要被执行的指令。这里的1是指下一条指令,但是指令本身可能占用多个字节,所以地址可能不是以1叠加 当前执行的是108地址的指令&…

APS开源源码解读: 排程工具 optaplanner

抽象层次非常好,广义优化工具。用于排产没有复杂的落地示例 https://github.com/apache/incubator-kie-optaplanner/blob/main/optaplanner-examples/src/main/java/org/optaplanner/examples/projectjobscheduling/app/ProjectJobSchedulingApp.javahttps://github…

亿佰特-NT1/NT1-B串口转RJ45以太网模块

亿佰特-NT1/NT1-B串口转RJ45以太网模块 模块概要连接方式配置模块亿佰特网络配置助手配置模块网页版配置模块 串口以太网双向数据收发AT模式配置模块 模块概要 亿佰特官网 https://www.ebyte.com/ 模块概要: 接口方式:TTL串口RJ45工作电压&#xff1a…

黑神话悟空红孩儿怎么打 妖王红孩儿攻略

​在《黑神话悟空》中,红孩儿作为IP里的经典BOSS,是一位相当顽皮的BOSS。接下来小编给大家带来了黑神话悟空红孩儿怎么打的攻略,一起来看看吧。 一、BOSS位置 随着主线流程的推进自然解锁。 二、BOSS打法 1、优先强化【身外身法】与【变身…

算法训练营——day3长度最小子数组

1 长度最小子数组-力扣209(中等) 1.1 题目: 长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl1, ..., numsr-1, numsr] ,并返…

springboot+vue+mybatis计算机毕业设计积分商城管理系统+PPT+论文+讲解+售后

近年来互联网络的迅猛发展和电子终端设备的普及,赋予了各行业充足的发展空间。积分商城管理系统相比于传统信息技术,时效性是它最大的特色,已经在电子娱乐、经济等中发挥着举足轻重的作用。2019年疫情的爆发,更是短时间内迅速扩大…

Spring之Bean的生命周期 2024-9-6 19:47

目录 什么是Bean的生命周期为什么要知道Bean的生命周期Bean的生命周期之5步Bean生命周期之7步Bean生命周期之10步 声明:本章博客内容采自老杜2022spring6 语雀文档 什么是Bean的生命周期 Spring其实就是一个管理Bean对象的工厂。它负责对象的创建,对象的…

据说这是一个能让AI自动升级的超级提示词,我试一试效果咋样

本文背景 前阵子我在某个地方看到个超离谱的 Prompt,把我和几百万网友都给整懵了。 说真的,好久没见过这么抽象的 Prompt 了。 这玩意儿在那地方火得不行,才发没两天就有一百多万浏览量。 还有个只有两个 Markdown 文件的 GitHub 项目&#x…

python中 if __name__ == “__main__“的代码没被执行

运行pytest 和unittest时,if name “main”: 下的代码没有被执行,发现__name__等于模块名 一、“name” 的作用 1、 __name__是python的一个内置类属性,它天生就存在于一个 python 程序中。 2、直接运行python程序时,__name__的…

Elastic Stack--ES集群加密及Kibana的RBAC实战

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 学习B站博主教程笔记: 最新版适合自学的ElasticStack全套视频(Elk零基础入门到精通教程)Linux运维必备—Elastic…

基于Java+SpringBoot+Vue+MySQL的社区医疗服务管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 基于SpringBootVue的可视化社区医疗服务管理系统【附源码文…

二级菜单的两种思路(完成部分)

第一种 <el-form ref"formRef" :model"form" :rules"rules" label-width"120px"><el-form-item label"类型" prop"type"><el-select v-model"form.type" placeholder"请选择类型&q…

【Python · Pytorch】配置cuda环境 cuDNN库

【Python Pytorch】配置cuda环境 & cuDNN库 1. 查找对应版本1.1 查看Pytorch GPU目前支持版本1.1 查看Nvidia驱动版本1.2 查看支持cuda版本1.3 查看支持cuDNN版本1.3.1 cuDNN 9.0.0及以上版本1.3.2 cuDNN 9.0.0以下版本 1.4 安装版本确定 2. 安装cuda环境2.1 cuda简介2.1.…

时装爱好者的网页购物天堂:Spring Boot技术探索

第2章相关技术 2.1 B/S架构 B/S结构的特点也非常多&#xff0c;例如在很多浏览器中都可以做出信号请求。并且可以适当的减轻用户的工作量&#xff0c;通过对客户端安装或者是配置少量的运行软件就能够逐步减少用户的工作量&#xff0c;这些功能的操作主要是由服务器来进行控制的…

基于yolov8的西红柿检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv8的西红柿检测系统是一种利用深度学习技术的创新应用&#xff0c;旨在通过自动化和智能化手段提高西红柿成熟度检测的准确性和效率。该系统采用YOLOv8算法&#xff0c;该算法是深度学习领域中的先进目标检测模型&#xff0c;具备实时检测和多目标识别的…

基于vue框架的车辆理赔系统5vzcd(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;用户,员工,保险信息,保单信息,申请理赔,事故调查,赔偿金发放 开题报告内容 基于Vue框架的车辆理赔系统开题报告 一、项目背景与意义 随着汽车保有量的持续增长&#xff0c;车辆事故频发&#xff0c;车辆保险理赔成为保险公司和车主共…

机器学习和物联网驱动技术在加工过程中监测工具磨损:一项全面的综述

这篇论文的标题是《Machine-Learning and Internet-of-Things-Driven Techniques for Monitoring Tool Wear in Machining Process: A Comprehensive Review》&#xff0c;由 Sudhan Kasiviswanathan、Sakthivel Gnanasekaran、Mohanraj Thangamuthu 和 Jegadeeshwaran Rakkiya…