进程通信01要点

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

共享存储器系统 (Shared-Memory System)
消息传递系统(Message Passing System) 管道通信(Pipe Communication)
1 共享存储器系统(Shared-Memory System)
1)基于共享数据结构的通信方式

producer-consumer中的缓冲区,低效,不透明。 系统只提供了一共享存贮器,适于少量通信。 系统提供:内存的共享存储区。
无亲缘关系进程间的通信.但是由于其长期存在于 系统之中,使用不当容易出错.所以普通用户一般 不建议使用
客户机-服务器系统

前面所说的共享内存,消息传递等技术,虽然也可以用于 实现不同计算机进程的双向通信,但客户机-服务器系统的 通信机制,在网络环境的各种应用领域已成为当前主流的 通信实现机制。 实现方法:1)套接字
低级通信缺点:
(1)效率低;(2)通信对用户不透明。
高级通信特点:

效率高; 用户利用OS提供的通信命令进行数据的传输;通信 实现细节对用户透明。
§2.6 进程通信
Process Communication
一、进程通信的类型The type of process communication 高级通信机制可归结为三大类:
1) 直接通信方式
一般ቤተ መጻሕፍቲ ባይዱ一台机器的多进程间,直接以接收者进程的内部标识 为目的标识发送消息。
2)间接通信: 建立一个通信参与者共享的逻辑实体-信箱, 发送者向信箱发送消息;接收者到信箱取消息。用于联系不十 分紧密的进程之间。
管道通信系统

所谓“管道”,是用于连接一个读进程和一个写进程以实 现他们之间通信的一个共享文件,又名pipe文件

@陈海浩
消息传递实现方式 以及进程线程对比
消息传递实现方式
直接消息传递 系统(直接通 信方式)
1.直接通信原语 2.消息的格式 3.进程的同步方式 4.通信链路
消息传递的 通信方式
信箱通信(间 接通信方式)
1.信箱通信结构 2.信箱通信原语 3.信箱通信类型
直接消息传递系统
1) 直接通信原语(direct Communication way)
2.6进程通信
2013级05班

1.进程通信的类型

陈海昊 P4~P16 张志成 荣玉华 P17~35 P36~48

2.消息传递通信的实现方式


3.直接消息传递系统实例

进程通信之进程通信的类型
§2.6 进程通信

Process Communication
概念:进程间的信息交换。

3)进程的同步方式
等接收者回信后才继续向前执行,称为阻塞发送 发送完消息后不等回信继续执行,称为不阻塞发送 直到收到发送进程的消息。称为阻塞接收 不要求进程等待,当需要信件时,去查找并接收信件, 需要时再发送回答信件。称为非阻塞接收
(1)对称寻址方式
该方式要求发送接受进程必须以显 式方式提供对方标识符。
send(receiver , message); 发送一个消息给接受进程 receive(sender , message); 接受发送方发来的消息
直接消息传递系统
(2)非对称寻址方式。 接受进程可能需要与多个发送 进程通信通信,无法事先指定 发送进程 send(P,message);发送一个消息给进程P receive(id)接受来自任何进程的消息,id变量 可设置为进行通信的发送方进程id或名字
直接消息传递系统
2)消息的格式
字符流:发送方发送的数据没有一定 的格式,接收方不需要保留各次发送 之间的分界 报文:是网络环境下采用的消息格式 报头(header):包括数据传输时所 需的控制信息。如发送进程名,报文 长度、数据类型、发送时间等 正文( text):消息内容。分为定长 和变长两种
直接消息传递系统
2)基于共享存储区的通信方式


通信过程:

(1)向系统申请一个或多个分区 (2)获得分区获后即可读/写.

特点:高效,速度快。
2 消息传递系统(Message Passing System)
单机、多机系统、网络中的主要进程通信方式,进程间的数据交换以消 息(message)( “报文”)为单位。通过内存中开设的缓冲区,进行消息的传 递。 用户利用一组通信命令实现通信。根据实现方式的不同,可分为直接通 信和间接通信。

2)远程过程调用和远程方法调用
套接字

一个套接字是一个通信表示类型的数据结构,通常套接字 包括两类:


1)基于文件型
一个套接字关联到一个特殊的文件,通信双方通过对这个 特殊文件的读写实现通信,原理类似于管道


2)基于网络型
通信双方运行在不同主机的网络环境下,被分配了一对套 接字一个属于发送进程一个属于接收进程,接收方一旦接 到请求就会接受并完成连接并实现进程间的通信,通信结 束后系统会关闭接收方的套接字来撤销连接
套接字与管道通信的区别

1)套接字体系是全双工而管道通信是半双工 2)套接字机制不但可以单机的不同进程通信,而且使得跨 网机器间进程可以通信。 3)套接字明确地将客户端与服务器区分开来,套接字可以 实现多个客户端连到同一服务器。

远程过程调用和远程方法调用

远程过程调用是一个通信协议,它允许运行于一台主机系 统上的进程调用另一台主机系统上的进程,如果涉及的软 件采用面向对象编程,那么远程过程调用也可以被称为远 程方法调用 远程过程的调用过程详见课本P70
管道的分类
1)无名管道 进程的亲缘关系一般指的是父子关系.管道一般用
于两个不同进程之间的通信.当一个进程创建了一 个管道,并调用fork创建自己的一个子进程后,父进 程关闭读管道端,子进程关闭写管道端,这样提供了 两个进程之间数据流动的一种方式.
2)有名管道 有名管道也是一种半双工的通信方式,但是它允许

发送进程发送进程以字符流形式将大量数据送入管道,接 收进程可从管道接收数据,二者利用管道进行通信,所以 被称为管道通信 管道通信是一种单双工的通信系统。

管道通信机制应能提供三方面的协调功能: 1)互斥:管道可看作是临界资源。对管道的操作 是互斥的。
2)同步:当写进程把一定数量数据写入pipe后,便 去等待,直到读出进程取走数据后,把它唤醒。反 之亦然。 3)对方是否存在:只有确定对方存在时,才可通 信。
相关文档
最新文档