- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.6进程通信 2013级05班 1.进程通信的类型 陈海昊 P4~P16 2.消息传递通信的实现方式 张志成 P17~35 3.直接消息传递系统实例 荣玉华 P36~48 进程通信之进程通信的类型 §2.6 进程通信 Process Communication 概念:进程间的信息交换。 低级通信缺点: (1)效率低;(2)通信对用户不透明。 高级通信特点: 效率高; 用户利用OS提供的通信命令进行数据的传输;通信实现细节对用户透明。 高级通信机制可归结为三大类: 共享存储器系统 (Shared-Memory System) 消息传递系统(Message Passing System) 管道通信(Pipe Communication) 一、进程通信的类型The type of process communication §2.6 进程通信 Process Communication 1 共享存储器系统(Shared-Memory System) 1)基于共享数据结构的通信方式 producer-consumer中的缓冲区,低效,不透明。 系统只提供了一共享存贮器,适于少量通信。 2)基于共享存储区的通信方式 系统提供:内存的共享存储区。 通信过程: (1)向系统申请一个或多个分区 (2)获得分区获后即可读/写. 特点:高效,速度快。 单机、多机系统、网络中的主要进程通信方式,进程间的数据交换以消息(message)( “报文”)为单位。通过内存中开设的缓冲区,进行消息的传递。 用户利用一组通信命令实现通信。根据实现方式的不同,可分为直接通信和间接通信。 1) 直接通信方式 一般在一台机器的多进程间,直接以接收者进程的内部标识为目的标识发送消息。 2)间接通信: 建立一个通信参与者共享的逻辑实体-信箱,发送者向信箱发送消息;接收者到信箱取消息。用于联系不十分紧密的进程之间。 2 消息传递系统(Message Passing System) 管道通信系统 所谓“管道”,是用于连接一个读进程和一个写进程以实现他们之间通信的一个共享文件,又名pipe文件 发送进程发送进程以字符流形式将大量数据送入管道,接收进程可从管道接收数据,二者利用管道进行通信,所以被称为管道通信 管道通信是一种单双工的通信系统。 1)互斥:管道可看作是临界资源。对管道的操作是互斥的。 2)同步:当写进程把一定数量数据写入pipe后,便去等待,直到读出进程取走数据后,把它唤醒。反之亦然。 3)对方是否存在:只有确定对方存在时,才可通信。 管道通信机制应能提供三方面的协调功能: 管道的分类 1)无名管道 进程的亲缘关系一般指的是父子关系.管道一般用于两个不同进程之间的通信.当一个进程创建了一个管道,并调用fork创建自己的一个子进程后,父进程关闭读管道端,子进程关闭写管道端,这样提供了两个进程之间数据流动的一种方式. 2)有名管道 有名管道也是一种半双工的通信方式,但是它允许无亲缘关系进程间的通信.但是由于其长期存在于系统之中,使用不当容易出错.所以普通用户一般不建议使用 客户机-服务器系统 前面所说的共享内存,消息传递等技术,虽然也可以用于实现不同计算机进程的双向通信,但客户机-服务器系统的通信机制,在网络环境的各种应用领域已成为当前主流的通信实现机制。 实现方法:1)套接字 2)远程过程调用和远程方法调用 套接字 一个套接字是一个通信表示类型的数据结构,通常套接字包括两类: 1)基于文件型 一个套接字关联到一个特殊的文件,通信双方通过对这个特殊文件的读写实现通信,原理类似于管道 2)基于网络型 通信双方运行在不同主机的网络环境下,被分配了一对套接字一个属于发送进程一个属于接收进程,接收方一旦接到请求就会接受并完成连接并实现进程间的通信,通信结束后系统会关闭接收方的套接字来撤销连接 套接字与管道通信的区别 1)套接字体系是全双工而管道通信是半双工 2)套接字机制不但可以单机的不同进程通信,而且使得跨网机器间进程可以通信。 3)套接字明确地将客户端与服务器区分开来,套接字可以实现多个客户端连到同一服务器。 远程过程调用和远程方法调用 远程过程调用是一个通信协议,它允许运行于一台主机系统上的进程调用另一台主机系统上的进程,如果涉及的软件采用面向对象编程,那么远程过程调用也可以被称为远程方法调用 远程过程的调用过程详见课本P70 @陈海浩 消息传递实现方式 以及进程线程对比 制作人:张志成 消息传递实现方式 消息传递的通信方式 直接消息传递系统(直接通信方式) 信箱通信(
文档评论(0)