linux(SystemV标准)进程间通信1

news/2024/12/13 4:58:04/

目录:

         1.前言

         2.共享内存

         3.认识接口

-------------------------------------------------------------------------------------------------------------------------

1.前言

我们之前学的什么匿名管道、命名管道通信都是基于文件的通信方式!!

接下来我们要学的就是SystemV标准进程间通信方式

我们之前来看,有一个小问题就是,想让进程间通信的前提就是让不同进程看到同一份资源,而同一份资源都是由操作系统提供的,操作系统能用现成的资源比如文件,就用文件

可是如果我不想用基于文件的方式通信呢??那么此时SystemV标准诞生了

 2.共享内存

 两进程之间数据结构互相独立,物理内存当中代码和数据又互相独立,所以两个进程不会互相干扰,这叫做进程具有独立性

我们进行进程间通信,第一步通过某种调用,在内存当中创建一份内存空间

第二步 通过某种调用,让进程“挂接”到这份新开辟的内存空间上!!

 

 3.认识接口

 1.shmget

chmget返回值:如果调用成功,返回一个合法的共享内存标识符,如果失败返回-1

所以你怎么保证不同的进程看到的是同一个共享内存呢??

只要我们的形成key的算法+原始数据是一样的,形成同一个ID!!!

---------------------------------------------------------------------------------------------------------------------------------

 

 

形成相同的key,能够帮助进程在相同当中找到同一个共享内存

如何查看我们刚刚创建的共享内存??  ipcs  -m

 

我们命令的方式删除共享内存

如果我们自己作为程序员想删呢共享内存呢??

 

--------------------------------------------------------------------------------------------------------------------------------

2. shmctl

 

 3.shmat   、 shmdt

 -----------------------------------------------------------------------------------------------------------------


http://www.ppmy.cn/news/109822.html

相关文章

2023年数学建模:决策树:基于树结构的分类和回归方法

2023年9月数学建模国赛期间提供ABCDE题思路加Matlab代码,专栏链接(赛前一个月恢复源码199,欢迎大家订阅):http://t.csdn.cn/Um9Zd 目录 1. 决策树原理 1.1 信息增益 1.2 增益率 1.3 基尼指数 2. 决策树剪枝 2.1 预剪枝 2.2 后剪枝 3. MATLAB实现 3.1 实现CART算法 3…

讯飞星火认知大模型与ChatGPT的对比分析

引言: 人工智能是当今科技领域的热门话题,自然语言处理是人工智能的重要分支。自然语言处理的目标是让计算机能够理解和生成自然语言,实现人机交互和智能服务。近年来,随着深度学习的发展,自然语言处理领域出现了许多创…

leetcode 976. 三角形的最大周长

题目描述解题思路执行结果 leetcode 976. 三角形的最大周长 题目描述 三角形的最大周长 给定由一些正数(代表长度)组成的数组 nums ,返回 由其中三个长度组成的、面积不为零的三角形的最大周长 。如果不能形成任何面积不为零的三角形&#xf…

ARC学习(1)基本编程模型认识

笔者有幸接触了arc处理器,今天就来简单了解一下arc的编程模型 1、ARC基本认识 ARC IP是synopsys 新思公司开发的一个系列ARC IP核,其是一家电子设计自动化(EDA)解决方案提供商。其主页地址在这里!业务主要如下&#x…

Go-channel的妙用

系列文章目录 异常处理(defer recover panic) Go-channel的妙用 文章目录 系列文章目录前言一、channel 通过通讯共享内存二、使用场景三、例子1.包 总结 前言 Go语言中,各个协程之间的通信,Go 语言协程之间通信的理念通过通信去共享内存。就是采用cha…

C语言system()函数

文章目录 C语言system()函数system(“pause”)system(“color num1num2”)system(“cls”)system(“title name”)system(“time /T”) & system(“date /T”) C语言system()函数 头文件&#xff1a; #include<stdlib.h>system(“pause”) 作用&#xff1a;暂停程序进…

14:00面试,14:06就出来了,问的问题有点变态。。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到5月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%,…

【C#图解教程】第四章 类型、存储和变量 学习笔记总结

类型 C#是一组类型声明&#xff0c;这个与第三章&#xff1a;命名空间就是一组类型声明可以一起理解。类型是一个用来创建数据结构的模板&#xff1a; 使用这个模板创建对象的过程叫做实例化&#xff0c;所以创建的对象也叫实例 类型成员 简单类型可能只包含一个数据成员&…