十六、FreeRTOS中如何实现互斥访问
创始人
2025-05-31 17:54:29
0

文章目录

  • 1、多任务系统中为什么要引入互斥?
  • 2、如何实现互斥访问的
  • 3、需要互斥访问内核对象

1、多任务系统中为什么要引入互斥?

首先我们假定这样的一个场景:
在多任务系统中,如果同时在两个任务中可以改变一个变量的值的时候,会发生某些错误操作,如A=1,在任务1中变量A的值加1,但还没有改变成功,只进行了一半被任务2打断了,任务2也是对变量A加1,执行完任务2后A=1;接着恢复刚被打断的任务1现场,执行任务1后A还是等于1,此时明显出现错误了,具体理解如下图:
在这里插入图片描述
从上面的例子很明显可以知道对于一些共享的资源,如何不使用互斥的话容易导致出现不可预料的错误。

2、如何实现互斥访问的

通过前一点的了解可以得出,实现互斥访问,即在某时间段内进行资源的独享。即是前面说到的临界资源的访问。
一般是通过开关中断来进行实现互斥访问的。

3、需要互斥访问内核对象

在下图中的5个内核对象,在对其进行读写的时候一般是需要进行互斥访问的。
在这里插入图片描述

相关内容

热门资讯

A股玻尿酸巨头出手!2700字... 医美龙头巨子生物“成分争议”风波持续发酵。日前,美妆博主大嘴博士(香港大学化学博士郝宇)发文,质疑巨...
计算机组成原理实验1---运算...     本实验为哈尔滨工业大学计算机组成原理实验,实验内容均为个人完成,...
3 ROS1通讯编程提高(1) 3 ROS1通讯编程提高3.1 使用VS Code编译ROS13.1.1 VS Code的安装和配置...
前端-session、jwt 目录:   (1)session (2&#x...
前端学习第三阶段-第4章 jQ... 4-1 jQuery介绍及常用API导读 01-jQuery入门导读 02-JavaScri...
EL表达式JSTL标签库 EL表达式     EL:Expression Language 表达式语言     ...
数字温湿度传感器DHT11模块... 模块实例https://blog.csdn.net/qq_38393591/article/deta...
【内网安全】 隧道搭建穿透上线... 文章目录内网穿透-Ngrok-入门-上线1、服务端配置:2、客户端连接服务端ÿ...
【Spring Cloud A... 文章目录前言Metadata元数据ClassMetadataSpring中常见的一些元注解Nacos...
React篇-关于React的... 一.简介1.介绍用于构建用户界面的 JavaScript 库2.创建项目(1)手动创建Documen...
win7 Pro 英文版添加中... win7pro x64英文版添加中文语言包1、下载语言包,并解压成lp.cab,复制到...
Android开发-Andro... 01  Android UI 1.1  UI 用户界面(User Interface,...
基于springboot教师人... 基于springboot教师人事档案管理系统【源码+论文】 开发语言:Jav...
编写软件界面的方式 本文重点解决如下问题:编写软件的界面有哪几种方式?通常情形下࿰...
keil调试专题篇 调试的前提是需要连接调试器比如STLINK。 然后点击菜单或者快捷图标均可进入调试模式。 如果前面...
GO语言小锤硬磕十三、数组与切... 数组用来保存一组相同类型的数据,go语言数组也分一维数组和多维数组。 直接上代码看一下...
三级数据库备考--数据库应用系... 1.数据库应用系统设计包括概念设计、逻辑设计、物理设计3个步骤,每个步骤的设计活动按照...
prometheus数据持久化... https://segmentfault.com/a/1190000015710814 promet...
孩子用什么样的灯对眼睛没有伤害... 现代社会高速发展,越来越多的人开始重视身体健康,尤其是很多家长ÿ...
微软Bing GPT支持AI绘... 我想要一张图片:大象、珊瑚、火山、云朵我想要一张图片:亚特兰蒂斯...