Linux:简介(进程间通信一)

从现在开始,我们开始学习进程间通信,这也是一个很重要的话题,话不多说,我们正式开始~~

我们之前学过,进程是独立的,就连父进程与子进程,都是独立的,但是凡事有利有弊,进程之间不能只有独立,也应该有协作,就比方说进程A处理某个数据给进程B,进程B分析这个数据给进程C,这些进程此时不应该相互独立,而应该互相协作,那么该怎么办呢??下面为你解答!!

1.理解层面

1.为什么要进程间通信

数据传输:⼀个进程需要将它的数据发送给另⼀个进程

资源共享:多个进程之间共享同样的资源

通知事件:⼀个进程需要向另⼀个或⼀组进程发送消息,通知它(它们)发⽣了某种事件(如进

程终⽌时要通知⽗进程)

进程控制:有些进程希望完全控制另⼀个进程的执⾏(如Debug进程),此时控制进程希望能够

拦截另⼀个进程的所有陷⼊和异常,并能够及时知道它的状态改变

举一个例子

考虑一个典型的多核处理器环境,在这个环境下,多个进程并行执行任务。如果这些进程要处理的数据量非常庞大,且每个进程只处理数据的其中一部分,那么如何让这些进程之间共享数据就变得非常关键。

场景:图像处理中的并行计算

假设我们要处理一个非常大的图像,需要进行复杂的图像滤波操作。假设有四个进程,分别处理图像的四个不同区域。每个进程会对自己的区域进行滤波处理,处理完成后,需要将处理结果汇总到一起生成最终的图像。

在这种情况下,进程间共享数据(通过IPC技术如共享内存)能够显著提高性能。每个进程不需要从磁盘中读取完整图像的每一部分,只需要处理自己负责的区域并与其他进程共享中间数据。使用共享内存机制,多个进程可以直接访问相同的内存区域,从而避免了数据复制的开销,减少了不必要的磁盘I/O操作。通过这种方式,进程间的高效数据共享能够显著提高整体图像处理速度。

2.什么是通信

进程间通信(IPC,Inter-Process Communication)指的是:不同进程之间为了交换数据、同步执行、协调资源而使用的一整套机制/技术。因为进程彼此隔离、地址空间独立,不能像同一进程里的线程那样直接共享变量,所以需要 IPC 来"搭桥"

3.怎么通信

我们先要知道通信本质是什么,后续的通信方法都离不开这个本质:

让不同的进程看到同一块资源【某种内存】,然后能进行通信!!

这个资源不可能由进程提供(就算最亲近的父子进程,也会发生写实拷贝),只能由操作系统(OS)提供->系统调用->OS的接口->设计统一的通信接口->设计出不同的通信方案

举个例子,在现实生活中,AB是两个陌生人,A与B想成为朋友,只能由C搭桥认识,不然两个人必定没有交集

注意:早期本机 IPC 各家 OS 各做各的;网络普及后,为了跨主机、跨系统互联,行业逐步形成并推广了以 TCP/IP 为代表的通用网络协议标准(以及以 socket 为代表的编程接口)

2.进程间通信的发展脉络

  • 早期(单机批处理):几乎不需要复杂 IPC,更多是"顺序执行 + 文件交换"

  • 分时/多任务出现 :进程并发增多,出现 信号 (通知)与 管道(父子进程字节流)

  • 系统化 IPC(Unix/System V 等) :为更通用场景引入 消息队列 (按消息)、共享内存 (高性能)、信号量(同步互斥)

  • 图形界面与桌面系统:更强调跨进程服务与安全隔离,出现更工程化的本机 IPC(如 Windows 的机制等)

  • 网络化/分布式时代Socket 成为事实标准,IPC 从"进程间"扩展到"主机间"

  • 服务化/云原生 :在 socket 之上封装 RPC/gRPC/HTTP ,并配合 消息中间(Kafka/RabbitMQ 等)实现解耦、可靠与可扩展

3.进程间通信分类

1.管道

匿名管道pipe
命名管道

2.System V IPC

System V 消息队列
System V 共享内存
System V 信号量

3.POSIX IPC

消息队列
共享内存
信号量
互斥量
条件变量
读写锁

本篇博客主要是简绍,我们下一篇博客将会正式开始管道学习哦~~(我们环境正式切换为ubuntu + vscode + c++)

相关推荐
程序员AlbertTu9 分钟前
第2章 上手 Linux:环境与文件操作
linux·运维·服务器
☆凡尘清心☆1 小时前
CentOS Stream 9 源码编译搭建 Zabbix7.0.29 完整部署方案(部署成功)
linux·运维·centos
Escalating_xu1 小时前
【Linux】进程间通信:从匿名管道、FIFO 到共享内存、消息队列与信号量
java·linux·面试
予昊1 小时前
Linux 资源控制实战分析:用 LXC 亲手造一个 “迷你虚拟机“
linux·运维·服务器
allforgood1 小时前
管理网络安全
linux
xiaoxiangsiyan1 小时前
RHCE之2026年全套考点详解
运维·前端·网络·chrome·学习·rhce
love530love1 小时前
彻底清理 Windows 右键“打开方式“中的重复/失效程序项(PyCharm 多版本残留实战 + 自动化脚本)
运维·人工智能·windows·pycharm·jetbrains·toolbox
zhexunnb1 小时前
SAP赋能芯片封装行业,打造封测企业全链路数字化底座
运维
蓝速科技1 小时前
蓝速科技会议预约屏深度评测:为何安卓系统是智慧办公长期最优解
运维·人工智能·科技
2401_834636991 小时前
保姆级 K8s 运维:RBAC 认证 + Dashboard+Local/NFS 动态卷实战
运维·容器·kubernetes