首页 > 其他分享 >信号量机制

信号量机制

时间:2024-11-08 09:19:36浏览次数:2  
标签:signal 信号量 原语 整型 操作 机制 wait

信号量机制

1965年由荷兰学者 Dijkstra 提出

image


一、概念

用户进程可以通过使用操作系统提供的一对原语来对信号量进行操作,从而很方便的实现了进程互斥、进程同步。

信号量甚实就是一个变量(可以是一个整数,也可以是更复杂的(数据结构)记录型变量),可以用一个信号量来表示系统中某种资源的数量,比如:系统中只有一台打印机,就可以设置一个初值为 1 的信号量。

一对原语:

可以把原语理解为我们自己写的函数,函数名分别为 wait 和 signal, 括号里的信号量 S 其实就是函数调用时传入的一个参数。wait 、 signal 原语常简称为 P、V 操作(来自荷兰语 proberen 和 verhogen )。因此,做题的时候常把 wait(s) 、signal(S) 两个操作分别写为 P(S) 、 V(S)

  • wait(S) 原语 (P 操作):检查资源情况并占用一个资源
  • signal(S) 原语 (V 操作):释放产生一个资源

注:以下两种信号量的相关代码仅为伪代码逻辑实现,实际不算特别严谨(原子性等相关方面)

二、整型信号量

重点: 仍然不满足“让权等待”原则(有while存在,会发生“忙等”)

image

三、记录型信号量

重点: 解决了“忙等”问题,使用比整型复杂的数据结构

image

简单使用案例:

image

标签:signal,信号量,原语,整型,操作,机制,wait
From: https://www.cnblogs.com/Wind730/p/18534453/signal-mechanism-z1lcqwk

相关文章

  • 信号量实现进程互斥、同步、前驱关系
    信号量实现进程互斥、同步、前驱关系‍​​‍​​​P、V操作必须成对出现。缺少P(mutex)就不能保证临界资源的互斥访问。缺少V(mutex)会导致资源永不被释放,等待进程永不被唤醒。‍一、实现进程互斥注:下图中的第一行对信号量的初始化只是简化写法,并不严格遵循结构体......
  • glibc 内存分配与释放机制详解
    作者:来自vivo互联网存储团队-WangYuzhi本文以一次线上故障为基础介绍了使用glibc进行内存管理可能碰到问题,进而对库中内存分配与释放机制进行分析,最后提供了相应问题的解决方案。一、引言内存对象的分配与释放一直是后端开发人员代码设计中需要考虑的问题,考虑不周极易......
  • 深入理解 TCP 的握手与挥手机制:为何握手 3 次,挥手 4 次?
    在网络通信的世界里,TCP(TransmissionControlProtocol,传输控制协议)是一种非常重要的协议,它确保了数据在网络中的可靠传输。而TCP的连接建立(握手)和连接断开(挥手)过程有着特定的步骤和逻辑,其中握手需要3次,挥手需要4次,这背后蕴含着深刻的原理。一、TCP握手的3次过程及......
  • 【YOLOv11改进 - 注意力机制】EMA(Efficient Multi-Scale Attention):基于跨空间学习的高
    介绍摘要通道或空间注意力机制在许多计算机视觉任务中表现出显著的效果,可以生成更清晰的特征表示。然而,通过通道维度缩减来建模跨通道关系可能会对提取深度视觉表示带来副作用。本文提出了一种新颖高效的多尺度注意力(EMA)模块。该模块着重于保留每个通道的信息并减少计算开销,我......
  • RMQ异步通信处理机制
                          场景再现    在一个微服务架构的商城系统中有两个服务:下单服务和库存服务。当我们进行下单的时候,此时会调用库存服务,进行库存的扣减。这种服务间的调用/通信我们之前是用FeignClient以接口式的请求......
  • 2024 nature| 基于motif(模体)的药物相互作用预测——采用局部和全局自注意力机制
    【声明:本文是采用模体结构和注意力机制进药物作用预测,抽象到理论可以看作在复杂网络上进行模体和结构的链路预测。文章出处如下】论文出处:https://www.nature.com/articles/s42256-024-00888-61.摘要:药物-药物相互作用(DDIs)是制药研究和临床应用中的重要问题,因为它们可能......
  • 【Java深度揭秘】掌握SPI机制,让你的代码设计更优雅!
    SPI(ServiceProviderInterface)机制是Java中一种服务发现和加载的机制,它允许第三方为应用程序提供实现。SPI机制广泛应用于Java标准库以及各种框架中,如JDBC、JNDI等。SPI机制的基本概念接口定义:首先定义一个接口,这个接口规定了服务提供者需要实现的方法。配置文件:在META-INF/......
  • 【Java开发者必看】揭秘Java访问磁盘文件机制,让你的代码效率翻倍!
    在Java中,访问磁盘文件通常使用java.io包中的类。这些类提供了多种方式来读取和写入文件。以下是一些常用的类及其用法:1. FileReader和FileWriter解释:FileReader用于读取字符文件。FileWriter用于写入字符文件。示例代码:importjava.io.FileReader;importjava.io.File......
  • 操作系统的运行机制
    操作系统的运行机制‍​​‍一、内核程序与应用程序​​‍二、特权指令与非特权指令特权指令,如内存清零指令等。非特权指令,如加法指令、减法指令等。CPU设计和生产的时候就划分了特权指令和非特权指令,因此CPU执行一条指令前就能判断出其类型。‍三、内核态与用户......
  • 结合创新,小波变换+注意力机制竟能实现100%分类准确率
    2024深度学习发论文&模型涨点之——小波变换+注意力机制小波变换是一种先进的信号分析技术,它擅长捕捉信号的局部特征,但有时可能会忽略数据中的关键信息。为了克服这一局限,我们引入了注意力机制,这一机制能够强化模型对数据重要部分的关注。通过将小波变换与注意力机制相结合,我......