- 1、本文档共21页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
高级操作系统 北京邮电大学 * Outline 第二章 分布式通信 2.1 各种通信方式 2.2 消息传递 2.3 组通信 2.4 远程调用RPC 2.1 各种通信方式 单处理机进程间通信 单处理机系统中进程间的通信无疑是利用共享存储器 分布式系统之间的通信 分布式系统中,由于缺少共享存储器,系统中的通信都是基于消息传递的 2.1 各种通信方式 分布式系统实现进程间通信注意问题 无共享存储器,不能借助共享变量的方法 机器间消息传递的可靠性低于机器内信息传递的可靠性 系统内任意两台机器未必直接连接,往往需要中转 系统内的各台机器型号可能不同 通信的实现与系统结构、通信线路 结构、通信介质的物理性能等有密切关系 2.1 各种通信方式 进程间通信的实现方法 可以是低级的,涉及系统调用,或者通过语言级的支持实现 进程间通信方法主要有 消息传递、管道、sockets、RPC、共享内存 对象之间的通信手段 CORBA、 DCOM 2.1 各种通信方式 选择进程间通信方法主要考虑的问题 程序员对所选方法的熟悉程度 进程间通信机制的透明性,程序员知道得细节越少,出错得机会也就越少 系统所支持的方法 考虑系统的扩充 支持进程的迁移,不同文件系统的进程间通信 通信机制的标准化问题 通信机制的有效性 2.2 消息传递 消息传递,物理上复制要共享的数据到另外一个进程的地址空间 下列情况,一般不常用消息传递 两进程不共享内存空间 不同的系统中 在同一系统中,每个进程有自己的内存 消息通常是通过OS提供的基本通信原语用消息包或帧的形式发送的。通信原语有以下两种 阻塞原语(又称为同步原语) 非阻塞原语(又称为异步原语) 2.2 消息传递 阻塞原语 消息被发送时,发送的进程被阻塞(即挂起),直到消息传送完毕,其后的命令才能继续执行 阻塞原语实现进程不再阻塞的2种方法 轮询 :利用测试原语,测试缓冲区的相关信息(状态),忙等待 中断 : 也可以在非阻塞原语种利用 如果轮询一直不成功,或者一直无中断,这样会无限阻塞下去 ,因此要有计时器,缺省的设置,或者程序员控制 2.2 消息传递 阻塞send receive 消息传递(同步)适合于C/S模型 2.2 消息传递 C/S模型的几个设计问题 寻址 阻塞和非阻塞原语 有缓冲和无缓冲原语 可靠和非可靠原语 管道 两进程间的通信通过内核在有限大小的缓冲区上实现,这类原语通过系统调用实现。当缓冲区满时,引起阻塞。 2.2 消息传递 Sockets 通过网络的通信,不是共享数据结构或文件。 2.3 组通信 组通信的用途 具有冗余结构的系统 在分布式系统中查找 多副本的更新 组通信的特性 原子性 定序 2.3 组通信 不可靠组播 组通信最简单的实现方式就是不可靠组播,即简单地向每个目标发送一条消息。 可靠组播 一种实现方式是发送者向一个组中所有成员发送消息,然后等待每一个成员的回复。 2.4 远程调用RPC RPC使用过程调用实现远程通信,在传统的过程化程序设计语言环境中,它的语义类似于本地过程调用的语义,因此,它可向应用层用户提供良好的接口。 2.4 远程调用RPC 程序员不知道调用的是一个远程过程,还是一个本地过程,这需要有相应的支持机制,将一台计算机上语言级调用自动转化为另一台计算机上相应的语言级调用,实现变量和结果的传送。 调用者阻塞,等待返回值,而不是仅仅一个确认值。与各种程序设计语言一样,对参数数目和数据类型有限制 2.4 远程调用RPC RPC与本地调用的区别 数据表示问题 如果RPC是在两种异构的机器上进行的,不同机器数据表示可能不同,包括机器的字长等。 指针 在不具备共享地址空间的情况下,RPC不可能允许在网络范围内传递指针。 故障 调用者和被调用者都可能在调用期间发生故障 2.4 远程调用RPC 对于故障,由于调用者无法知道到底出现了那种情况,因此,系统需要提供一些基本的保护机制来确保RPC的正确效果。不同RPC实现方案定义的这种效果或RPC语义是有差别的,以下是几种常用的RPC调用语义。 At- Most -Once (最多一次) 相同RPC的重复调用,服务器不处理。 At- least -Once (至少一次) RPC将被执行至少一次,可能多次。 Last -of-Many-Call (最近调用) 每个调用包含一个标识,client接收最近调用者的返回值。 2.4 远程调用RPC RPC系统的实现问题 RPC协议族 面向连接的 面向非连接的 选择标准通用协议,还是专门为RPC设计的协议 信包和报文的长度 确认 停等协议(stop and wait protoco
您可能关注的文档
最近下载
- 国新办“924”政策组合拳深度解读:创新货币政策工具箱,多措并举推动经济高质量发展.docx
- 售电企业电力交易负荷预测管理导则.pdf VIP
- 发电企业电力市场交易辅助决策信息系统技术规范.pdf VIP
- 北斗产业园项目可行性研究报告.docx
- 2024电力现货交易辅助决策系统解决方案.pdf
- 2023发电企业现货交易辅助决策管理系统.docx
- KSC20系列开关磁阻电动机控制器使用说明书V_1.2.docx
- 一种电力现货交易辅助决策系统模型.pdf VIP
- 北斗产业园风险分析与应对策略.docx
- Unit 1 Greetings P1 Greet each other(教学课件)一年级英语上学期(沪教版 2024).pptx
文档评论(0)