【lesson47】进程通信之system V(共享内存)补充知识

文章目录

  • 补充知识

补充知识

进行通信的key值问题,进程要通信的对方进程怎么能保证对方能看到,并且看到的就是该进程创建的共享内存的。
所以就通过key值来标识共享内存,key值是几不重要,只要在系统里是唯一的即可。
这样server和client使用同一个key,只要key值相同,就是看到同一块内存。
在这里插入图片描述
在这里插入图片描述
key:对应共享内存key值
shmid:对应共享内存用户层标识的唯一值
owner:属于哪个进程
bytes:大小的字节数
nattch:链接的进程个数
status:状态

共享内存被挂接进用户空间,而用户空间不用经过系统调用,可以直接访问
所以共享内存用来通信,通信双方直接进行内存级的读写即可。

我们之前的pipe和fifo都要通过read和write来进行通信,是因为pipe和fifo都是OS进行管理的,不再用户空间下。

只要通信双方使用shm,一方直接向shm中写数据,另一方就可以立马看到。

所以共享内存是所有进程间通信(IPC)速度最快的!因为不需要过多拷贝。(不需要将数据给OS)

管道:
在这里插入图片描述
共享内存:
在这里插入图片描述
而我们之前发现共享内存缺乏访问控制!这样会带来并发问题。所以我们用管道为它进行了访问控制

ipcs -m 查看共享内存
ipcs -q 查看消息队列
ipcs -s 查看信号量

ipcrm -id 删除上面三个的指令

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

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

相关文章

【C语言】变量与常量

一、变量的定义与名称 变量定义的一般形式&#xff1a;<数据类型名称><变量名称>; int price0&#xff1b; •这一行&#xff0c;定义了一个变量。变量的名字是price&#xff0c;类型是int&#xff0c;初始值是0。 •变量是一个保存数据的地方&#xff0c;当我们需…

CentOS7集群配置免密登录

准备工作 提前开启三台虚拟机hadoop102、hadoop103,hadoop104,关于三台虚拟机的安装可以参考&#xff1a;https://mp.csdn.net/mp_blog/creation/editor/136010108 配置免密登录 一、分别修改三台机器的hosts,配置主机映射关系 vim /etc/hosts 文件中输入以下内容&#xf…

利用Pybind11封装Python版的WiringPi!

原版的WiringPi是一个用于树莓派的GPIO库&#xff0c;用C语言开发&#xff0c;仓库地址&#xff1a;https://github.com/WiringPi/WiringPi。该库允许用户以编程方式访问和控制树莓派的GPIO引脚。而随着Python在嵌入式设备上的快速发展&#xff0c;其对底层引脚的操作也变得越来…

【人工智能】聊聊Transformer,深度学习的一股清流(13)

嘿&#xff0c;大家好&#xff01;今天我们来聊一聊深度学习领域的一位“大明星”——Transformer模型。这个模型的提出可不得了&#xff0c;让自然语言处理领域焕发了新生。 在深度学习领域&#xff0c;Transformer模型架构的引入标志着一场革命&#xff0c;它改变了自然语言处…

linux系统定时任务管理

crontab使用 一、crontab简介 crontab 这个指令所设置的工作将会循环的一直进行下去&#xff01;可循环的时间为分钟、小时、每周、每月或每年等。crontab 除了可以使用指令执行外&#xff0c;亦可编辑 /etc/crontab 来支持。 至于让 crontab 可以生效的服务则是 crond 这个服…

【开源】基于JAVA+Vue+SpringBoot的假日旅社管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统介绍2.2 QA 问答 三、系统展示四、核心代码4.1 查询民宿4.2 新增民宿评论4.3 查询民宿新闻4.4 新建民宿预订单4.5 查询我的民宿预订单 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的假日旅社…

《小狗钱钱》读书笔记——如何看待金钱

目录 前言 作者 经典摘录 1、 了解致富的规律&#xff0c;一开始&#xff0c;必须明确金钱对你的意义 2、 梦想储蓄罐和梦想相册 3、认真去找机会 4、主人公吉娅的财富路径 5、注意财富积累本质 写在最后 前言 尽管[ 智慧是无法传授的], 但读书可以启发思路&#xff0…

30岁还一事无成,怎么办?

前些日子&#xff0c;知乎有一个话题&#xff0c;特别火。 原话是&#xff1a;30岁&#xff0c;如果你还没当上管理层&#xff0c;或者在某个领域取得成就&#xff0c;那你一辈子基本也就这样了。 这句话一出&#xff0c;戳中了许多人的软肋&#xff0c;一时间群情哗然。 理由是…

Electron基本介绍

Electron基本介绍 Electron 官方网站&#xff1a;https://www.electronjs.org/zh/ Electron安装方法&#xff1a;npm install electron -g 全局安装 Electron简介&#xff1a;Electron提供了丰富的本地&#xff08;操作系统&#xff09;API&#xff0c;使你能够使用纯JavaScr…

golang设置

golangci-lint 代码检查工具的集合&#xff0c;聚集了多种 Go 代码检查工具&#xff0c;如 golint 会自动查找项目中的 .golangci.yml 配置文件 会检查代码中潜在常见问题以及代码风格问题 # 文档&#xff1a;https://golangci-lint.run/ # https://github.com/golangci/golang…

leetcode——滑动窗口题目汇总

本章总结一下滑动窗口的解题思路&#xff1a; 在字符串中使用双指针 left 和 right 围成的一个左闭右开的区域作为一个窗口。不断将 right 向右滑动&#xff0c;直到窗口中的字符串符合条件。此时将 left 向右滑动&#xff0c;直到窗口中的字符串不符合条件&#xff0c;期间需…

Django中的SQL注入攻击防御策略

Django中的SQL注入攻击防御策略 SQL注入是一种常见的网络安全威胁&#xff0c;可以导致数据库被非法访问和数据泄露。本文将介绍在Django框架中防止SQL注入攻击的关键方法&#xff0c;包括使用参数化查询、使用ORM、进行输入验证和使用安全的编码实践。 SQL注入是一种利用应用程…

SpringBoot:多环境配置

多环境配置demo代码&#xff1a;点击查看LearnSpringBoot02 点击查看更多的SpringBoot教程 方式一、多个properties文件配置 注意&#xff1a;创建properties文件,命名规则&#xff1a;application-&#xff08;环境名称&#xff09; 示例&#xff1a;application-dev.proper…

循环神经网络(RNN)简介与应用

循环神经网络&#xff08;RNN&#xff09;简介与应用 一、RNN基本概念二、RNN原理解析2.1 RNN网络结构RNN网络主要组件输入层(Input)&#xff0c;隐藏层(Hidden State)&#xff0c;输出层(Output)循环单元(Recurrent Unit)权重参数(Weights)和偏置项(Bias) RNN的数据流向时间步…

算法刷题day10

目录 引言一、最长上升子序列二、地宫取宝三、波动数列 引言 今天是大年三十&#xff0c;提前祝大家新的一年天天开心&#xff0c;事事如意&#xff0c;过年把身体精神修养好后&#xff0c;年后继续朝着目标奋斗&#xff0c;然后加油吧&#xff01; 一、最长上升子序列 标签&…

Android截屏方法

// 截屏方法private void getSnapshot() {wView.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED), View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));wView.layout(0, 0, wView.getMeasuredWidth(), wView.getMeasuredHeight(…

U3D记录之FBX纹理丢失问题

今天费老大劲从blender建了个模型&#xff0c;然后导出进去unity 发现贴图丢失 上网查了一下 首先blender导出要改设置 这个path mode要copy 然后unity加载纹理也要改设置 这里这个模型的纹理load要改成external那个模式 然后就有了&#xff0c;另外这个导出还有好多选项可…

Python判断列表A中是否有元素出现在了列表B中

目录 1. 问题重述2. 问题求解2.1 暴力法2.2 哈希表法2.3 集合法 3. 总结 1. 问题重述 给定两个列表 A A A 和 B B B&#xff0c;它们的长度分别为 n n n 和 m m m。我们要检查的是&#xff0c;是否存在 x ∈ A x\in A x∈A&#xff0c;使得 x ∈ B x\in B x∈B。 以下介…

Java项目maven打包的包名设置(finalname标签的使用)

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

C#用Array类的Reverse方法反转数组中元素

目录 一、Array.Reverse 方法 1.重载 2.Reverse(Array, Int32, Int32) 3. Reverse(Array) 4.Reverse(T[]) 5. Reverse(T[], Int32, Int32) 二、实例 1.Array.Reverse 方法4种重载方法综合实例 2.Reverse(Array)方法的实例 一、Array.Reverse 方法 反转一维 Array 或部…