Linux---进程间通信

一、进程间通信的目的

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

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

3、通知事件:一个进程需要向另一个或另一组进程发送消息,通知它(它们)发生了某种事件(如:进程终止时要通知父进程)

4、进程控制:有些进程希望完全控制另一个进程的执行,此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时的知道它的状态改变。

二、进程间通信发展

管道

System V进程间通信---一台机器内部。

POSIX进程间通信。---进程间进行跨网络通信

三、进程间通信分类

管道:(通信标准的名称)

1、匿名管道pipe

2、命名管道

System V IPC(通信标准的名称)

1、System V消息队列

2、System V共享内存

3、System V信号量

POSIX IPC(通信标准的名称)

1、消息队列

2、共享内存

3、信号量

4、互斥量

5、条件变量

6、读写锁

四、进程间通信怎么做?

进程间是具有独立性的!

进程的本质

就是首先让不同的进程,先要看到同一份"资源"(由操作系统提供)。

匿名管道通信原理

仿照文件,设计了一套通信标准,

fork的时候,file要进行拷贝,管道是单向通信(单工通信)的。比如:永远都是父进程给子进程写消息,或者永远都是子进程给父进程写消息。

全双工通信:eg.吵架的时候

半双工通信:人类正常沟通

单工通信:上课的时候(比如老师一直讲课)

注意:管道是一个纯内存级的文件,不需要打开磁盘文件之类的!没有路径,匿名管道。

管道是类Unix中最古老的进程间通信的形式。

创建管道

pipe

步骤:创建管道文件;fork;关闭读写段,子w,父r。

pipefd0是读,pipe1是写。

相关推荐
无足鸟ICT6 小时前
【RHCA+】vmstat命令(监控系统资源)
linux·服务器
垆边人似月.6 小时前
RDMA 文件传输踩坑(五):READY 发送成功后,为什么出现 Work Request Flushed Error?
服务器·网络·tcp/ip
闪亮的路灯7 小时前
Linux 安装mqtt服务mosquitto
linux·运维·服务器
HideF7 小时前
nmcli
linux·服务器·网络
qetfw8 小时前
UOS DHCP Relay:跨网段分配与 IP、DNS、网关验证
linux·服务器·网络·tcp/ip·uos
明航咨询-陈老师8 小时前
ITSS运行维护服务能力成熟度认证技术纵深:标准模型、等级路径、2026审核趋势与CS/CMMI对比
服务器·数据库·cmmi
szxinmai主板定制专家9 小时前
X86 工控机 vs RK3588 异构主控:AMR 控制器 BOM、散热、长期运维对比
运维·stm32·单片机·嵌入式硬件·fpga开发·am62x
缓慢更新9 小时前
AI 辅助生成单测:从接口定义到用例的流水线
java·服务器·前端·网络·数据库·人工智能
叼烟扛炮10 小时前
Linux 学习笔记(四十一):TCP 并发演进——从单进程到多线程服务器
linux·运维·服务器·网络·笔记·学习·tcp/ip
ynchyong10 小时前
Linux 有两个 “版本“
linux·发行版·内核版本