Chapter3分布式程序设计语言.ppt

上传人:王** 文档编号:168944 上传时间:2023-03-10 格式:PPT 页数:55 大小:181KB
下载 相关 举报
Chapter3分布式程序设计语言.ppt_第1页
第1页 / 共55页
Chapter3分布式程序设计语言.ppt_第2页
第2页 / 共55页
Chapter3分布式程序设计语言.ppt_第3页
第3页 / 共55页
Chapter3分布式程序设计语言.ppt_第4页
第4页 / 共55页
Chapter3分布式程序设计语言.ppt_第5页
第5页 / 共55页
Chapter3分布式程序设计语言.ppt_第6页
第6页 / 共55页
Chapter3分布式程序设计语言.ppt_第7页
第7页 / 共55页
Chapter3分布式程序设计语言.ppt_第8页
第8页 / 共55页
Chapter3分布式程序设计语言.ppt_第9页
第9页 / 共55页
Chapter3分布式程序设计语言.ppt_第10页
第10页 / 共55页
亲,该文档总共55页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Chapter3分布式程序设计语言.ppt》由会员分享,可在线阅读,更多相关《Chapter3分布式程序设计语言.ppt(55页珍藏版)》请在优知文库上搜索。

1、第三章第三章 分布式程序设计语言分布式程序设计语言第三章第三章 分布式程序设计语言分布式程序设计语言 第三章第三章 分布式程序设计语言分布式程序设计语言 22023-3-103.1 分布式程序设计语言概述分布式程序设计语言概述对应用程序进行程序设计的理由:对应用程序进行程序设计的理由:l 减少单个计算的周转时间;减少单个计算的周转时间;l 增加可靠性和可用性;增加可靠性和可用性;l 使系统的某些部分提供某些特殊功能以及固有的分布式使系统的某些部分提供某些特殊功能以及固有的分布式应用。应用。第三章第三章 分布式程序设计语言分布式程序设计语言 第三章第三章 分布式程序设计语言分布式程序设计语言 3

2、2023-3-10 分布式应用程序的分类分布式应用程序的分类l 并行、高性能应用程序。通过并行性达到加速是在分布计并行、高性能应用程序。通过并行性达到加速是在分布计算系统上运行应用程序的最主要的原因。算系统上运行应用程序的最主要的原因。 l 容错应用程序。分布计算系统具有允许部分失效的特性,容错应用程序。分布计算系统具有允许部分失效的特性,即由于各处理机具有自治性,一个处理机的故障不影响其即由于各处理机具有自治性,一个处理机的故障不影响其他处理机的正常工作。程序和数据也可在若干处理机上复他处理机的正常工作。程序和数据也可在若干处理机上复制而进一步增加可靠性。制而进一步增加可靠性。l 具有专用功

3、能的应用程序。一些应用程序可以被构造成一具有专用功能的应用程序。一些应用程序可以被构造成一组专用的服务程序。例如文件服务、打印服务、进程服务、组专用的服务程序。例如文件服务、打印服务、进程服务、终端服务、时间服务等。终端服务、时间服务等。l 固有的分布式应用程序。有些应用程序本身就是分布的,固有的分布式应用程序。有些应用程序本身就是分布的,在这种情况下,可以把工作站的集合看成一个分布计算系在这种情况下,可以把工作站的集合看成一个分布计算系统,这种应用程序必须在分布式硬件上运行。统,这种应用程序必须在分布式硬件上运行。第三章第三章 分布式程序设计语言分布式程序设计语言 第三章第三章 分布式程序设

4、计语言分布式程序设计语言 42023-3-10分布式程序设计与顺序程序设计的区别分布式程序设计与顺序程序设计的区别l 使用多个处理机:分布式程序在不同处理机上并行执行其使用多个处理机:分布式程序在不同处理机上并行执行其代码的不同部分,这是对分布式程序设计的第一个要求代码的不同部分,这是对分布式程序设计的第一个要求l 处理机合作:分布式计算系统的各个进程在执行分布式应处理机合作:分布式计算系统的各个进程在执行分布式应用程序时需要合作,能相互通信和同步,这是对分布式程用程序时需要合作,能相互通信和同步,这是对分布式程序设计支持的第二个要求。序设计支持的第二个要求。l 处理部分失效:在分布计算系统中

5、一些处理部分失效:在分布计算系统中一些CPUCPU失效时,其他失效时,其他CPUCPU照样工作。能对系统的部分失效进行检测并恢复是分照样工作。能对系统的部分失效进行检测并恢复是分布式程序设计的第三个要求。布式程序设计的第三个要求。第三章第三章 分布式程序设计语言分布式程序设计语言 第三章第三章 分布式程序设计语言分布式程序设计语言 52023-3-10分布式程序设计语言的分类分布式程序设计语言的分类l按并行模型来分按并行模型来分 顺序进程并行语言:这类语言使用的最基本模型是一组顺序进程并行语言:这类语言使用的最基本模型是一组顺序进程,它们并行运行,并且通过报文传递进行通信。顺序进程,它们并行运

6、行,并且通过报文传递进行通信。大部分是流行的大部分是流行的C(C(或或C+)C+)和和FORTRANFORTRAN的扩展。的扩展。具有内在并行性的语言:一些研究者认为算法语言不是具有内在并行性的语言:一些研究者认为算法语言不是处理并行性的最好语言,因为算法语言是内在顺序式的,处理并行性的最好语言,因为算法语言是内在顺序式的,许多研究者研究具有内在并行性的语言,如函数式语言、许多研究者研究具有内在并行性的语言,如函数式语言、逻辑语言和面向对象语言。逻辑语言和面向对象语言。第三章第三章 分布式程序设计语言分布式程序设计语言 第三章第三章 分布式程序设计语言分布式程序设计语言 62023-3-10l

7、按通信模型来分按通信模型来分 分布式程序语言分为逻辑上分布的语言和逻辑上非分布的语分布式程序语言分为逻辑上分布的语言和逻辑上非分布的语言。分布式系统逻辑上和物理上的分布有四种组合:言。分布式系统逻辑上和物理上的分布有四种组合:在物理分布的硬件上运行逻辑上分布的软件。一组进程,每在物理分布的硬件上运行逻辑上分布的软件。一组进程,每个进程在分开的处理机上运行,相互使用个进程在分开的处理机上运行,相互使用SENDSEND和和RECEIVERECEIVE原原语通信,在网络上发送报文。语通信,在网络上发送报文。 在物理非分布的硬件上运行逻辑上分布的软件。具有相同逻在物理非分布的硬件上运行逻辑上分布的软件

8、。具有相同逻辑的多进程结构,用共享主存方法实现报文传递来模拟物理辑的多进程结构,用共享主存方法实现报文传递来模拟物理报文传递通信。报文传递通信。 在物理分布的硬件上运行逻辑上非分布的软件。试图隐匿物在物理分布的硬件上运行逻辑上非分布的软件。试图隐匿物理分布,使分布式系统相对于程序员来说好像有共享存储器。理分布,使分布式系统相对于程序员来说好像有共享存储器。在物理非分布的硬件上运行逻辑上非分布的软件。使用共享在物理非分布的硬件上运行逻辑上非分布的软件。使用共享数据通信,物理共享存储器的存在使得实现起来比较容易。数据通信,物理共享存储器的存在使得实现起来比较容易。第三章第三章 分布式程序设计语言分

9、布式程序设计语言 第三章第三章 分布式程序设计语言分布式程序设计语言 72023-3-10l容错模型和技术容错模型和技术故障的处理模型:故障的处理模型: 系统对程序员隐匿全部处理机故障。系统对程序员隐匿全部处理机故障。给程序员提供高层机制,使得程序员能够描述哪些进程给程序员提供高层机制,使得程序员能够描述哪些进程和数据是重要的,以及发生崩溃后怎样恢复。和数据是重要的,以及发生崩溃后怎样恢复。实现可靠性的方法:实现可靠性的方法:程序设计容错技术有三类:向前恢复、向后恢复、错误程序设计容错技术有三类:向前恢复、向后恢复、错误屏蔽。屏蔽。通信容错,依赖于使用的通信方式和故障的类型通信容错,依赖于使用

10、的通信方式和故障的类型。第三章第三章 分布式程序设计语言分布式程序设计语言 第三章第三章 分布式程序设计语言分布式程序设计语言 82023-3-103.2 并行性的支持并行性的支持并行性的概念并行性的概念 l 并行性:因为分布计算系统有多个处理机,所以并行性:因为分布计算系统有多个处理机,所以可把程序分成若干部放到多个处理机上同时运行,可把程序分成若干部放到多个处理机上同时运行,这就是所谓的并行性。这就是所谓的并行性。 l 伪并行性伪并行性: :即把程序表示为一组并行运行的进程,即把程序表示为一组并行运行的进程,但不管它们是否在不同的处理机上同时运行。但不管它们是否在不同的处理机上同时运行。l

11、 并行粒度并行粒度: :并行单位可以是进程并行单位可以是进程( (如并发如并发C)C),也可,也可以是表达式以是表达式( (如如Par AlflPar Alfl) )。一般说来,通信代价。一般说来,通信代价越大,则并行的粒度就应该越大。越大,则并行的粒度就应该越大。 第三章第三章 分布式程序设计语言分布式程序设计语言 第三章第三章 分布式程序设计语言分布式程序设计语言 92023-3-10并行性的表示并行性的表示l 进程并行:一般说来,一个进程是一个逻辑处理机,顺序进程并行:一般说来,一个进程是一个逻辑处理机,顺序地执行代码,具有自己的状态和数据。在语言中,如同过地执行代码,具有自己的状态和数

12、据。在语言中,如同过程或过程类型一样,进程或进程类型是要被说明的。程或过程类型一样,进程或进程类型是要被说明的。l 对象并行:面向对象语言中的并行性可以用两种方法获得。对象并行:面向对象语言中的并行性可以用两种方法获得。Smalltalk-80Smalltalk-80包含传统的进程概念,让程序员处理两种模包含传统的进程概念,让程序员处理两种模块:进程和对象。另一种方法是对象本身作为并行单位。块:进程和对象。另一种方法是对象本身作为并行单位。用下述方法扩充顺序对象模型可获得并行性:用下述方法扩充顺序对象模型可获得并行性:(1)(1)允许对允许对象不必在收到报文时才活动;象不必在收到报文时才活动;

13、(2)(2)允许接收对象在返回结允许接收对象在返回结果后继续执行;果后继续执行;(3)(3)允许一次向几个对象发送报文;允许一次向几个对象发送报文;(4)(4)允允许报文发送者继续和接收者并行工作。许报文发送者继续和接收者并行工作。第三章第三章 分布式程序设计语言分布式程序设计语言 第三章第三章 分布式程序设计语言分布式程序设计语言 102023-3-10l 语句并行:语句被分成组且并行执行语句并行:语句被分成组且并行执行 SEQSEQ S1 S1 S2 S2 或或 PAR PAR S1 S1 S2 S2 并行循环语句并行循环语句 PAR j=0 FOR nPAR j=0 FOR n Aj A

14、j :=Aj+1=Aj+1第三章第三章 分布式程序设计语言分布式程序设计语言 第三章第三章 分布式程序设计语言分布式程序设计语言 112023-3-10l函数并行函数并行如果函数没有任何副作用,则出了如果函数没有任何副作用,则出了“结束结束”这一点外,这一点外,在那种次序执行方面是没有差别的,例如表达在那种次序执行方面是没有差别的,例如表达h(f(3,4),g(8)h(f(3,4),g(8),先计算,先计算f f或或g g是没有关系的,因此可以是没有关系的,因此可以并行计算并行计算f f和和g g。原则上,所有函数调用均可以并行执行,唯一的限制是原则上,所有函数调用均可以并行执行,唯一的限制是

15、使用另一个函数的结果的函数要等待该结果的产生。使用另一个函数的结果的函数要等待该结果的产生。对于分布式计算系统,函数方法需要解决以下几个问题:对于分布式计算系统,函数方法需要解决以下几个问题:a)a) 确立并行度,即粒度大小;确立并行度,即粒度大小;b)b) 如何分配计算问题;如何分配计算问题;c)c) 编译程序,确立处理机的分配。编译程序,确立处理机的分配。 第三章第三章 分布式程序设计语言分布式程序设计语言 第三章第三章 分布式程序设计语言分布式程序设计语言 122023-3-10l子句的并行子句的并行 AND/OR并行性适合于分布式程序设计,且已并入很多并行性适合于分布式程序设计,且已并

16、入很多并行逻辑程序设计语言中,下面的程序给出谓词并行逻辑程序设计语言中,下面的程序给出谓词A的两的两个子句:个子句: A:-B,C,D A:-E,F用过程的观点,存在两个并行性的机会:用过程的观点,存在两个并行性的机会:A的两个子句可并行工作只到有一个成功或两个都失败。的两个子句可并行工作只到有一个成功或两个都失败。每个子句中的子定理可并行工作直到它们全都成功,或每个子句中的子定理可并行工作直到它们全都成功,或其中一个失败。其中一个失败。前一种并行性叫做前一种并行性叫做OR并行性,后一种叫做并行性,后一种叫做AND并行性。并行性。第三章第三章 分布式程序设计语言分布式程序设计语言 第三章第三章 分布式程序设计语言分布式程序设计语言 132023-3-10 并行计算到物理处理机的变换并行计算到物理处理机的变换 可编程的变换,即用户控制的变换通常由两步组成:可编程的变换,即用户控制的变换通常由两步组成:l把并行单元变换到物理的处理机上,几个并行单元可以把并行单元变换到物理的处理机上,几个并行单元可以变换到同一个处理机上;变换到同一个处理机上;l使用局部变换对同一处理机上的单元进行调度,通常

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > C/C++资料

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!