高级操作系统课件-第四章分布式系统通信_第1页
高级操作系统课件-第四章分布式系统通信_第2页
高级操作系统课件-第四章分布式系统通信_第3页
高级操作系统课件-第四章分布式系统通信_第4页
高级操作系统课件-第四章分布式系统通信_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 进程间的通信是一切分布式系统的基础,进程间的通信是一切分布式系统的基础,它基于底层网络提供的底层消息传递机制它基于底层网络提供的底层消息传递机制 分层协议分层协议 远程过程调用远程过程调用 远程对象调用远程对象调用 面向消息的通信面向消息的通信 多播通信多播通信 OSI 模型中的层、接口和协议模型中的层、接口和协议2-1必须在不同层次制订多必须在不同层次制订多种协议,包括从位传输种协议,包括从位传输的底层细节到信息表示的底层细节到信息表示的高层细节:的高层细节:0,1的电压表示的电压表示消息的结束位消息的结束位检测消息的丢失或损坏检测消息的丢失或损坏及其处理及其处理数值、字符串及其它数数值、

2、字符串及其它数据项的长度和表示方法据项的长度和表示方法面向连接的协议:电话面向连接的协议:电话无连接的协议:邮箱无连接的协议:邮箱 在网络上传输的典型消息在网络上传输的典型消息2-2 RPC是分布式系统通信处理的事实标准是分布式系统通信处理的事实标准,实现实现消息传输的透明性。消息传输的透明性。 常规过程调用常规过程调用 客户存根和服务器存根客户存根和服务器存根 参数传递参数传递Count=read(fd,buf,nbyte),本地过程调用中的参数传递:本地过程调用中的参数传递:调用调用read前的堆栈状态前的堆栈状态过程调用执行时的堆栈状态过程调用执行时的堆栈状态 客户和服务器间的客户和服务

3、器间的RPC原理原理1.客户过程以正常的方式调用客户存根客户过程以正常的方式调用客户存根2.客户存根生成一个消息,然后调用本地操作系统客户存根生成一个消息,然后调用本地操作系统3.客户端操作系统将消息发送给远程操作系统客户端操作系统将消息发送给远程操作系统4.远程操作系统将消息交给服务器存根远程操作系统将消息交给服务器存根5.服务器存根将参数提取出来,然后调用服务器服务器存根将参数提取出来,然后调用服务器6.服务器执行要求的操作,操作完成后将结果返回给服务器服务器执行要求的操作,操作完成后将结果返回给服务器存根存根7.服务器存根将结果打包成一个消息,然后调用本地操作系服务器存根将结果打包成一个

4、消息,然后调用本地操作系统统8.服务器操作系统将含有结果的消息发送回客户端操作系统服务器操作系统将含有结果的消息发送回客户端操作系统9.客户端操作系统将消息交给客户存根客户端操作系统将消息交给客户存根10. 客户存根将结果从消息中提取出来,返回给调用它的客户客户存根将结果从消息中提取出来,返回给调用它的客户过程过程 通过通过RPC进行远程计算的步骤进行远程计算的步骤 2-8a) Pentium上的原始消息上的原始消息b) SPARC收到的消息收到的消息c) 进行逆转后的消息进行逆转后的消息 对于简单数组和结构:使用复制对于简单数组和结构:使用复制-还原代替引还原代替引用调用用调用 很难传递一般

5、意义的指针:如复杂图形的指很难传递一般意义的指针:如复杂图形的指针针RPC双方必须就交换的格式达成一致双方必须就交换的格式达成一致一个过程一个过程相应的消息相应的消息传统传统RPC交互过程交互过程异步异步RPC交互过程交互过程 使用客户端代理的远程对象的一般组织结构使用客户端代理的远程对象的一般组织结构2-16 当远程过程调用和远程对象调用不适用时,当远程过程调用和远程对象调用不适用时,需要面向消息的通信。需要面向消息的通信。 消息中的持久性和同步性消息中的持久性和同步性 面向消息的暂时通信面向消息的暂时通信 面向消息的持久通信面向消息的持久通信 通信系统的通用结构通信系统的通用结构2-20

6、驿马快递时代使用的驿马快递时代使用的持久通信持久通信:通信双方不必保持运行:通信双方不必保持运行 在在暂时通信暂时通信中,通信系统只在发送者和接收者运行时存储消息中,通信系统只在发送者和接收者运行时存储消息a)持久持久异步通信异步通信:提交消息后立即执行其他程序,电子邮件:提交消息后立即执行其他程序,电子邮件b)持久持久同步通信同步通信:提交消息后会被阻塞,直到消息已到达并:提交消息后会被阻塞,直到消息已到达并存储在接收主机存储在接收主机2-22.1c)暂时异步通信暂时异步通信d)基于基于接收接收的的暂时同步通信暂时同步通信2-22.2e)基于基于交付交付的的暂时通信暂时通信f)基于基于响应响

7、应的同步通信的同步通信 不提供消息的中介存储,实时性要求高不提供消息的中介存储,实时性要求高(几秒甚至几毫秒)(几秒甚至几毫秒) Berkeley Sockets Message-Passing Interface TCP/IP套接字原语套接字原语原语原语含义含义Socket创建新的通信端点创建新的通信端点Bind将本地地址附加(将本地地址附加(attach)到套接字上)到套接字上Listen宣布已准备好接受连接宣布已准备好接受连接Accept在收到连接请求前阻塞调用方在收到连接请求前阻塞调用方Connect主动尝试建立连接主动尝试建立连接Send通过连接发送数据通过连接发送数据Receive

8、通过连接接收数据通过连接接收数据Close释放连接释放连接 使用套接字的面向连接通信模式使用套接字的面向连接通信模式 适用于高速互联网络,为高性能并行应用程序设计,有更适用于高速互联网络,为高性能并行应用程序设计,有更高级的特性:缓冲、同步高级的特性:缓冲、同步 MPI中的基本消息传递原语中的基本消息传递原语原语原语含义含义MPI_bsend将消息追加到本地发送缓冲区中将消息追加到本地发送缓冲区中MPI_send发送消息,并等待到消息复制到本地或远程缓冲区为止发送消息,并等待到消息复制到本地或远程缓冲区为止MPI_ssend 发送消息,并等待到对方开始接收为止发送消息,并等待到对方开始接收为止

9、MPI_sendrecv发送消息,并等待到收到应答消息为止发送消息,并等待到收到应答消息为止MPI_isend传递要发送消息的引用,然后继续执行传递要发送消息的引用,然后继续执行MPI_issend传递要发送消息的引用,并等待到对方开始接收为止传递要发送消息的引用,并等待到对方开始接收为止MPI_recv接受消息,如果不存在的等待的消息则阻塞接受消息,如果不存在的等待的消息则阻塞MPI_irecv检查是否有输入的消息,但无论有无消息都不会阻塞检查是否有输入的消息,但无论有无消息都不会阻塞 提供消息的中介存储,实时性要求低(几分钟)提供消息的中介存储,实时性要求低(几分钟) Message-Qu

10、euing system 消息队列系统消息队列系统 应用程序通过在特定队列中插入消息来进行通信应用程序通过在特定队列中插入消息来进行通信 只保证发送者的消息最终被放置到接收者的队列中,只保证发送者的消息最终被放置到接收者的队列中,并不保证时间,也不保证消息被读取。并不保证时间,也不保证消息被读取。 使用队列的松耦合通信的四种组合方式使用队列的松耦合通信的四种组合方式2-26 消息队列系统中队列的基本接口消息队列系统中队列的基本接口原语原语含义含义Put将消息追加到指定队列将消息追加到指定队列Get调用进程阻塞,直到指定队列非空,取出第一个消息调用进程阻塞,直到指定队列非空,取出第一个消息Pol

11、l察看指定队列的消息,取出第一个消息,不阻塞调用进程察看指定队列的消息,取出第一个消息,不阻塞调用进程Notify注册一个处理程序,在有消息进入指定队列时调用该处理程序注册一个处理程序,在有消息进入指定队列时调用该处理程序 源队列,目的队列源队列,目的队列 队列级编址与网络级编址间的关系队列级编址与网络级编址间的关系 含有路由器的消息队列系统的通用体系结构含有路由器的消息队列系统的通用体系结构2-29 The general organization of a message broker in a message-queuing system.2-30多播通信多播通信 多播:服务器向其他多播

12、:服务器向其他N台服务器发送更新时,底台服务器发送更新时,底层的网络负责向多个接收者发送一个消息,高效层的网络负责向多个接收者发送一个消息,高效 网络层多播网络层多播 应用层多播:将节点组织成一个覆盖网络,用它应用层多播:将节点组织成一个覆盖网络,用它来传播信息给其成员,路由并非最佳来传播信息给其成员,路由并非最佳 覆盖网络的构建:覆盖网络的构建: 树状网络:路径唯一树状网络:路径唯一 网状网络;多个路径网状网络;多个路径覆盖网络路由并非最佳覆盖网络路由并非最佳基于基于 Epidemic协议使用本地信息在大型节点集中快速地传播信息协议使用本地信息在大型节点集中快速地传播信息 提供提供最终一致性

13、最终一致性:保证所有的副本最终是一致的:保证所有的副本最终是一致的一个服务器可以是:一个服务器可以是: 传染性的:持有愿意向其他服务器散布的更新传染性的:持有愿意向其他服务器散布的更新 易感的:尚未更新的服务器易感的:尚未更新的服务器 隔离的:已更新的服务器如果不愿意或不能扩散其更新隔离的:已更新的服务器如果不愿意或不能扩散其更新反熵反熵传播模型:服务器传播模型:服务器P周期的随机选取一台服务器周期的随机选取一台服务器Q交换更新,方式包括:交换更新,方式包括: P只把自己的更新推入只把自己的更新推入Q:较差的选择:较差的选择 P只从只从Q拉出新的更新拉出新的更新 P和和Q相互发送更新相互发送更

14、新 可以证明:如果初始只有一台服务器具有传染性,无论采用哪种形式,可以证明:如果初始只有一台服务器具有传染性,无论采用哪种形式,更新最终将被传播到所有服务器上:更新最终将被传播到所有服务器上:O(log(N), N为系统结点数为系统结点数 思想:思想: 如果服务器如果服务器P刚刚因为数据项刚刚因为数据项x而被更新,那么它联系任而被更新,那么它联系任意一个其他服务器意一个其他服务器Q,并试图将更新推入,并试图将更新推入Q。 如果如果Q已经被其他服务器更新了,已经被其他服务器更新了, P可能会失去继续扩散可能会失去继续扩散的兴趣,变成隔离的(这种可能性是的兴趣,变成隔离的(这种可能性是1/k) 快

15、速传播更新的方法快速传播更新的方法 但不能保证所有的服务器都被更新了但不能保证所有的服务器都被更新了 s=e-(k+1)(1-s) ,k=3时,时,s小于小于2%;k=4时,时,s小于小于0.7% 可以将可以将gossiping和反熵模型结合和反熵模型结合 分层协议分层协议 远程过程调用远程过程调用 远程对象调用远程对象调用 面向消息的通信面向消息的通信 多播通信多播通信高级操作系统编程作业一高级操作系统编程作业一任务任务使用使用socket编程实现一个简单的文件服务器。客户端程序实现编程实现一个简单的文件服务器。客户端程序实现put功能功能(将一个文件从本地传到文件服务器将一个文件从本地传到文件服务器)和和get功能功能(从文件服务器取一远程从文件服务器取一远程文件存为本地文件文件存为本地文件)。客户端和文件服务器不在同一台机器上。客户端和文件服务器不在同一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论