RTOS笔记--资源管理

资源管理

        资源管理,其实就是前面介绍过的通知方式中的队列信号量互斥量等是如何访问临界资源的,如何做到完全互斥。

        在之前举过一个例子:当我们使用全局变量来进行互斥操作时,有可能在改写全局变量时被切换使得不再互斥,这个过程如下图:

在进行bCanuse--的操作时需要分为三步:1.将原值存入寄存器  2.改写寄存器值  3.将寄存器值写入变量中,如果在执行第一步后立刻切换就会导致失去互斥性,而互斥量的实现的最大问题就是如何防止错误的切换。

那么互斥量如何保证互斥访问的呢?总的而言其实也就是两个方法:当有其他任务要 争夺运行权时就关闭调度器防止切换,有其他中断抢夺时就保存现场并关闭中断,结束后恢复现场并开启中断。

对于队列、信号量/互斥量和任务通知来说,根据调用位置的不同分别关闭中断或调度器但是对于时间组来说只需要关闭调度器即可,因为在中断中调用写事件组函数时他的操作为先写timer队列唤醒timertask任务,在任务中写事件组,所以实际上还是调用任务,无需中断

屏蔽中断

暂停调度器

/* 暂停调度器 
*在此函数中使得一个变量--
*在调度器中每次切换时会判断这个变量
*/void vTaskSuspendAll( void );/* 恢复调度器
* 返回值: pdTRUE 表示在暂定期间有更高优先级的任务就绪了
* 可以不理会这个返回值
*/
BaseType_t xTaskResumeAll( void );

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

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

相关文章

【SpringBoot】深入分析 SpringApplication 源码:彻底理解 SpringBoot 启动流程

在黄昏的余晖里,梦境渐浓,如烟如雾。心随星辰,徜徉远方,岁月静好,愿如此刻般绵长。 文章目录 前言一、SpringBoot 应用二、SpringApplication2.1 SpringApplication 中的属性2.2 SpringApplication 的构造器2.3 Sprin…

【Linux】基础IO——文件描述符,重定向,FILE

话接上篇: 1.文件描述符fd 磁盘文件 VS 内存文件? 当文件存储在磁盘当中时,我们将其称之为磁盘文件,而当磁盘文件被加载到内存当中后,我们将加载到内存当中的文件称之为内存文件。磁盘文件和内存文件之间的关系就像程…

JVM 三色标记算法

三色标记算法核心原理 三色标记算法是一种JVM的垃圾标记算法,CMS/G1垃圾回收器就是使用的这种算法,它可以让JVM在不发生或者尽可能短的发生STW(Stop The World)的情况下进行垃圾的标记和清除。 顾名思义,三色标记算法…

实现JWT认证与授权的Spring Boot项目详解

我们将详细介绍如何使用JWT(JSON Web Tokens)结合Spring Boot框架实现用户认证和授权系统。此方案将包括用户注册、登录以及通过JWT令牌进行后续请求的身份验证过程。我们将从引入必要的依赖开始,然后逐步构建项目的各个部分,包括…

精品丨PowerBI迁移到SSAS

业务场景: 企业初期在进行 BI 可视化路线的时候,往往不会选择方案较为完整的SSAS,而是会选择轻量的 PowerBI 方案,究其根本还是软件成本的问题。 但是随着模型越来越臃肿,维护成本越来越高,有很多模型需要进…

Java面向对象-抽象类和抽象方法

Java面向对象-抽象类和抽象方法 1、代码案例展示2、抽象类和抽象方法的关系: 1、代码案例展示 1、在一个类中会有一类方法,无需重写,直接使用 2、在一个类中会有一类方法,会对这个方法进行重写 3、一个方法的方法体去掉&#xff…

【文心智能体分享】日记周报助手

引言 在繁忙的实习生活中,你是否曾为如何整理日常的工作日志、周报、月报而烦恼?现在,我们为你带来了一个全新的智能体——“日记周报助手”,它将成为你实习过程中的得力助手,帮你轻松整理实习日志,让你的…

mysql 中的锁

一.锁的介绍 锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中,除了传统的计算资源(cpu,ram,i/o)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性…

初见 Rollup 的十大常见问题

文章目录 初见 Rollup 的十大常见问题1. 超神奇的 Rollup 英文解释!2. 为什么 ESM 要比 CommonJS 要好呢?3. 什么是 tree-shaking ?4. 如何使用 Rollup 处理 CommonJS?5. 为什么 node-resolve 不是一个内置功能?6. 为什么在进行代…

如何警用root用户登录ssh

使用tail指令,可以动态查看日志信息。 (tail -f /var/log/secure或messages) 使用>符号,可以清空日志内容,不删除文件本身。 禁用root用户为以下步骤: 首先使用useradd创建用户(可以修改为其…

STM32HAL-最简单的时间片论法

目录 概述 一、开发环境 二、STM32CubeMx配置 三、编码 四、运行结果 五、总结 概述 本文章使用最简单的写法时间片论法框架,非常适合移植各类型单片机,特别是资源少的芯片上。接下来将在stm32单片机上实现,只需占用1个定时器作为tick即可。(按键框架+时间片论法)…

【数据结构之B树的讲解】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

【乐吾乐2D可视化组态编辑器】开关、阀门、报警状态切换

开关状态 开关的断开与闭合:将电力组件的“开”与“关”2个组件重叠在一起,右键选择“组合为状态”,属性面板中就可以任意切换状态。 视频教程:开关阀门多状态控制 乐吾乐2D可视化组态编辑器地址:https://2d.le5le.co…

【python】python指南(三):使用正则表达式re提取文本中的http链接

一、引言 对于算法工程师来说,语言从来都不是关键,关键是快速学习以及解决问题的能力。大学的时候参加ACM/ICPC一直使用的是C语言,实习的时候做一个算法策略后台用的是php,毕业后做策略算法开发,因为要用spark&#x…

js编程环境配置-vscode

1、安装Node.js 官网下载 选择适合你Windows系统架构(32位或64位)的安装包。windows系统选择“Windows Installer (.msi)”或“Windows Binary (.exe)”进行下载。 双击下载的.msi或.exe文件进行安装。 在cmd中输入node --version和npm --version&…

2-4 基于matlab的洛伦兹系统分岔图实现

基于matlab的洛伦兹系统分岔图实现。通过2种方法,最大值法,庞加莱截面法进行输出分岔图。可直接运行。 2-4 洛伦兹系统分岔图 最大值法 - 小红书 (xiaohongshu.com)

如何平衡安全访问和办公效率?零信任安全×统一身份才是解决之道

在远程办公、混合办公、跨团队协作日益频繁的今天,企业的业务开展需要支持多种访问接入的需求和场景。如何平衡企业数据的安全访问和办公效率将成为挑战。 在业务的多种接入场景上,企业引入零信任(Zero Trust,ZT)产品…

ESP-IDF OTA升级过程中遇到的“esp_transport_read returned:-1 and errno:128”问题(4)

接前一篇文章:ESP-IDF OTA升级过程中遇到的“esp_transport_read returned:-1 and errno:128”问题(3) 上一回讲到,笔者准备第二天围绕信号强度展开进一步测试。实际上没等到第二天,笔者在当天下午下班时间(18点)以后就进行了相关测试(不过测试倒并不是完全针对于信号强…

手机是如何实现多个应用程序同时运行的?

想要理解这个问题,我们要先了解一下操作系统以及进程相关的知识: 操作系统的功能有很多, 例如: 进程管理(Process Management): 功能:创建和终止进程,进程调度&#xf…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 连续区间和(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 📎在线评测链接 连续区间和(100分) 🌍 评测功能需要订阅专栏后私信联系清隆…