2.1.4 进程通信

1 进程通信的定义

两个进程之间产生数据交互

1.1 需要操作系统支持

进程是分配系统资源的单位(包括内存地址空间)
因此 不同进程 拥有的 内存地址空间 相互独立

出于安全考虑, 避免进程A修改进程B的数据
各个进程只能访问自己的内存空间

2 进程通信的方式

在这里插入图片描述

2.1 共享存储

在这里插入图片描述
在这里插入图片描述
即共享存储区的内容形式由各个进程自己确定
在这里插入图片描述
即操作系统预先设定好共享存储区的数据结构形式

2.2 消息传递

进程间的数据交换以特定格式为单位
由操作系统提供 发送消息/接收消息 两个原语进行数据交互

类似于HTTP数据报一样
在这里插入图片描述

其又分为:

  1. 直接通信方式
  2. 间接通信方式

在这里插入图片描述

2.2.1 直接通信方式

在这里插入图片描述
若进程P发送消息给进程Q

  1. 在进程P自己的地址空间开辟内存并写入消息数据的内容
    在这里插入图片描述
  2. P使用发送原语将消息发送给操作系统

在这里插入图片描述

  1. 操作系统获取到该消息, 并根据消息的控制信息将其放入收取进程的消息队列中

在这里插入图片描述
4. 进程Q运行时, 使用原语receive接收消息
在这里插入图片描述
5. 操作系统查询进程Q的消息队列是否有来自进程P的消息, 如果有则传给进程Q
在这里插入图片描述

总的来说, 就是进程P要发给Q, Q要接收P

2.2.2 间接通信方式

信箱 作为中间实体进行消息传递
在这里插入图片描述
进程可以申请信箱, 也可以向某个信箱中发送消息, 还可以从某个信箱中接收消息

2.3 管道通信

在这里插入图片描述
管道类似于一个 循环队列
又叫pipe文件

图中第五点有两种观点
考试以高教社为准
日常了解两者都有可能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BetterChinglish

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值