进程通信01要点课件.ppt
《进程通信01要点课件.ppt》由会员分享,可在线阅读,更多相关《进程通信01要点课件.ppt(48页珍藏版)》请在三一办公上搜索。
1、2.6进程通信,2013级05班,1.进程通信的类型 陈海昊 P4P162.消息传递通信的实现方式 张志成 P17353.直接消息传递系统实例 荣玉华 P3648,进程通信之进程通信的类型,2.6 进程通信 Process Communication,概念:进程间的信息交换。低级通信缺点:(1)效率低;(2)通信对用户不透明。高级通信特点:效率高;用户利用OS提供的通信命令进行数据的传输;通信实现细节对用户透明。,高级通信机制可归结为三大类: 共享存储器系统 (Shared-Memory System) 消息传递系统(Message Passing System) 管道通信(Pipe Comm
2、unication),一、进程通信的类型The type of process communication,2.6 进程通信 Process Communication,1 共享存储器系统(Shared-Memory System),1)基于共享数据结构的通信方式producer-consumer中的缓冲区,低效,不透明。系统只提供了一共享存贮器,适于少量通信。2)基于共享存储区的通信方式系统提供:内存的共享存储区。通信过程:(1)向系统申请一个或多个分区(2)获得分区获后即可读/写.特点:高效,速度快。,单机、多机系统、网络中的主要进程通信方式,进程间的数据交换以消息(message)( “
3、报文”)为单位。通过内存中开设的缓冲区,进行消息的传递。 用户利用一组通信命令实现通信。根据实现方式的不同,可分为直接通信和间接通信。1) 直接通信方式 一般在一台机器的多进程间,直接以接收者进程的内部标识为目的标识发送消息。2)间接通信: 建立一个通信参与者共享的逻辑实体信箱,发送者向信箱发送消息;接收者到信箱取消息。用于联系不十分紧密的进程之间。,2 消息传递系统(Message Passing System),管道通信系统,所谓“管道”,是用于连接一个读进程和一个写进程以实现他们之间通信的一个共享文件,又名pipe文件发送进程发送进程以字符流形式将大量数据送入管道,接收进程可从管道接收数
4、据,二者利用管道进行通信,所以被称为管道通信管道通信是一种单双工的通信系统。,1)互斥:管道可看作是临界资源。对管道的操作是互斥的。2)同步:当写进程把一定数量数据写入pipe后,便去等待,直到读出进程取走数据后,把它唤醒。反之亦然。3)对方是否存在:只有确定对方存在时,才可通信。,管道通信机制应能提供三方面的协调功能:,管道的分类,1)无名管道进程的亲缘关系一般指的是父子关系.管道一般用于两个不同进程之间的通信.当一个进程创建了一个管道,并调用fork创建自己的一个子进程后,父进程关闭读管道端,子进程关闭写管道端,这样提供了两个进程之间数据流动的一种方式.2)有名管道有名管道也是一种半双工的
5、通信方式,但是它允许无亲缘关系进程间的通信.但是由于其长期存在于系统之中,使用不当容易出错所以普通用户一般不建议使用,客户机-服务器系统,前面所说的共享内存,消息传递等技术,虽然也可以用于实现不同计算机进程的双向通信,但客户机-服务器系统的通信机制,在网络环境的各种应用领域已成为当前主流的通信实现机制。实现方法:1)套接字 2)远程过程调用和远程方法调用,套接字,一个套接字是一个通信表示类型的数据结构,通常套接字包括两类:1)基于文件型一个套接字关联到一个特殊的文件,通信双方通过对这个特殊文件的读写实现通信,原理类似于管道2)基于网络型通信双方运行在不同主机的网络环境下,被分配了一对套接字一个
6、属于发送进程一个属于接收进程,接收方一旦接到请求就会接受并完成连接并实现进程间的通信,通信结束后系统会关闭接收方的套接字来撤销连接,套接字与管道通信的区别,1)套接字体系是全双工而管道通信是半双工2)套接字机制不但可以单机的不同进程通信,而且使得跨网机器间进程可以通信。3)套接字明确地将客户端与服务器区分开来,套接字可以实现多个客户端连到同一服务器。,远程过程调用和远程方法调用,远程过程调用是一个通信协议,它允许运行于一台主机系统上的进程调用另一台主机系统上的进程,如果涉及的软件采用面向对象编程,那么远程过程调用也可以被称为远程方法调用远程过程的调用过程详见课本P70,陈海浩,消息传递实现方式
7、 以及进程线程对比,制作人:张志成,消息传递实现方式,消息传递的通信方式,直接消息传递系统(直接通信方式),信箱通信(间接通信方式),1.直接通信原语2.消息的格式3.进程的同步方式4.通信链路,1.信箱通信结构2.信箱通信原语3.信箱通信类型,直接消息传递系统,1) 直接通信原语(direct Communication way),(1)对称寻址方式,该方式要求发送接受进程必须以显式方式提供对方标识符。,send(receiver , message); 发送一个消息给接受进程receive(sender , message); 接受发送方发来的消息,直接消息传递系统,(2)非对称寻址方式。
8、,接受进程可能需要与多个发送进程通信通信,无法事先指定发送进程,send(P,message);发送一个消息给进程Preceive(id)接受来自任何进程的消息,id变量可设置为进行通信的发送方进程id或名字,直接消息传递系统,2)消息的格式,字符流:发送方发送的数据没有一定的格式,接收方不需要保留各次发送之间的分界报文:是网络环境下采用的消息格式 报头(header):包括数据传输时所需的控制信息。如发送进程名,报文长度、数据类型、发送时间等 正文( text):消息内容。分为定长和变长两种,直接消息传递系统,3)进程的同步方式,等接收者回信后才继续向前执行,称为阻塞发送发送完消息后不等回信
9、继续执行,称为不阻塞发送直到收到发送进程的消息。称为阻塞接收不要求进程等待,当需要信件时,去查找并接收信件,需要时再发送回答信件。称为非阻塞接收,直接消息传递系统,3)进程的同步方式,(1)发送进程阻塞,接受进程阻塞(主要用于进程之间紧密同步,发送进程和接受进程之间无缓冲)(2)发送进程不阻塞,接受进程阻塞(应用最广泛的进程同步方式)(3)发送进程和接受进程均不阻塞(较常见的进程同步方式),直接消息传递系统,4)通信链路(communication link):在发送进程和接收进程之间为信息传送而建立的一条通路,根据建立方式分为:显示建立:由发送进程利用建立命令建立,用完后用删除命令拆除。(网
10、络中) 隐式建立:利用发送命令(原语),系统自动建立。(单机中),直接消息传递系统,根据连接方式分为:点点连接:一条链路只有两个结点。 多点连接:一条链路连接多个结点。根据通信方向分为:单向:发送进程 接收进程。 双向:进程 进程根据链路的容量分为:无容量:链路上没有缓冲区,不能暂存信息。有容量:链路上有缓冲区,能暂存信息。,间接通信方式,信箱通信属于间接通信方式,即进程之间的通信,需要通过某种中间实体来完成。发送者向信箱发送消息;接收者到信箱取消息。用于联系不十分紧密的进程之间。,1)信箱的结构,信箱头,格子1,格子2,格子3,格子4,信箱头:用以存放有关信箱的描述信息,如信箱标识符,信箱的
11、拥有者,信箱口令,信箱的空格数等 信箱体:由若干个可以存放消息的信箱格组成,间接通信方式,2)信箱通信原语,信箱的创建和撤消 进程利用信箱创建原语建立一个新信箱。消息的发送与接收 当进程之间要利用邮箱进行通信时,必须要用共享信箱,并利用系统提供的下述通信原语进行通信。,Send(mailbox , message); 将一个消息发送到指定邮箱Receive(mailbox); 从指定邮箱中接受一个消息,间接通信方式,3)邮箱的类型,私用信箱(private mailbox) :由用户进程自己创建,并作为该进程的一部分。拥有者可从中读,其它进程只能向其中发送。拥有者进程结束,信箱消失。 公用信箱
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 进程 通信 01 要点 课件
链接地址:https://www.31ppt.com/p-1797968.html