- 1、本文档共55页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中南大学软件学院 分布式程序设计语言 3.1 分布式程序设计语言概述 对应用程序进行程序设计的理由: 减少单个计算的周转时间; 增加可靠性和可用性; 使系统的某些部分提供某些特殊功能以及固有的分布式应用。 分布式应用程序的分类 并行、高性能应用程序。通过并行性达到加速是在分布计算系统上运行应用程序的最主要的原因。 容错应用程序。分布计算系统具有允许部分失效的特性,即由于各处理机具有自治性,一个处理机的故障不影响其他处理机的正常工作。程序和数据也可在若干处理机上复制而进一步增加可靠性。 具有专用功能的应用程序。一些应用程序可以被构造成一组专用的服务程序。例如文件服务、打印服务、进程服务、终端服务、时间服务等。 固有的分布式应用程序。有些应用程序本身就是分布的,在这种情况下,可以把工作站的集合看成一个分布计算系统,这种应用程序必须在分布式硬件上运行。 分布式程序设计与顺序程序设计的区别 使用多个处理机:分布式程序在不同处理机上并行执行其代码的不同部分,这是对分布式程序设计的第一个要求 处理机合作:分布式计算系统的各个进程在执行分布式应用程序时需要合作,能相互通信和同步,这是对分布式程序设计支持的第二个要求。 处理部分失效:在分布计算系统中一些CPU失效时,其他CPU照样工作。能对系统的部分失效进行检测并恢复是分布式程序设计的第三个要求。 分布式程序设计语言的分类 按并行模型来分 顺序进程并行语言:这类语言使用的最基本模型是一组顺序进程,它们并行运行,并且通过报文传递进行通信。大部分是流行的C(或C++)和FORTRAN的扩展。 具有内在并行性的语言:一些研究者认为算法语言不是处理并行性的最好语言,因为算法语言是内在顺序式的,许多研究者研究具有内在并行性的语言,如函数式语言、逻辑语言和面向对象语言。 按通信模型来分 分布式程序语言分为逻辑上分布的语言和逻辑上非分布的语言。分布式系统逻辑上和物理上的分布有四种组合: 在物理分布的硬件上运行逻辑上分布的软件。一组进程,每个进程在分开的处理机上运行,相互使用SEND和RECEIVE原语通信,在网络上发送报文。 在物理非分布的硬件上运行逻辑上分布的软件。具有相同逻辑的多进程结构,用共享主存方法实现报文传递来模拟物理报文传递通信。 在物理分布的硬件上运行逻辑上非分布的软件。试图隐匿物理分布,使分布式系统相对于程序员来说好像有共享存储器。 在物理非分布的硬件上运行逻辑上非分布的软件。使用共享数据通信,物理共享存储器的存在使得实现起来比较容易。 容错模型和技术 故障的处理模型: 系统对程序员隐匿全部处理机故障。 给程序员提供高层机制,使得程序员能够描述哪些进程和数据是重要的,以及发生崩溃后怎样恢复。 实现可靠性的方法: 程序设计容错技术有三类:向前恢复、向后恢复、错误屏蔽。 通信容错,依赖于使用的通信方式和故障的类型。 3.2 并行性的支持 并行性的概念 并行性:因为分布计算系统有多个处理机,所以可把程序分成若干部放到多个处理机上同时运行,这就是所谓的并行性。 伪并行性:即把程序表示为一组并行运行的进程,但不管它们是否在不同的处理机上同时运行。 并行粒度:并行单位可以是进程(如并发C),也可以是表达式(如Par Alfl)。一般说来,通信代价越大,则并行的粒度就应该越大。 并行性的表示 进程并行:一般说来,一个进程是一个逻辑处理机,顺序地执行代码,具有自己的状态和数据。在语言中,如同过程或过程类型一样,进程或进程类型是要被说明的。 对象并行:面向对象语言中的并行性可以用两种方法获得。Smalltalk-80包含传统的进程概念,让程序员处理两种模块:进程和对象。另一种方法是对象本身作为并行单位。用下述方法扩充顺序对象模型可获得并行性:(1)允许对象不必在收到报文时才活动;(2)允许接收对象在返回结果后继续执行;(3)允许一次向几个对象发送报文;(4)允许报文发送者继续和接收者并行工作。 语句并行:语句被分成组且并行执行 SEQ S1 S2 或 PAR S1 S2 并行循环语句 PAR j=0 FOR n A[j]:=A[j]+1 函数并行 如果函数没有任何副作用,则出了“结束”这一点外,在那种次序执行方面是没有差别的,例如表达h(f(3,4),g(8)),先计算f或g是没有关系的,因此可以并行计算f和g。 原则上,所有函数调用均可以并行执行,唯一的限制是使用另一个函数的结果的函数要等待该结果的产生。 对于分布式计算系统,函数方法需要解决以下几个问题: 确立并行度,即粒度大小; 如何分配计算问题; 编译程序,确立处理机的分配。 子句的并行
您可能关注的文档
- 计算机及其教育应用.ppt
- 现代纺织装备的现状和发展趋势.ppt
- 国贸、营销专业人才培养探讨.ppt
- 药品与药品监督管理.ppt
- 医学论文的有关规范要求.ppt
- 中国农村改革开 放三十年的基本经验与政策集合.ppt
- 第七章 福利与保险.ppt
- 智能仪器软件设计.ppt
- 综合实践活动校本培训.ppt
- 关税措施与非关税措施.ppt
- PDM软件:Siemens Teamcenter二次开发_(17).Teamcenter最佳实践与案例分析.docx
- SCADA软件:GE Proficy二次开发_(4).Proficy开发环境搭建.docx
- 智能电表软件:Landis+Gyr智能电表二次开发_(13).系统集成与测试.docx
- 智能电表软件:Elster智能电表二次开发_(8).Elster智能电表二次开发环境搭建.docx
- PDM软件:Siemens Teamcenter二次开发_(11).TeamcenterAPI与编程基础.docx
- SCADA软件:GE Proficy二次开发_(7).报警与事件管理.docx
- 智能电表软件:Echelon智能电表二次开发_(11).智能电表行业标准与法规.docx
- 智能电表软件:Itron智能电表二次开发_(6).用户界面定制与开发.docx
- 智能电表软件:Elster智能电表二次开发_(9).Elster智能电表二次开发工具使用.docx
- PDM软件:PTC Windchill二次开发_(21).Windchill最佳实践案例分析.docx
文档评论(0)