进程通信概念和进程通信方式

进程通信(IPC,Inter-Porcess Communcation)是进程进行通信和同步的机制。

IPC提供两个基本操作:

  1. 发送(send message)
  2. 接收(receive message)

进程通信流程:

  • 在通信进程之间建立通信链路
  • 通过send/receive交换信息

进程通信方式:

这里写图片描述

直接通信:
进程必须正确命名对方,比如send(p,message)向p发送信息,receive(q,message)从q中接收信息
通信链路有如下属性:自动建立连接;一条链路恰好对应一对通信进程;每对进程之间只有一个链接存在;链路可以是单向的,但是通常为双向的

间接通信:
通过OS维护的消息队列实现进程之间的通信(接收发送信息)
每个消息队列都有一个唯一标识,只有共享了相同消息队列的进程才能够通信
通信链路有如下属性:只有共享了相同消息队列的进程才能建立连接,比如send(a,message)向消息队列a发送信息,receive(a,message)从消息队列a中接收信息 ;连接单向或者双向;消息队列可以与多个进程相互关联;每个进程共享多个消息队列(也就是进程和消息队列是多对多的关系)

阻塞通信(同步)与非阻塞通信(异步)

同步通信:

阻塞发送:发送者发送消息后进入等待(阻塞)直到接受者成功接受
阻塞接收:接收者请求接收信息后等待(阻塞)直到成功接受一条消息

异步通信:

非阻塞发送:发送者发送消息后,可立即进行其他操作
非阻塞接收:接收者请求接收信息后,如果没有消息发送就接收不到信息,不需要等待

通信链路缓冲:

  1. 0容量:发送方必须等待接受方
  2. 有限容量:缓冲队列满,发送方必须等待
  3. 无限容量:发送方不需要等待


上面是关于IPC通信的基本概念,下面我们看一看一些常见的进程通信方式。

MOOC讲了四种进程通信方式:

信号,管道, 消息队列, 共享内存,由于都是基本概念,我偷个懒直接复制下来了:


信号:

这里写图片描述


管道:

这里写图片描述

这里写图片描述

这里写图片描述


消息队列:

这里写图片描述

这里写图片描述


共享内存:

这里写图片描述

这里写图片描述

这里写图片描述

  • 9
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值