按发送路径来看,可分为直接通信和间接通信。

1. 直接通信

(1)进程必须正确的命名对方

  • send (P, message) – 发送信息到进程P
  • receive(Q, message) – 从进程 Q接受消息

(2)通信链路的属性

  • 自动建立链路
  • 一条链路恰好对应一对通信进程
  • 每对进程之间只有一个链接存在
  • 链接可以是单向的,但通常为双向的

2. 间接通信

(1)通过操作系统维护的消息队列实现进程间的消息接收和发送

  • 每个消息队列都有一个唯一的标识
  • 只有共享了相同消息队列的进程,才能够通信

(2)通信链路的属性

  • 只有共享了相同消息队列的进程,才建立连接
  • 连接可以是单向或双向
  • 消息队列可以与多个进程相关联
  • 每对进程可以共享多个消息队列

(3)通信流程

  • 创建一个新的消息队列
  • 通过消息队列发送和接收消息
  • 销毁消息队列

3. 进程通信可划分为阻塞(同步)或非阻塞(异步)
(1) 阻塞通信

  • 阻塞发送:发送者在发送消息后进入等待,直到接收者成功收到
  • 阻塞接收:接收者在请求接收消息后进入等待,直到成功收到一个消息

(2)非阻塞通信

  • 非阻塞发送:发送者在消息发送后,可立即进行其他操作
  • 非阻塞接收:没有消息发送时,接收者在请求接收消息后,接收不到任何消息

4. 信号

进程间的软件中断通知和处理机制。

5. 管道(间接通信

进程间基于内存文件的通信机制。

6. 消息队列(间接通信

是由操作系统维护的以字节序列为基本单位的间接通信机制。

7. 共享内存(直接通信

把同一段物理机制映射到多个进程的内存地址空间的通信机制。每个进程的内存地址空间需要明确设置共享内存段,同一个进程的线程共享地址空间。(速度快,但是没有同步)

操作系统中的IPC机制的更多相关文章

  1. 操作系统中的IPC机制(inter-process Communication)

    http://www.cnblogs.com/tsiangleo/p/4902695.html

  2. Android中的IPC机制

    Android IPC简介 IPC是Inter-Process Communication的缩写,含义就是进程间通信或者跨进程通信,是指两个进程之间进行数据交换的过程.那么什么是进程,什么是线程,进程 ...

  3. Android开发艺术探索——第二章:IPC机制(上)

    Android开发艺术探索--第二章:IPC机制(上) 本章主要讲解Android的IPC机制,首先介绍Android中的多进程概念以及多进程开发模式中常见的注意事项,接着介绍Android中的序列化 ...

  4. 安卓IPC机制之Binder详解

    IPC(Inter-Process Communication,跨进程通信)是指两个进程之间数据交换的过程,因此我们首先必须了解什么是进程,什么是线程. 进程:进程是正在运行的程序的实例,与程序相比, ...

  5. Android开发艺术探索——第二章:IPC机制(中)

    Android开发艺术探索--第二章:IPC机制(中) 好的,我们继续来了解IPC机制,在上篇我们可能就是把理论的知识写完了,然后现在基本上是可以实战了. 一.Android中的IPC方式 本节我们开 ...

  6. Android IPC机制(三)在Android Studio中使用AIDL实现跨进程方法调用

    在上一篇文章Android IPC机制(二)用Messenger进行进程间通信中我们介绍了使用Messenger来进行进程间通信的方法.可是我们能发现Messenger是以串行的方式来处理client ...

  7. .Net中Remoting通信机制

    Remoting通信机制 Remoting介绍 主要元素 通道类型 激活方式 对象定义 Remoting介绍 什么是Remoting,简而言之,我们可以将其看作是一种分布式处理方式. 从微软的产品角度 ...

  8. Android之IPC机制

    Android IPC简介 任何一个操作系统都需要有相应的IPC机制,Linux上可以通过命名通道.共享内存.信号量等来进行进程间通信.Android系统不仅可以使用了Binder机制来实现IPC,还 ...

  9. IPC机制

    转:http://blog.chinaunix.net/uid-26125381-id-3206237.html  IPC 三种通信机制 2012-05-13 17:23:55 最近看了,IPC三种通 ...

随机推荐

  1. linux 防火墙开启80端口永久保存

    经常使用CentOS的朋友,可能会遇到和我一样的问题.开启了防火墙导致80端口无法访问,刚开始学习centos的朋友可以参考下.经常使用CentOS的朋友,可能会遇到和我一样的问题.最近在Linux ...

  2. workqueue机制分析之wb_workfn函数

    上面一篇文章说到: process_one_work中最重要的一件事情就是worker->current_func(work); 这里就具体到一项很具体的任务了,由于我要研究文件系统嘛,所以很自 ...

  3. Inline Workers--Web workers without a separate Javascript file

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> </head&g ...

  4. 解决MWPhotoBrowser中的SDWebImage加载大图导致的内存警告问题

    下面两种现象,用同一种方法解决 1.解决MWPhotoBrowser中的SDWebImage加载大图导致的内存警告问题 2.突然有一天首页访问图片很慢,至少隔20多秒所有图片才会出来.(解析:app使 ...

  5. Android智能指针sp wp详解

    研究Android的时候,经常会遇到sp.wp的东西,网上一搜,原来是android封装了c++中对象回收机制.说明:1. 如果一个类想使用智能指针,那么必须满足下面两个条件:    a. 该类是虚基 ...

  6. xmind 使用备忘

    快捷键: shift+enter 编辑文字时回车换行 enter 快速建立同级主题(纵向) tab 快速建立子主题(横向) F4 插入注释 alt+左键+移动 拖动 shift+左键+移动 将元素脱离 ...

  7. Python中list,tuple,dict,set的区别和用法

    Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个内置数据类型功不可没,他们即是list, tuple, dict, set.这里对他们进行一个简明的总结. List ...

  8. SVN 修改log信息报错的解决方案

    要实现允许修改log这个功能,只需要在hooks目录下增加一个名为:pre-revprop-change.bat的文件,重启svn即可.该文件内容为:------------------------- ...

  9. RHCE实验环境|rhel7-lab

    教学环境说明: 1.yum源地址是:http://content.example.com 2.网卡都用同一个,且自定义网卡! 3.网络配置参考 classroom IP 172.25.254.254/ ...

  10. RHEL7挂载ISO做本地yum

    测试环境,网络yum源没有本地yum源下载速度快!Yum比起RPM装包的好处就是可以自己处理依赖关系,也就是自己安装相关的依赖包,用起来也是很方便,但是删包的时候也会删除依赖包,这里要非常小心 01. ...