第七节分布式共享内存.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
分布式共享内存 在本章中,我们研究实现分布式共享内存(distributed shared memory简称DSM)。 引论 传统上,分布式计算是基于消息传递模型,在这种模型下进程们经由以消息形式交换数据来彼此互相交互和共享数据。Hoare的通讯顺序进程(communicating sequential processes),客户-服务器模型和远程过程调用都是这种模型的例子。 分布式共享内存(Distributed shared memory简称DSM)系统是分布式操作系统的一个资源管理成分,它实现在没有物理地共享内存的分布式系统中的共享内存模型。见图7.1。 图7.1分布式系统中的共享内存模型 这个共享内存模型提供一个虚拟地址空间,使得被在一个分布式系统中所有结点(计算机)之间共享。 体系结构和动力 具有分布式共享内存,程序访问在共享地址空间中的数据正如同访问在传统的虚存中的数据一样。在支持分布式共享内存的系统中,数据既在辅存和主存之间也在不同结点的主存之间移动。 每个结点可以拥有存贮在共享地址空间中的数据,并且当数据从一个结点移到另一个结点时,拥有关系可以改变。当一个进程访问在共享地址空间中的数据时,一个映照管理者(mapping manager) 映照共享内存地址到物理存储,这个物理存储可以是本地或远程的。 映照管理者是一个或者实现在操作系统内核中或者作为一个运行时库例程的软件层。 为了减少由于通讯误而带来的延迟,当共享内存地址映照到在在一个远程结点上的一个物理内存位置时,分布式共享内存可以移动在共享内存地址中的数据从一个远程结点到正在访问数据的结点。在这样情况下,分布式共享内存利用底层通讯系统的通讯服务。 分布式共享内存的优点 在消息传递模型中,程序通过明显的消息传递使共享数据可供使用。换句话说,程序员需要意识到进程之间数据移动。程序员不得不明显地使用通讯原语(例如SEND和RECEIVE),放一个重要的负担在它们身上。 相反,分布式共享内存系统隐藏这个明显的数据移动并且提供一个较简单的程序员已经精通的共享数据抽象。因此,利用分布式共享内存比通过明显的消息传递更容易地设计和编写并行算法。 在消息传递模型中,数据在两个不同的地址空间之间移动。这使得它难以在两个进程之间传递复杂的数据结构。而且传递由“引用”的数据和传递包含指针的数据结构一般是困难的和贵的。相反,分布式共享内存系统允许传递由“引用”的复杂的数据结构,于是简化了对分布式应用的算法的开发。 仅移动规定的所引用的数据片来代替由移动整块或包含所引用的引用场点的数据页,分布式共享内存利用程序所显示的引用局部性,因此削减了在网络上的通信开销。 分布式共享内存系统比紧偶合多机系统更便宜。这是因为分布式共享内存系统可以利用货架上的(off-the-shelf)硬件建立不需要复杂的接口把共享内存连接到处理机。 在一个分布式共享内存系统所有结点中可供使用物理内存组合在一起是巨大的。这个大的内存可以用于有效地运行要求大内存的程序而不用招致由于在传统的分布系统中对换引起的磁盘延迟。这个事实也由处理机速度相对于内存速度预料的增加和非常高速网络出现所支持。 在具有单个共享内存的紧偶合多机系统中主存经由一个公共总线访问,这限制多机系统为几十个处理机。分布式共享内存系统没有这个缺点,并且可以容易地向上扩充。 为共享内存多处理机写的程序原则上可以不加改变地运行在分布式共享内存系统。至少这样的程序可以容易地移到分布式共享内存系统中。 本质上,分布式共享内存系统努力克服共享内存机器体系结构的限制并且减少在分布系统中写并行程序。所需的努力。 实现分布式共享内存的算法 实现分布式共享内存的中心课题是: 如何追踪远程数据的位置; 当访问远程数据时,.如何克服.通信延迟和在分布系统中通信协议的执行相联的开销; 为了改善系统性能,.如何使共享数据在几个结点上并发地可供访问。 现在我们描述实现分布式共享内存的四个基本算法。 中央服务器(Central-Server)算法 迁移算法 读复制(Read-Replicatin)算法 完全复制算法 中央服务器(Central-Server)算法 在中央服务器(Central-Server)算法中,一个中央服务器维护所有的共享数据。它服务从其它结点或者客户来的读请求,返回数据项给它们(见图7.2)。在客户写请求时,它更新数据并返回表示收到的消息。 在表示收到的消息失效情况一个超时(timeout)可以被采用来重发请求。重复的写请求可以由写请求所伴随的顺序号检测。在几次重新传输而又无响应后一个失败的条件被返回到企图访问共享数据的应用。 虽然中央服务器算法其实现是简单的,但中央服务器可能变成一个瓶颈。为了克服这个问题,共享数据可以分布在几个服务器上。在这种情况下,客户必须

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档