Linux通信--构建进程通信System-V 消息队列|信号量

news2024/11/26 0:47:18

文章目录

目录

一、消息队列

二、信号量

1.互斥

2.信号量



一、消息队列

  • 消息队列提供了从一个进程向另一个进程发送数据块的方法
  • 每个数据块都被认为是有一个类型,接收者进程接收的数据块可以有不同的类型值
  • IPC资源必须删除,不会随进程自动清楚,声明周期随内核
  • 比如进程A,B,A向B发送信号,编码为2,2信号放入消息队列中,B根据编码去找对应的数据块

二、信号量

信号量主要是用于同步和互斥的。

1.互斥

被任意一个进程可以看到的资源称为公共资源。但是有些资源需要互斥使用,比如一个进程读,一个进程写,还没写完就不允许读。所以各个进程需要竞争使用这些资源。

互斥的机制是:任何一个时刻,只允许一个执行流去访问公共资源(可以通过加锁的方式)

  • 系统中某些资源在一个时刻只允许一个执行流使用,这样的资源称为临界资源或者互斥资源

  • 在进程中访问临界资源的程序段叫做临界区
  • 原子性:只有两种确定的状态 0/1

2.信号量

信号量本质就是一个计数器(int count) ,用来描述资源的数量。信号量类似于看电影买票,就是一种预定机制,买票成功后座位锁定。执行流想要访问临界资源中的一个子资源(临界区中有很多临界资源),进入临界区之前,首先要申请信号量(进程申请信号量),退出临界区,释放信号量。

if(count > 0)
{
    //...执行
}

else
{
    //...挂起
}

所以,所有的进程都首先要看到信号量,信号量就是共享资源。

如果count = 1,就称为二元信号量,完成了互斥的功能。


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

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

相关文章

软件系统测试的类型和方法有哪些?

在软件开发过程中,系统测试是至关重要的一步,它可以帮助客户确保软件系统的质量和稳定性。本文将从多个角度出发,详细描述软件系统测试的类型和方法。 一、软件系统测试的类型 1、静态测试:在软件开发的早期阶段,通过…

Apollo配置中心介绍

更多内容参看官网文档:https://www.apolloconfig.com/#/zh/README 架构设计 Config Service和Admin Service都是多实例、无状态部署,所以需要将自己注册到Eureka中并保持心跳在Eureka之上我们架了一层Meta Server用于封装Eureka的服务发现接口Client通过…

Python基础算法——反转链表

视频详解:https://www.bilibili.com/video/BV1sd4y1x7KN/?spm_id_from333.788&vd_source11069f01f7471094186b646e3a184ca3 一、反转链表 LeetCode 206题:https://leetcode.cn/problems/reverse-linked-list/description/ 给你单链表的头节点 h…

lab11 net

background 在开始写代码之前,回顾一下xv6book的第五章会有帮助你将使用E1000去处理网络通信 E1000会和qemu模拟的lan通信在qemu模拟的lan中 xv6的地址是10.0.2.15qemu模拟的计算机的地址是10.0.2.2 qemu会将所有的网络包都记录在packets.pcap中文件kernel/e1000.…

【CSS左右上角斜标签】CSS实现左右上角飘带功能,左右上角斜标签(附源码)

文章目录 写在前面涉及知识点实现效果1、实现过程1.1左上角飘带Html代码Css代码效果 1.2右上角飘带Html代码Css代码效果 2、源码分享2.1 百度网盘2.2 123网盘2.3 邮箱留言 总结 写在前面 其实在公司页面开发过程就遇到过,需要在方块右上角展示一个斜的文字或者告警…

gitee上传本地项目bug

🤮这个破bug不知道浪费了多长时间,以前没有记录,每次都忘记,这次记下来 问题描述 gitee创建仓库,然后根据它提示的如下命令,但一直报错 原因分析: 把命令复制出来,粘贴到Sublime …

印尼语翻译,如何提升翻译质量

据了解,印尼是东南亚地区的重要国家,与中国有着密切的经济联系。随着中印两国经贸合作的日益加深,印尼语翻译需求也越来越大。那么,印尼语翻译有什么特点,如何提升印尼语翻译质量? 业内人士指出&#xff0c…

百度百科词条怎么更新?怎么能顺利更新百科词条?

企业和个人百度百科词条的更新对于他们来说都具有重要的意义,具体如下: 对企业来说: 塑造品牌形象:百度百科是一个常被用户信任并参考的知识平台,通过更新企业词条可以提供准确、全面的企业信息,帮助企业塑…

8种最常用的3D CAD中性格式

CAD(计算机辅助设计)文件是包含物理对象 3D 和 2D 模型的数字文件。 CAD 文件可以包含几何数据、制造数据、材料属性和其他产品/过程数据等信息。 从设计到生产,一切都从 CAD 文件开始。 推荐:用 NSDT编辑器 快速搭建可编程3D场…

vue项目中使用开源Vditor

Vditor 是一款所见即所得编辑器,支持 Markdown。 支持多种前端框架 这里介绍在vue中使用包括编辑所见即所得模式,以及仅仅预览展示 更多细节和用法请参考 Vditor - 浏览器端的 Markdown 编辑器,谢谢 ❤️ 所见即所得(编辑预览状…

Windows安装6s模型

官网给出了详细的安装步骤 第一步:安装编译器 安装GnuWin32,按照提示安装,安装到你想安装的地方,记住目录。 安装G77,下载链接里面的Fort99.zip,将G77文件夹提取到C盘根目录。 将这两个目录的bin目录添加…

低代码/无代码平台:加速应用开发的工具

在数字化时代,软件应用已经成为企业和组织不可或缺的一部分。然而,传统的应用开发过程往往需要大量的时间、资源和专业知识。为了解决这个问题,低代码/无代码平台应运而生,它们为开发者提供了一种更快速、更简便的应用开发方式。本…

Spring Security注销后未正确保存空的SecurityContext漏洞CVE-2023-20862

文章目录 0.前言漏洞Spring Security介绍 1.参考文档2.基础介绍3.解决方案3.1. 升级版本3.2. 临时替代方案 4.Spring Security使用教程简单代码示例 0.前言 背景:公司项目扫描到 Spring-security 组件 注销后未正确保存空的SecurityContext CVE-2023-20862 漏洞 高…

基于 Docker 的 MySQL 主从复制搭建(Mac M1版本)

系统:Macbook M1 镜像版本:mysql:5.7 如果是要查 slave连接不上 master的问题,可以直接跳到文章末尾踩坑处 准备工作 拉取镜像 docker pull mysql:5.7本地数据卷挂载 因为mysql不挂载的话,重启丢失数据,所以在本地创…

低价监测的必要性

当品牌线上数据变多时,监测工作就变得非常重要了,品牌的线上监测工作,一般是围绕价格进行的,监测价格有无低价,也是看渠道是否健康的一种体现,当品牌线上渠道存在很多低价链接时,品牌要及时的进…

得物一面,场景题问得有点多!

题目来源:https://www.nowcoder.com/discuss/525371909735792640 前文 本期是【捞捞面经】系列文章的第 1 期,持续更新中…。 《捞捞面经》系列正式开始连载啦,据说看了这个系列的朋友都拿到了大厂offer~ 欢迎星标订阅,持续更新…

数据艺术:精通数据可视化的关键步骤

数据可视化是将复杂数据转化为易于理解的图表和图形的过程,帮助我们发现趋势、关联和模式。同时数据可视化也是数字孪生的基础,本文小编带大家用最简单的话语为大家讲解怎么制作一个数据可视化大屏,接下来跟随小编的思路走起来~ 1.数据收集和…

电商API数据共享(淘宝拼多多京东1688阿里巴巴国际站Lazada)

国内外主流电商平台二十多个,商品数据订单数据买家卖家数据齐全,支持高并发请求 测试API列表 获取api_key&secret 阿里巴巴国际站商品详情数据 "item": {"num_iid": "60840463360","title": "Slip-o…

v-if v-else v-else-if 例子

v-if v-else v-else-if 例子 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title>…

便携式水质自动采样器可应用的场景

便携式水质自动采样器符合中国环境保护部HJ/T 372-2007《水质自动采样器技术要求及检测方法》&#xff0c;是集流量测量、水样采集&#xff0c;自动分瓶、一体的多功能环境监测仪器。 具有体积小&#xff0c;方便移动、操作简捷、环保节能等特点。适用于各级环境监测站、监察机…