《分布式系统设计(二)》青少年文学教育丛书.pdfVIP

《分布式系统设计(二)》青少年文学教育丛书.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
下载 第2章 分布式程序设计语言 在这一章里,我们概述通用分布式程序设计语言并介绍类 C S P分布式控制描述语言 (D C D L )。 这种语言用于描述一些控制结构,如并行的表示、进程间通信和同步、容错设计。用 D C D L表示 的控制算法在抽象层上提出,可以应用于操作系统层、语言运行时系统层或用户层。 2.1 分布式程序设计支持的需求 显然,传统的顺序程序设计语言如 F o r t r a n 、P a s c a l和C 不适合于分布式系统。这些语言不能 解决诸如并发、通信、同步和可靠性的问题。 基本上,可在三个方面区分分布式程序设计和顺序程序设计 [ 7 ] : • 多个P E 的使用。 • PE 之间的合作。 • 对局部故障的生存能力。 多个P E 的使用是和并行的表示相联系的。P E之间的合作包括两种类型的交互:通信和同步。 通信一般包括两个或更多收发消息的进程。同步可能由于竞争 (c o m p e t i t i o n )或条件 (c o n d i t i o n )。 当几个进程试图访问系统中有限资源时就发生了竞争。这个问题称做互斥,第 4章将做详细讨论。 由条件产生的同步发生在当一个进程在下述意义上依赖于其他进程时:它的进度可能被阻塞直 到系统状态的某个条件变为真。虽然分布式系统具有对部分故障的存活潜力,用户或系统设计 者还是要负责把这种潜力转化为现实。 注意,上述问题可以在以下某一层次上得以解决:(a )用户层,(b )语言运行时层,(c )操 作系统层。我们不考虑不同层次上这些问题的实现细节,而是着重于独立于层次的抽象解决方案。 用于提供抽象解决方案的语言是 D C D L 。它是一种框架控制驱动语言( skeleton control driven language )。与模式驱动语言(P R O L O G )、数据驱动语言(VA L )或需求驱动语言(F P ) [ 2 7 ] 相比,D C D L类似于通信顺序进程( communicating sequential processes ,C S P ) 。另一种分类 法把程序设计语言分为命令型和应用型。 D C D L是一种面向语句和顺序的命令型语言。应用型语 言通过功能应用和绑定来表示程序。 一种程序设计语言通过它的语法和语义来定义。语法定义了程序中的合法的符号串,语义 定义了每个语法结构的意义或相对于每个语法结构所要采取的动作类型。 D C D L将用于描述任意 层次上的算法。附录给出了 D C D L 中常用的符号列表。D C D L 中每个结构的意义不通过形式语义 模型如操作型、公理型和指称型语义来描述,而是通过后面几节中的实例来描述。 2.2 并行/分布式程序设计语言概述 我们要把分布式程序设计语言和并行程序设计语言区分开来。分布式程序设计语言必须考 虑通信的开销而并行程序设计语言通常工作在共享存储器上。这一章我们只讨论分布式程序设 第2章认分布式程序设计语言部分21 下载 计语言而不涉及主要针对并行计算的并行程序设计语言。 在并行程序设计语言中,信号量和管程主要用于同步对共享存储器的协同多路访问。一个 信号量[ 1 8 ]是一个非负整型变量,在它上面定义了两种操作: P 操作(等待)和 V操作(发信号)。 对共享存储器的每次访问都必须在一个 P 操作之后和一个 V操作之前。管程 [ 2 5 ] 定义了一套资源和 管理这些资源的操作。资源只能通过管程自身定义的操作来访问。 在分布式程序设计语言中,语言本身就使得问题的分解变得和通信细节一样明显。其中, C S P[ 2 7 ]对其他面向消息传递系统的程序语言的设计有重大的影响。 一些程序设计语言介于以上两种模型之间。比如,协同式语言中,问题的分解是显式的, 但一些通信细节被隐藏起来了。最好的例子是 L i n d a[ 1 5 ] ,它通过提供元组空间( tuple space )的 抽象去耦(d e c o u p l e )通信中的接发双方。通过访问元组空间可

文档评论(0)

***** + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8135026137000003

1亿VIP精品文档

相关文档