【Linux 14】进程间通信概念

文章目录

  • 🌈 一、进程间通信的目的
  • 🌈 二、进程间通信的理解
  • 🌈 三、进程间通信的分类

🌈 一、进程间通信的目的

  1. 数据传输:一个进程需要将它的数据发送给另一个进程
  2. 资源共享:多个进程之间共享同样的资源。
  3. 通知事件:一个进程需要向另一个或一组进程发送消息,通知它或它们发生了某种事件 (如进程终止时要通知父进程)。
  4. 进程控制:有些进程希望完全控制另一个进程的执行 (如 Debug 进程),此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道它的状态改变。
  • 总而言之,进程间通信的目的是为了达成多进程之间的协同。根据不同的控制场景,需要不同的协同方式,而所有的协同方式的前提进程之间要能够建立通信

🌈 二、进程间通信的理解

1. 进程之间不能直接进行通信

  • 由于进程具有独立性,A 进程的数据不能直接交给 B 进程。
    • 如果 A 进程想要直接数据交给 B 进程,是 A 进程去访问 B 进程的一段内存区域将数据拷进去呢?还是 B 进程去直接读取 A 进程的内存区域将数据拷出来呢?
  • 因此进程之间如果想要直接进行通信是行不通的,这直接违背了进程具有独立性的特点。

2. 如何实现进程间通信

  • 由于进程 A 和进程 B 不能直接进行通信,那么就需要借助媒介来进行交流。
    • 如:相隔两地的人不能直接交流,此时就可以通过书信实现两个人之间的通信,书信就是媒介。人 A 将想要发送的数据写在书信上,人 B 就从书信上读取数据。
  • 进程之间的通信也是同理,多个进程通过往媒介读写数据实现进程间的通信。

在这里插入图片描述

3. 进程间通信的本质

  • 不管如何实现进程间通信,本质就是让不同的进程看到同一份资源 (即同一个媒介)。
  • 这个资源通常是由 OS 提供的,不能由 A / B 进程的任何一个提供, 但 A / B 进程可以去向 OS 申请。

🌈 三、进程间通信的分类

  1. 管道:匿名管道、命名管道。
  2. System V IPC:System V 消息队列、System V 共享内存、System V 信号量。
  3. POSIX IPC:消息队列、共享内存、信号量、互斥量、条件变量、读写锁。

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

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

相关文章

Java GC(垃圾回收)机制详解

Java GC(垃圾回收)机制详解 1、GC触发的条件2、GCRoots的对象类型 💖The Begin💖点点关注,收藏不迷路💖 在Java的世界里,内存管理是自动进行的,其中垃圾回收(Garbage Col…

【JAVA多线程】Future,专为异步编程而生

目录 1.Future 2.CompletableFuture 2.1.为什么会有CompletableFuture? 2.2.使用 2.2.1.提交任务获取结果 2.2.2.回调函数 2.2.3.CompletableFuture嵌套问题 1.Future Java中的Future接口代表一个异步计算。其提供了一组规范用来对异步计算任务进行管理控制…

PACS-医学影像信息管理系统,全影像科室PACS源码,内置包括MPR、CMPR、VR等三维处理功能

PACS系统可以覆盖医院现有放射、CT、MR、核医学、超声、内镜、病理、心电等绝大部分DICOM和非DICOM检查设备,支持从科室级、全院机、集团医院级乃至到区域PACS的平滑扩展,能够与医院HIS、集成平台的有效集成和融合,帮助医院实现了全院医学影像…

Qt Style Sheets-使用样式表自定义 Qt 部件

使用样式表自定义 Qt 部件 在使用样式表时,每个小部件都被视为具有四个同心矩形的框:边距矩形、边框矩形、填充矩形和内容矩形。框模型对此进行了更详细的描述。 盒模型 以下是四个同心矩形在概念上的呈现方式: 边距超出边框。边框绘制在边…

【深入C++】二叉搜索树

文章目录 什么是二叉搜索树二叉搜索树的接口1.查找操作2.插入操作3.中序遍历4.删除操作 所有代码总结 什么是二叉搜索树 二叉搜索树(Binary Search Tree, BST)是一种特殊的二叉树,其每个节点最多有两个子节点,分别称为左子节点和…

Linux环境下dockes使用MongoDB,上传zip文件如何解压并备份恢复到MongoDB数据库中

1、准备 Docker 和 MongoDB 容器 建议主机端口改一下 docker run --name mongodb -d -p 27018:27017 mongo 2. 创建一个工作目录并将 zip 文件上传到dockers容器中 docker cp data.zip mongodb:/data.zip 3. 在 MongoDB 容器中解压 zip 文件(也可以解压完再复制…

基础vrrp(虚拟路由冗余协议)

一、VRRP 虚拟路由冗余协议 比如交换机上联两个路由器,由两个路由虚拟出一台设备设置终端设备的网关地址,两台物理路由的关系是主从关系,可以设置自动抢占。终端设备的网关是虚拟设备的ip地址,这样,如果有一台路由设备…

pytorch学习(十一)checkpoint

当训练一个大模型数据的时候,中途断电就可以造成已经训练几天或者几个小时的工作白做了,再此训练的时候需要从epoch0开始训练,因此中间要不断保存(epoch,net,optimizer,scheduler)等…

动手学深度学习——5.卷积神经网络

1.卷积神经网络特征 现在,我们将上述想法总结一下,从而帮助我们设计适合于计算机视觉的神经网络架构。 平移不变性(translation invariance):不管检测对象出现在图像中的哪个位置,神经网络的前面几层应该对…

Bubbliiiing 的 Retinaface rknn python推理分析

Bubbliiiing 的 Retinaface rknn python推理分析 项目说明 使用的是Bubbliiiing的深度学习教程-Pytorch 搭建自己的Retinaface人脸检测平台的模型,下面是项目的Bubbliiiing视频讲解地址以及源码地址和博客地址; 作者的项目讲解视频:https:…

FFmpeg音视频流媒体的顶级项目

搞音视频、流媒体的圈子,没法躲开ffmpeg这个神级项目。 FFmpeg 是一个功能强大且广泛使用的多媒体处理工具。FFmpeg 具备众多出色的特性。它支持多种音频和视频格式的转换,能轻松将一种格式的文件转换为另一种,满足不同设备和应用的需求。不仅如此,它还可以进行视频的裁剪、…

使用多进程和多线程实现服务器并发【C语言实现】

在TCP通信过程中,服务器端启动之后可以同时和多个客户端建立连接,并进行网络通信,但是在一个单进程的服务器的时候,提供的服务器代码却不能完成这样的需求,先简单的看一下之前的服务器代码的处理思路,再来分…

手持式气象站:便携科技,掌握微观气象的利器

手持式气象站,顾名思义,是一种可以随身携带的气象监测设备。它小巧轻便,通常配备有温度、湿度、风速、风向、气压等多种传感器,能够实时测量并显示各种气象参数。不仅如此,它还具有数据存储、数据传输、远程控制等多种…

Django教程(003):orm操作数据库

文章目录 1 orm连接Mysql1.1 安装第三方模块1.2 ORM1.2.1、创建数据库1.2.2、Django连接数据库1.2.3、django操作表1.2.4、创建和修改表结构1.2.5、增删改查1.2.5.1 增加数据1.2.5.2 删除数据1.2.5.3 获取数据1.2.5.4 修改数据 1 orm连接Mysql Django为了使操作数据库更加简单…

Linux shell编程学习笔记65: nice命令 显示和调整进程优先级

0 前言 我们前面学习了Linux命令ps和top,命令的返回信息中包括优先序(NI,nice) ,我们可以使用nice命令来设置进程优先级。 1 nice命令 的功能、格式和选项说明 1.1 nice命令 的功能 nice命令的功能是用于调整进程的…

AP ERP与汉得SRM系统集成案例(制药行业)

一、项目环境 江西某医药集团公司,是一家以医药产业为主营、资本经营为平台的大型民营企业集团。公司成立迄今,企业经营一直呈现稳健、快速发展的态势, 2008 年排名中国医药百强企业前 20 强,2009年集团总销售额约38亿元人民币…

原码、补码、反码、移码是什么?

计算机很多术语翻译成中文之后,不知道是译者出于什么目的,往往将其翻译成一个很难懂的名词。 奇怪的数学定义 下面是关于原码的“吐槽”,可以当作扩展。你可以不看,直接去下一章,没有任何影响。 原码的吐槽放在前面是…

配置单区域OSPF

目录 引言 一、搭建基础网络 1.1 配置网络拓扑图如下 1.2 IP地址表 二、测试每个网段都能单独连通 2.1 PC0 ping通Router1所有接口 2.2 PC1 ping通Router1所有接口 2.3 PC2 ping通Router2所有接口 2.4 PC3 ping通Router2所有接口 2.5 PC4 ping通Router3所有接口 2.…

Git仓库拆分和Merge

1. 问题背景 我们原先有一个项目叫open-api,后来想要做租户独立发展,每个租户独立成一个项目,比如租户akc独立部署一个akc-open-api,租户yhd独立部署一个yhd-open-api,其中大部分代码是相同的,少量租户定制…

2024牛客暑期多校训练营1——A,B

题解&#xff1a; 更新&#xff1a; k1的时候要乘n 代码&#xff1a; #include<bits/stdc.h> #define int long long using namespace std; const int N5e35; typedef long long ll; typedef pair<int,int> PII; int T; int n,m,mod; int fac[N][N]; int dp[N][…