2第二章__分布式通信探究.ppt

  1. 1、本文档共49页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.2 远程进程调用RPC 30 2.2 远程进程调用RPC 单机进程调用: 不同进程间通过过程(函数)调用方式实现通信。调用时,调用进程必须给出被调用的过程名,传送所需参数和提供返回参数的缓冲区。 31 2.2 远程进程调用PRC 32 Count=read(fd,buf,nbytes); 传统过程调用: 调用程序将被调用进程所需的参数依次压入堆栈,最后一个参数先进栈,在被调用过程执行完成后,它把结果存入一个寄存器,消去返回地址,将控制程序返回给调用程序。调用程序从堆栈中移去参数,恢复初始状态。 2.2 远程进程调用RPC RPC基本思想: 允许程序调用位于其他节点机上的过程。程序员看不到消息传递过程和I/O处理过程。 当节点机A上的进程调用节点机B上的一个过程时,A上的调用进程被挂起,B上执行被调用过程。信息以参数形式从调用进程传送到被调用进程,并且将调用过程的执行结果返回给调用进程。 33 2.2 远程进程调用RPC PRC的特点: 具有较高透明性,调用进程不知道被调用进程在另外节点计算机上执行。被调用进程也不知道哪个机器调用它的。 透明性是通过在客户端插入一个称为client stub,在服务器端插入一个称为server stub完成的 34 2.2 远程进程调用PRC 35 2.2 远程进程调用PRC RPC远程过程调用具体步骤: 1.客户过程以通常方式调用客户代理(client stub); 2.客户代理将参数打包成一个消息并陷入内核; 3.本地内核将发送信息给远程内核;客户进程阻塞,直到应答返回; 4.远程内核把消息发送给服务器代理;此时,服务器代理已调用了receive,正处于阻塞状态并等待消息到来。消息到来后,服务器代理被唤醒, 5.服务器代理将消息拆包并取出参数,然后以通常方式调用服务器进程; 36 2.2 远程进程调用PRC 6.服务器完成相应服务并将结果送给服务器代理。服务器代理在调用结束并重新获得控制后,吧结构打包发送给客户后,回到循环顶部调用receive,等待下一个消息的到来。 7.服务器代理将结果打包形成消息并陷入内核; 8.远程内核发送消息给客户机内核; 9.客户机内核把消息传给客户代理; 10.客户代理取出结果并返回(复制)给客户的调用过程。 37 2.2 远程进程调用RPC RPC与消息传递比较 PRC优点:格式化好,使用方便,透明 性好。 消息传递优点:有较高的灵活性。 PRC 缺点: 1.远程过程调用参数在系统内不同机种间通用能力不足。 2.缺乏在一次调用过程中多次接收返回结果的能力。 3.缺乏传送大量数据的能力。 38 2.2 远程进程调用PRC 消息传递具有较高灵活性的表现: 在执行某一操作程序中,send和receive可成对或不成对出现。可在发送一个send之后发一个receive,也可以在连续发送几个send后再使用receive接收消息。对于某一操作而言,每次可以送不同的参数,且发送参数次序可以变化。 39 2.2 远程进程调用RPC 缺点:1.远程过程调用参数在系统内不同机种间通用能力不足。节点A进程向节点B提出远程调用进程需求是,将有关参数传给节点B,如果,节点间没有一个统一格式或约定,则传递的参数可能形式不同,则无法成功传递参数 2.缺乏在一次调用过程中多次接收返回结果的能力。 PRC中,情况:服务器上被调用过程计算时,产生一连串结果,随计算进行,不断返回结果,但在PRC中,请求调用和返回结果必须成对出现,对于上述情况,要求请求调用进程反复发出调用请求,才能获得一连串结果。这样增加了系统开销。 3.缺乏传送大量数据的能力。PRC中对于传送的最大数据量有一定限制,(不大于1000字节)。传送数据量大的话,必须多次传送,增加了系统开销。 40 2.3 组通信 产生背景: 消息传递和PRC都是两个进程间通信,但实际中,通信会涉及多个进程。例如:组服务器工作时,客户进程发出请求服务,接收消息的进程就不止一个,是多个。此时,希望一个客户向所有的服务器发送信息,但是无论消息传递还是PRC,都不能使用一个操作处理此状况,除非使用多个操作。 41 2.3 组通信 组概念的意义: 将进程的集合作为一个抽象的整体来处理 这样一个进程可以发送一个消息给一个组 不需知道该组的成员、位置等内部信息 42 2.3 组通信 组定义:在某一系统中或在用户指定方式下,相互作用的进程到饿集合。 组通信特性: 1.当一个消息发给这个组时,该组

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

我是一名原创力文库的爱好者!从事自由职业!

1亿VIP精品文档

相关文档