进程间基于共享存储区的通信_进程与进程之间是如何勾勾搭搭的?

what?每一个进程如何去关联。进程之间的信息交换;进程是分配系统资源的单位,各进程拥有的内存空间相互独立。彼此本不应相见,但是奈何,但是有时候还是存在可以共享的情况的特权。‍‍‍‍

b62a91761f52826838965dcd436c330f.png

不是真正的共享,是利用特殊的手段进行的

共享存储‍

提供了一块共享空间

d09b6c10999ac0fdf14af5f0814e02ab.png

两个进程对共享空间的访问,这个空间的访问是互斥的,伟大的PV操作。

(1)基于数据结构的共享:一个长度10的数组,速度慢、限制多,低级通信

(2)基于存储区的共享:有进程控制而不是操作系统,是一种高级通信方式

管道通信‍

管道是指用于连接读写进程的一个共享文件,pipe文件。内存中开辟的一个大小固定的缓冲区。

754fd6924d7358093fba69f1f8f52645.png

只能实现半双工的通信,同时只能进行一个方向,对讲机啊。

写满了才能读(写的write()被阻塞),全取走后才能再写(读进程的read()被阻塞)

消息传递‍

格式化消息【消息头】+【消息尾】;消息头里面有发送进程ID,接受进程ID、消息类型、消息长度等。有点像计算机网络中的豹纹,凹不,是报文

587183a0c81bd961f7a1cedc31d794c4.png

(1)直接通信方式:消息缓冲队列

(2)间接通信方式:消息先放松到信箱中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值