进程通信01要点课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《进程通信01要点课件.ppt》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 进程 通信 01 要点 课件
- 资源描述:
-
1、2.62.6进程通信2013级05班1.进程通信的类型进程通信的类型 陈海昊陈海昊 P4P162.消息传递通信的实现方式消息传递通信的实现方式 张志成张志成 P17353.直接消息传递系统实例直接消息传递系统实例 荣玉华荣玉华 P3648 进程通信之进程通信的类型2.6 进程通信 Process Communication一、进程通信的类型一、进程通信的类型The type of process communication2.6 进程通信 Process Communication1 共享存储器系统(Shared-Memory System)间接通信:间接通信:建立一个通信参与者共享的逻辑实体
2、建立一个通信参与者共享的逻辑实体信箱信箱,发送者向信箱发送消息;接收者到信箱取消息。用于联系不十发送者向信箱发送消息;接收者到信箱取消息。用于联系不十分紧密的进程之间。分紧密的进程之间。2 消息传递系统(Message Passing System)管道通信系统Y所谓“管道”,是用于连接一个读进程和一个写进程以实现他们之间通信的一个共享文件,共享文件,又名pipe文件Y发送进程发送进程以字符流形式将大量数据送入管道,接收进程可从管道接收数据,二者利用管道进行通信,所以被称为管道通信Y管道通信是一种单双工的通信系统。1 1)互斥:)互斥:管道可看作是临界资源。对管道的操作管道可看作是临界资源。对
3、管道的操作是互斥的。是互斥的。2 2)同步:)同步:当写进程把一定数量数据写入当写进程把一定数量数据写入pipepipe后后,便便去等待,直到读出进程取走数据后,把它唤醒。反去等待,直到读出进程取走数据后,把它唤醒。反之亦然。之亦然。3 3)对方是否存在:)对方是否存在:只有确定对方存在时,才可通只有确定对方存在时,才可通信。信。管道通信机制应能提供三方面的协调功能:管道通信机制应能提供三方面的协调功能:管道的分类Y1)无名管道Y进程的亲缘关系一般指的是父子关系.管道一般用于两个不同进程之间的通信.当一个进程创建了一个管道,并调用fork创建自己的一个子进程后,父进程关闭读管道端,子进程关闭写
4、管道端,这样提供了两个进程之间数据流动的一种方式.Y2)有名管道Y有名管道也是一种半双工的通信方式,但是它允许允许无亲缘关系进程间的通信无亲缘关系进程间的通信.但是由于其长期存在于系统之中,使用不当容易出错所以普通用户一般不建议使用 客户机-服务器系统Y前面所说的共享内存,消息传递等技术,虽然也可以用于实现不同计算机进程的双向通信,但客户机-服务器系统的通信机制,在网络环境的各种应用领域已成为当前主流的通信实现机制。Y实现方法:1)套接字Y 2)远程过程调用和远程方法调用套接字Y一个套接字是一个通信表示类型的数据结构,通常套接字包括两类:Y1)基于文件型Y一个套接字关联到一个特殊的文件,通信双
5、方通过对这个特殊文件的读写实现通信,原理类似于管道Y2)基于网络型Y通信双方运行在不同主机的网络环境下,被分配了一对套接字一个属于发送进程一个属于接收进程,接收方一旦接到请求就会接受并完成连接并实现进程间的通信,通信结束后系统会关闭接收方的套接字来撤销连接套接字与管道通信的区别Y1)套接字体系是全双工而管道通信是半双工Y2)套接字机制不但可以单机的不同进程通信,而且使得跨网机器间进程可以通信。Y3)套接字明确地将客户端与服务器区分开来,套接字可以实现多个客户端连到同一服务器。远程过程调用和远程方法调用Y远程过程调用远程过程调用是一个通信协议,它允许运行于一台主机系统上的进程调用另一台主机系统上
6、的进程,如果涉及的软件采用面向对象编程,那么远程过程调用也可以被称为远远程方法调用程方法调用Y远程过程的调用过程详见课本远程过程的调用过程详见课本P70陈海浩消息传递实现方式 以及进程线程对比制作人:张志成消息传递实现方式消息传递的通信方式直接消息传递系统(直接通信方式)信箱通信(间接通信方式)1.直接通信原语2.消息的格式3.进程的同步方式4.通信链路1.信箱通信结构2.信箱通信原语3.信箱通信类型直接消息传递系统1)直接通信原语(direct Communication way)(1)对称寻址方式该方式要求发送接受进程必须以显式方式提供对方标识符。send(receiver,message
7、);发送一个消息给接受进程receive(sender,message);接受发送方发来的消息直接消息传递系统(2)非对称寻址方式。接受进程可能需要与多个发送进程通信通信,无法事先指定发送进程send(P,message);发送一个消息给进程Preceive(id)接受来自任何进程的消息,id变量可设置为进行通信的发送方进程id或名字直接消息传递系统2)消息的格式字符流字符流:发送方发送的数据没有一定:发送方发送的数据没有一定的格式,接收方不需要保留各次发送的格式,接收方不需要保留各次发送之间的分界之间的分界报文报文:是网络环境下采用的消息格式:是网络环境下采用的消息格式 报头报头(heade
8、r):包括数据传输时所包括数据传输时所需的控制信息。如发送进程名,报文需的控制信息。如发送进程名,报文长度、数据类型、发送时间等长度、数据类型、发送时间等 正文正文(text):消息内容。分为定长:消息内容。分为定长和变长两种和变长两种直接消息传递系统3)进程的同步方式等接收者回信后才继续向前执行,称为等接收者回信后才继续向前执行,称为阻塞发送阻塞发送发送完消息后不等回信继续执行,称为发送完消息后不等回信继续执行,称为不阻塞发送不阻塞发送直到收到发送进程的消息。称为直到收到发送进程的消息。称为阻塞接收阻塞接收不要求进程等待,当需要信件时,去查找并接收信件,不要求进程等待,当需要信件时,去查找并
9、接收信件,需要时再发送回答信件。称为需要时再发送回答信件。称为非阻塞接收非阻塞接收直接消息传递系统3)进程的同步方式(1)发送进程阻塞,接受进程阻塞(主要用)发送进程阻塞,接受进程阻塞(主要用于进程之间紧密同步,发送进程和接受进程之于进程之间紧密同步,发送进程和接受进程之间无缓冲)间无缓冲)(2)发送进程不阻塞,接受进程阻塞(应用)发送进程不阻塞,接受进程阻塞(应用最广泛的进程同步方式)最广泛的进程同步方式)(3)发送进程和接受进程均不阻塞(较常见)发送进程和接受进程均不阻塞(较常见的进程同步方式)的进程同步方式)直接消息传递系统4)通信链路)通信链路(communication link):
10、在发:在发送进程和接收进程之间为信息传送而建立送进程和接收进程之间为信息传送而建立的一条通路的一条通路根据建立方式分为:显示建立:由发送进程利用建立命令建立,用完后用删除显示建立:由发送进程利用建立命令建立,用完后用删除命令拆除。(网络中)命令拆除。(网络中)隐式建立:利用发送命令(原语),系统自动建立。隐式建立:利用发送命令(原语),系统自动建立。(单机中)(单机中)直接消息传递系统根据连接方式分为:点点连接:点点连接:一条链路只有两个结点。一条链路只有两个结点。多点连接:多点连接:一条链路连接多个结点。一条链路连接多个结点。根据通信方向分为:根据通信方向分为:单向:单向:发送进程发送进程
11、接收进程。接收进程。双向:双向:进程进程 进程进程根据链路的容量分为:根据链路的容量分为:无容量:无容量:链路上没有缓冲区,不能暂存信息。链路上没有缓冲区,不能暂存信息。有容量:有容量:链路上有缓冲区,能暂存信息。链路上有缓冲区,能暂存信息。信箱通信属于间接通信方式,即进程之间的通信,需要通过某种中间实体来完成。发送者向信箱发送消息;接收者到信箱取消息。用于联系不十分紧密的进程之间。1)信箱的结构 信箱头格子1格子2格子3格子4信箱头:信箱头:用以存放有关信用以存放有关信箱的描述信息,如信箱标箱的描述信息,如信箱标识符,信箱的拥有者,信识符,信箱的拥有者,信箱口令,信箱的空格数等箱口令,信箱的
12、空格数等 信箱体:信箱体:由若干个可以存由若干个可以存放消息的信箱格组成放消息的信箱格组成2)信箱通信原语信箱的创建和撤消信箱的创建和撤消 进程利用信箱创建原语建立一个新信箱。进程利用信箱创建原语建立一个新信箱。消息的发送与接收消息的发送与接收 当进程之间要利用邮箱进行通信时,必当进程之间要利用邮箱进行通信时,必须要用共享信箱,并利用系统提供的下述须要用共享信箱,并利用系统提供的下述通信原语进行通信通信原语进行通信。Send(mailbox,message);将一个消息发送到指定邮箱Receive(mailbox);从指定邮箱中接受一个消息3)邮箱的类型私用信箱私用信箱(private mai
展开阅读全文