Unix 进程通信基本概念
一:通信分为两类:
控制信息的传递: 低级通信
大批量数据的传递: 高级通信
二:基本的通信方式
(a)主从式通信: 通信的双方存在一种隶属关系, 其中主进程是通信过程的控制者,而从进程是通信过程的从属者。主从式通信具有如下特点:
- 在通信过程中主进程对从进程的资源和数据享有使用权限,而从进程对主进程则没有这种权限。
- 在通信过程中主进程始终控制着从进程的工作和动作过程
- 一旦进程的主从关系确定,在整个通信过程中他们的隶属关系不再发生变化。
例如:终端控制进程和终端进程
(b)会话式通信: 通信进程双方采用请求应答的方式进行通信。在会话式通信中,通信进程双方分为使用者进程个服务者进程。使用者进程通过调用服务者进程来完成进程间的通信。 会话式通信的特点:
- 通信时使用者进程需要事先得到服务者进程的允许,方能使用服务者进程为其提供的服务。
- 服务者进程每次都是根据使用者进程提出的请求服务的 ,并且在进程通信的过程中控制权始终为服务者进程所有
- 同样进程间在确定使用会话方式进行通信时也要建立固定的逻辑关联关系。
例如:用户进程与磁盘管理进程采、用TCP/IP协议的网间进程通信

(c)消息或邮件通信: 通信双方处于一个平等地位,在通信过程中无论接收进程是否准备好,发送进程都可以进行消息发送。发的消息通过消息系统或邮件系统进行大批量数据传递。消息或邮件通信的特点:
- 通信中发送进程能否发送消息,只与消息缓冲区或邮箱中是否有足够大的空闲空间来满足这次通信有关,与需要将信息发送到的目的进程的状态无关
- 发送进程和接收进程之间不需要建立直接的逻辑关联关系
- 发送信息和接收信息必须通过消息缓冲区或邮箱来完成消息的传递

(d)共享存储区通信:进程之间采用信息共享存储区的通信方式来完成进程间的通信。信息共享区域是通信进程都可以访问的数据区。共享存储区的进程通信过程的特点:
- 进程通信中,通信的数据或信息不发生存储移动
- 当需要交互时,通信进程双方通过一个共享存储区完成信息交互
- 共享存储中的数据,可以作为需要交互进程的一部分存储在进程体中

Unix 进程通信基本概念的更多相关文章
- Linux下进程通信之管道
每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把 ...
- Socket进程通信机制及应用
Socket通常称为“套接字”,用于描述IP地址和端口,是一个通信链的句柄.应用程序通过套接字向网络发出请求或者应答网络请求.Socket即不是一个程序,也不是一个协议,其只是操作系统提供的通信层的一 ...
- Socket进程通信机制
1.Socket通常称为“套接字”,用于描述IP地址和端口,是一个通信链的句柄. 2.应用程序通过套接字向网络发出请求或者应答网络请求. 3.Socket既不是一个程序,也不是一种协议,其只是操作系统 ...
- Unix进程特性
本篇文章主要总结分享记录一下运维工作中经常打交道的Unix进程.程序是代码的集合,而进程是运行中的程序产生的.那么进程都有那些特性呢?且看下文,部分经典且难懂的地方,使用python代码实现,可以让读 ...
- Linux间的进程通信;以及子进程的创建
"-----第六天-----------------------------------------------------------------------------" .版 ...
- linux各种IPC机制(进程通信)
linux各种IPC机制 (2011-07-08 16:58:35) 原文地址:linux各种IPC机制(转)作者:jianpengliu 原帖发表在IBM的developerworks网站 ...
- 进程以及进程通信(IPC)类型
这里用我有限的知识来解释同时参考了一些其他博主的子类,希望能给与一部分入门的朋友一个清晰的理解,有问题之处还请指出 首先简单谈一下什么是进程? 答:进程是装入内存运行的程序段,是许多的系统对象拥有权的 ...
- UNIX进程
UNIX进程控制的博客 http://blog.csdn.net/yang_yulei/article/details/17404021 Linux的概念与体系 http://www.cnb ...
- MINIX3 进程通信分析
MINIX3 进程通信分析 6.1MINIX3 进程通信概要 MINIX3 的进程通信是 MINIX3 内核部分最重要的一个部件,我个人认为其实这 是内核中的“内核”,怎么来理解这个概念呢?其实 MI ...
随机推荐
- Base64 图片转换工具
以前在写asp的后台的时候,有一个上传功能是必须的,那时候进行的图片预览(未上传前)其实就是获取本地的图片路径来显示图片,但是随着HTML5的出现,可以把图片通过编码来实现预览. 在雅虎的36条速度优 ...
- 【剑指offer】近期公共祖先
转载请注明出处:http://blog.csdn.net/ns_code/article/details/28113959 剑指offer上的最后一题了,一个递归函数调了一下午,才得到正确的结果. 题 ...
- [AngularJS] Introduction to ui-router
Introduce to basic $stateProvider.state() with $stateParams services. Understand how nested router w ...
- springMVC2 1入门程序
1入门程序 .1需求 实现商品列表查询 .2需要的jar包 使用spring3.2.0(带springwebmvc模块) .1前端控制器 在web.xml中配置: <?xml version=& ...
- PAT 1002
1002. A+B for Polynomials (25) This time, you are supposed to find A+B where A and B are two polynom ...
- hibernate 入门案例
1,创建工程,导入jar ojdbc14.jar 数据库驱动包,我用的是oracle数据库,根据实际的数据库选择驱动包 创建java类,并利用bibernate插件完成orm映射,创建hbm.xml ...
- HDU 2295 Radar (DLX + 二分)
Radar Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- cvSaveImage的第三个参数
http://stackoverflow.com/questions/801054/opencv-cvsaveimage-jpeg-compression-factor #define CV_IM ...
- 关于JDK中的集合总结(一)
静态方法只能继承,不能重写(Override). StringBufffer,数组,对象 都是容器. 加入数据,“zhangsan” true ,67, 三个数据数据类型不同,不能用数组作为集合,只能 ...
- hdu 2709 Sumsets
Sumsets Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...