news 2026/5/1 6:47:28

5.3 互斥量(Mutex)与递归互斥量

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
5.3 互斥量(Mutex)与递归互斥量

5.3 互斥量(Mutex)与递归互斥量

5.3.1 互斥量的核心目标:安全的独占访问

在FreeRTOS多任务系统中,当两个或更多任务需要访问同一共享资源(如全局变量、静态数据结构、外设寄存器或非线程安全的库函数)时,必须进行同步以避免竞态条件。竞态条件指系统输出依赖于任务执行的相对时序,这种不确定性是嵌入式系统稳定性的重大威胁。互斥量正是为解决此问题而设计的核心同步原语。

互斥量的核心语义是提供对资源的互斥访问,即任一时刻只允许一个任务进入受保护的代码区域(临界区)。在形式上,互斥量可视为一个具有特殊所有权属性的二进制信号量:

  • 持有:任务成功获取(Take)互斥量后,称为该互斥量的持有者(Owner)。
  • 释放:只有持有者才能释放(Give)该互斥量。
  • 嵌套:标准互斥量不支持嵌套获取,即持有者再次尝试获取同一互斥量将导致死锁。

这种所有权模型是互斥量与普通二进制信号量的根本区别。二进制信号量是一个“事件”,任何任务都可以给予(Signal);而互斥量是一个“令牌”,其释放必须由获取它的任务执行。FreeRTOS通过记录互斥量持有者的任务句柄来强制执行此所有权规则。

5.3.2 优先级继承协议:应对优先级反转

1. 优先级反转问题
考虑一个由三个任务(优先级高H> 中M> 低L)和互斥量Mtx保护的共享资源组成的系统:

  1. L运行并成功获取Mtx,进入临界区。
  2. H就绪,抢占LH尝试获取Mtx,发现已被L持有,于是阻塞。
  3. M就绪(此时H被阻塞,L被挂起),因优先级高于LM开始运行。

此时,高优先级任务H的阻塞时间不仅包括L持有Mtx的时间,还被迫包括完全无关的中优先级任务M的执行时间。在最坏情况下,M(或更多中优先级任务)可能无限期运行,导致H永远无法运行。这种高优先级任务因资源被低优先级任务持有,而被中等优先级任务间接无限期阻塞的现象,称为无界优先级反转,它彻底破坏了实时系统的可调度性分析。

2. 优先级继承协议机制
FreeRTOS的互斥量通过实现优先级继承协议来解决此问题。当高优先级任务H因请求已被低优先级任务L持有的互斥量而阻塞时,内核会临时将任务L的优先级提升至与H相同。该协议的运行流程如下图所示:

内核/互斥量中优先级任务 M高优先级任务 H低优先级任务 L内核/互斥量中优先级任务 M高优先级任务 H低优先级任务 L
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 2:01:28

如何轻松实现微信聊天数据永久备份:完整高效导出指南

如何轻松实现微信聊天数据永久备份:完整高效导出指南 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChat…

作者头像 李华
网站建设 2026/4/8 12:27:23

学术文献处理实战:用OpenDataLab MinerU快速提取图表数据

学术文献处理实战:用OpenDataLab MinerU快速提取图表数据 1. 引言 1.1 学术文献处理的现实挑战 在科研工作中,大量时间被消耗在从PDF格式的学术论文中手动提取图表、公式和关键数据上。传统方法依赖人工阅读与复制粘贴,不仅效率低下&#…

作者头像 李华
网站建设 2026/4/27 13:34:36

OK-WW鸣潮自动化工具完整实战指南:从零开始掌握智能游戏辅助

OK-WW鸣潮自动化工具完整实战指南:从零开始掌握智能游戏辅助 【免费下载链接】ok-wuthering-waves 鸣潮 后台自动战斗 自动刷声骸上锁合成 自动肉鸽 Automation for Wuthering Waves 项目地址: https://gitcode.com/GitHub_Trending/ok/ok-wuthering-waves O…

作者头像 李华
网站建设 2026/4/25 3:04:54

AI感知技术教学实验室:30学生同时使用云端GPU的成本优化方案

AI感知技术教学实验室:30学生同时使用云端GPU的成本优化方案 在职业学校的AI教学实践中,如何让全班30名学生都能动手操作大模型和AI生成技术,又不导致预算爆表?这是很多一线教师面临的现实难题。传统的本地部署方式受限于硬件性能…

作者头像 李华
网站建设 2026/4/23 20:17:58

VibeThinker-1.5B对话系统:3步搭建属于你的Chatbot

VibeThinker-1.5B对话系统:3步搭建属于你的Chatbot 你是不是也遇到过这样的问题:店铺每天咨询量不小,但请一个专职客服成本高、管理难,自己又忙不过来?尤其是晚上或节假日,客户问一句“在吗”,…

作者头像 李华