互斥量理论基础

embedded/2024/9/23 9:41:24/

文章目录

  • 一、互斥量理论基础


一、互斥量理论基础

在多任务系统中,任务A正在使用某个资源,还没用完的情况下任务B也来使用的话,就会出问题。这时就需要互斥量(互斥锁),使用过程如下:

  1. 互斥量初始值为1,任务A想访问临界资源,先获得并占有互斥量,然后开始访问
  2. 任务B也想访问临界资源,也要先获得互斥量:被别人占有了,于是阻塞
  3. 任务A使用完毕,释放互斥量;任务B被唤醒、得到并占有互斥量,然后开始访问临界资源 任务B使用完毕,释放互斥量

概念:谁上锁,谁解锁(程序员自觉)。

1、优先级反转:

  1. 假设任务A、B、C都想使用串口,优先级A<B<C
  2. 任务A获得了串口的互斥量
  3. 任务C也想使用串口,它将会阻塞、等待A释放互斥量
  4. 高优先级的任务,被低优先级的任务延迟,这被称为"优先级反转"

2、优先级继承:

  1. 接上面优先级反转,假设持有互斥锁的是任务A,如果更高优先级的任务B也尝试获得这个锁
  2. 那任务A可以继承任务B的优先级,等待任务A释放互斥锁就可以恢复他的低优先级
  3. 任务B也就可以持有锁,互斥锁内部就实现了优先级的提升、恢复

3、递归锁:
谁持有,谁释放(默认)
在持有锁的过程中还可以再次上锁,"take"了N次,要"give"N次,这个锁才会被释放


http://www.ppmy.cn/embedded/35817.html

相关文章

3.栈和队列(汇总版)

目录 1.栈&#xff08;一端插和删&#xff09; 2.队列&#xff08;一端插另一段删&#xff09; 2.1队列的概念及结构 2.2 队列的实现 队列的接口 1.初始化队列 2.销毁队列 3.插入元素 4.出队列&#xff08;头删&#xff09; 5.访问对头 6.访问队尾 7.判断队列是否为…

智慧校园整体解决方案

智慧校园囊括了校园事务的各个方面&#xff0c;同时&#xff0c;智慧校园又是所有相关子系统的数据输出与枢纽。可以看出&#xff0c;智慧校园是一个大而全的系统。鉴于此&#xff0c;智慧校园的模块众多&#xff0c;本文将智慧校园的所有模块做出大致梳理&#xff0c;以完整支…

如何8步完成hadoop单机安装

前言 Hadoop是一个开源框架&#xff0c;用于存储和处理大规模数据集。 系统要求 Ubuntu 20.044GB&#xff08;建议8GB&#xff09;hadoop-3.3.6 步骤1&#xff1a;更新系统 打开终端并输入以下命令来更新您的系统&#xff1a; apt update 步骤2&#xff1a;安装Java Had…

AcWing 827. 双链表——算法基础课题解

AcWing 827. 双链表 题目描述 实现一个双链表&#xff0c;双链表初始为空&#xff0c;支持 5 种操作&#xff1a; 在最左侧插入一个数&#xff1b;在最右侧插入一个数&#xff1b;将第 k 个插入的数删除&#xff1b;在第 k 个插入的数左侧插入一个数&#xff1b;在第 k 个插…

【学习笔记】软件工程概述

简介 程序是人们为了完成特定的功能编制的一组指令集&#xff0c;它由计算机的语言描述&#xff0c;并且能在计算机系统上执行。而软件不仅包括程序&#xff0c;还包括程序的处理对象——数据&#xff0c;以及与程序开发、维护和使用相关的图文资料。 软件有以下几个特点&…

ubuntu 安装单节点HBase

下载HBase mkdir -p /home/ellis/HBase/ cd /home/ellis/HBase/ wget https://downloads.apache.org/hbase/2.5.8/hbase-2.5.8-bin.tar.gz tar -xvf hbase-2.5.8-bin.tar.gz安装java jdk sudo apt install openjdk-11-jdksudo vim /etc/profileexport JAVA_HOME/usr/lib/jvm/…

机器学习笔记-02

sklearn转换器和估计器(estimator) 1.转换器 - 特征工程的父类 实例化&#xff08;实例化是一个转换器类&#xff08;Transform&#xff09;&#xff09; 调用fit_transform 标准化 (x - mean) / std fit_transform() fit() 计算每一列的平均值、标准差 transform() (x - mean)…

《Video Mamba Suite》论文笔记(4)Mamba在时空建模中的作用

原文翻译 4.4 Mamba for Spatial-Temporal Modeling Tasks and datasets.最后&#xff0c;我们评估了 Mamba 的时空建模能力。与之前的小节类似&#xff0c;我们在 Epic-Kitchens-100 数据集 [13] 上评估模型在zero-shot多实例检索中的性能。 Baseline and competitor.ViViT…