分布式系统.doc

上传人:文库蛋蛋多 文档编号:2393230 上传时间:2023-02-17 格式:DOC 页数:11 大小:54KB
返回 下载 相关 举报
分布式系统.doc_第1页
第1页 / 共11页
分布式系统.doc_第2页
第2页 / 共11页
分布式系统.doc_第3页
第3页 / 共11页
分布式系统.doc_第4页
第4页 / 共11页
分布式系统.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《分布式系统.doc》由会员分享,可在线阅读,更多相关《分布式系统.doc(11页珍藏版)》请在三一办公上搜索。

1、 分布式系统 一、概念解释(1)同构型与异构型分布式系统 同构型分布式系统:组成该系统的计算机的硬件和软件是相同的或非常相似的,同时组成该系统的计算机网络的硬件和软件也是相同的或非常相似的的分布式系统称为同构型分布式系统。异构型分布式系统:组成该系统的计算机的硬件或软件是不同的,或者组成该系统的计算机网络的硬件或软件也是不同的分布式系统称为异构型分布式系统。 (2)紧密耦合与松散耦合分布式系统 紧密耦合分布式系统:连接方式为内部总线或机器内互连网络;处理资源间距离为物理上分散,相距很近;处理资源为处理机;通信方式为共享存储器的分布式系统称为紧密耦合分布式系统。松散耦合分布式系统:连接方式为通信

2、网络;处理资源间距离为地理上分散,相距很远;处理资源为计算机系统;通信方式为报文交换的分布式系统称为松散耦合分布式系统。(3)中间件服务 中间件服务:中间件服务为应用程序隐匿底层平台的异构性。许多中间件系统提供某种程度的全局服务集成,并且只为用户或应用程序提供使用这些服务的接口。 (4) 阻塞原语与非阻塞原语 阻塞原语:阻塞原语是阻塞性报文通信原语也称为同步原语。阻塞原语不立即将控制权返回给调用该原语的进程,也就是说send一直被阻塞直到发送的信息被接收方收到并得到接收方的应答。同样地,receive一直被阻塞,直到要接受的信息到达并被接收。 非阻塞原语:非阻塞原语不提供任何形式的同步,非阻塞

3、原语也称为异步原语。执行发送和接收时,控制权立即返回给进程并继续执行语句。然后,收到响应而产生一个中断,通知进程可以完成原语。(5) 客户存根与服务器存根 客户存根(client stub):客户代理。在客户上的进程需要访问服务器上的资源时,可以发出一条带有参数的RPC命令给客户存根,以委托它充当调用进程的代理。客户存根接收到RPC的命令后,便去执行本次的远程过程调用;客户存根与一个客户应用相联,它对于该客户就像一个服务器一样,它截取客户的远程调用命令后,利用通信网络向服务器发送服务请求,在返回时,它获取返回信息,并将结果返回给客户。 服务器存根(sever stub):服务器代理。服务器存根

4、与一个服务器相联,它对于服务器来说就像一个客户一样,在调用时,它接收到远程调用的请求后,产生一个本地调用来执行相应的远程过程,在返回时,它获取远程过程的返回结果,并形成返回消息发送给客户。(6)同步检查点和异步检查点。 异步检查点:在异步检查点方式中,各进程独立地完成检查点,这种方式对应用程序增加的开销较小,但会导致检查点文件数目不确定,恢复时容易出现多米诺效应等问题。同步检查点:在同步检查点方式中,通过发送统一的控制信息。能够保证所做的检查点满足全局一致性。所谓全局一致性检查点是指,在检查点集中,如果一个进程的检查点已经记录了一条消息的接收事件,那么这条消息的发送方的进程的检查点也记录了这条

5、消息的发送事件。二、说明下列问题(1) 说明分布式系统的透明性表现以及影响透明性的主要因素 分布式系统的透明性表现:1)名字透明。名字透明指的是对象的命名在全局是唯一的,不管在什么地方访问该对象使用的名字都是一样的。这样一来,在系统中移动一个程序不影响它的正确性。2) 位置透明。位置透明指的是资源的名字中不包含该资源的位置信息。这样一来,当该资源在系统中移动时,在资源名字保持不变的情况下,原有的程序都可正常运行。 3) 访问透明。用户不用区分本地资源还是远程资源,访问本地资源和访问远程资源的方法是一样的。 4) 迁移透明。迁移透明指的是用户不知道一个资源或者他的作业是否迁移到另外一个位置。迁移

6、透明需要名字透明的支持。 5) 复制透明。复制透明允许文件或其他对象的多个副本同时在系统中存在,但是这种情况对用户是透明的,对对象的修改应同时作用在对象的所有副本上。 6) 并发和并行透明。多个进程可能并发或并行访问同一个资源,或一个进程同时使用多个资源,在此情况下不会产生相互干扰和破坏。 7) 失效透明。系统中的某一部分失效时,整个系统不会失效,仍可正常运行。 影响透明性的主要因素:系统的异构性,局部自治性,网络互连。系统的异构性对透明性的影响:通过网络服务松散集成,共享不同语言的程序,在已有的多个系统上加入前端软件,使用透明的操作系统桥,聚合法。 局部自治性对透明性的影响:资源控制方面,命

7、名方面。资源控制方面:由分布式系统连接的各机器是由不同的用户所操作,或由一个机关的不同部门控制,希望在资源的使用上有较大的控制权。因此,必须有一种手段解决这个问题,在透明性和局部自治性之间进行折衷。命名方面:即使同型号的机器,不同的用户也可能以不同的方式形成他们的目录,例如FORTRAN程序库在某个机器上使用某个名字,而在另一台机器上可能使用另一个名字,造成不透明。网络互连对透明性的影响 :很多网络连接了不同厂商提供的不同系列的计算机,要实现透明性必须修改这些机器的软件,这是很不实际的。现在的网络一般是直接从早期网络结构发展来的,其最重要的功能是通信,并未考虑到分布计算。远程网络一般是很昂贵的

8、资源,其特征是低带宽或高延迟,或者二者兼有,因此,很多人认为应当使这种资源的应用成为可见的(不透明的)。(2) 描述分布式系统的层次结构以及每层完成的主要功能分布式系统的层次结构:分布式系统由四层组成。第一层是由硬件或固件组成的硬核,第二层是分布式操作系统的内核,第三层是分布式操作系统的服务层,第四层是和用户有关的应用层。 第一层硬核完成的主要功能: 硬件/固件层(硬核)。该层包括处理器、主存、I/O设备、键盘、终端以及用于数据采集和物理过程控制的各种硬件设备。主要完成数据采集和物理过程控制的功能。 第二层是分布式操作系统的内核完成的主要功能: 内核完成的最基本最重要的功能是进程通信(IPC)

9、,除此之外,还包括进程的同步机制、进程管理、存储管理和I/O管理等功能。 第三层是分布式操作系统的服务层完成的主要功能: 分布式操作系统的服务层作用是为各种广泛的应用提供一些基本的、共同的服务,包括实现基本的资源分配和复用。 第四层是和用户有关的应用层完成的主要功能: 应用层包括和各种应用有关的顾客服务进程。要考虑的主要问题有两方面:应用结构问题和语言问题。(3) 简述远程过程调用机制的特点,设计和实现远程过程调用要考虑的主要问题有哪些? 远程过程调用机制的特点: 1)远程过程调用的形式和行为与单机环境下的过程调用的形式和行为类似,主要差别在于被调用的过程实际运行在一个与调用者所在场点不同的场

10、点上。2)从语义的角度,RPC允许进程使用简单的过程调用,通过网络与远程进程通信。因此,它可向应用层和用户提供良好的接口。3)RPC的服务器程序具有独立编程的特点,有利于系统扩充其服务功能。4)从应用的角度,RPC基于过程的远程通信特点,为网络和分布式系统的应用提供灵活方便的通信功能。5)RPC的通信模型是基于客户服务器通信模型的一种同步通信方式,它为客户提供远程服务的过程抽象,其底层消息传递操作对客户是透明的。在RPC中,客户是请求服务的调用者,服务器是执行客户的请求而被调用的程序。6)在进行远程过程调用时,虽然调用进程和被调用进程的过程分别处于不同的机器上,但调用进程可以采用与本地过程一样

11、的方式来调用远程过程。设计和实现远程过程调用主要考虑的问题包括以下方面: 参数类型。RPC中有三中参数传递类型:第一种是输入参数,这种参数只用于客户向服务器传递信息;第二种是输出参数,这种参数只用于服务器向客户传递信息,客户不能使用它向服务器发送信息;第三种既作输入又作输出的参数,客户能用这种类型的参数向服务器传递信息,服务器同样能用这个参数向客户传递信息。数据类型的支持。数据类型的支持指的是在远程过程调用中哪些数据类型可以作为参数使用。同各种程序设计语言一样,RPC也有可能限制参数的复杂程度。一般的RPC对参数的个数进行了限制但允许使用较复杂的数据类型。例如只使用一个参数,但是参数可以是一个

12、复杂的结构,这样以来,程序设计者可以通过比较方便的办法绕过这种限制参数打包。为了进行有效的通信,参数和较大的数据结构需要进行打包,接收方能够正确地进行拆包和解压缩信息。打包和拆包的功能常用一个存根(stub)完成。(4) 举例说明死锁的产生、解决办法以及预防策略例子:进程A等待进程B的结果,进程B等待进程C的结果,进程C等待进程A的结果。进程之间循环等待,形成有向圈产生了死锁。死锁的产生的必备条件:1)互斥条件:指进程对所分配到的资源进行排它性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其它进程请求资源,则请求者只能等待,直至占有资源的进程用毕释放。2)请求和保持条件:指进程已经保

13、持至少一个资源,但又提出了新的资源请求,而该资源已被其它进程占有,此时请求进程阻塞,但又对自己已获得的其它资源保持不放。3)不剥夺条件:指进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完时由自己释放。系统将一个资源的访问权分配给某一个进程后,系统不能强迫该进程放弃对该资源的控制权。4)环路等待条件:指在发生死锁时,必然存在一个进程资源的环形链,即进程集合P0,P1,P2,Pn中的P0正在等待一个P1占用的资源;P1正在等待P2占用的资源,Pn正在等待已被P0占用的资源。死锁产生的原因有竞争资源引起进程死锁,进程推进顺序不当引起死锁。死锁的解决办法:解决死锁常用的实施方法是撤销或挂起一

14、些进程,以便回收一些资源,再将这些资源分配给已处于阻塞状态的进程,使之转为就绪状态,以继续运行。方法如下:1)撤消陷于死锁的全部进程;2)逐个撤消陷于死锁的进程,直到死锁不存在,;3)从陷于死锁的进程中逐个强迫放弃所占用的资源,直至死锁消失。4)从另外一些进程那里强行剥夺足够数量的资源分配给死锁进程,以解除死锁状态。死锁处理的方法:预防、避免、忽略和检测。预防死锁。通过限制请求,保证四个死锁条件中至少有一个不能发生,从而预防死锁。避免死锁。如果资源分配会导致一个安全的结果状态,就将资源动态地分配给进程。如果至少有一个执行序列使所有的进程都能完成运行,那么这个状态就是安全的。其潜在的问题是需要及

15、时地收集到一致的全局状态信息,故对请求进程和可用资源的数量等信息要求太严格,检查安全性状态会涉及到大量进程和资源的计算,开销太昂贵。 忽略死锁。忽略死锁是UNIX常采用的一种方法,这种方法只是简单地忽略死锁问题。 检测死锁和从死锁中恢复。允许死锁发生,然后发现并解除死锁。 死锁的预防策略:1)进程在开始执行之前同时获得所有所需资源。这种方法打破了占有并等待的条件。 2)所有的资源都要被赋予一个唯一的数字编号。一个进程可以请求一个有唯一编号i的资源,条件是该进程没有占用编号小于或等于i的资源。这样,就打破了循环等待的条件。 3)每个进程被赋予一个唯一的优先级标识。优先级标识决定了进程Pi是否应该

16、等待进程Pj,从而打破了不可剥夺的条件。 4)银行家算法:银行家算法需要检查申请者对资源的最大需求量,如果系统现存的各类资源可以满足申请者的请求,就满足申请者的请求。这样申请者就可很快完成其计算,然后释放它占用的资源,从而保证了系统中的所有进程都能完成,所以可避免死锁的发生。(5) 什么是前向式恢复?什么是后向式恢复?它们各自的主要实现技术是什么?前向式恢复技术是采用一种乐观的态度,当系统发现错误后,我们试图把系统带入一个新状态,从新状态开始继续运行。关键在于必须预先知道会发生什么错误。逆向恢复技术,向后式恢复(回退恢复),采用保守的态度,事先不知道会发生什么故障,在系统正常运行时记录一些状态

17、历史。一旦当失效导致系统处于不一致的状态时,可恢复到从前没有发生故障的状态,重新执行。是一种通用方法。开销较大。不能提供完全的故障透明性。 需要设置检查点。前向式恢复的主要实现技术:例外处理技术。后向式恢复的主要实现技术:检查点技术。(6) 大规模分布式系统的名字解析方法有哪两种?比较它们的优缺点大规模分布式系统中名字解析方法:重复式名字解析,递归式名字解析。重复式名字解析的优点是不要求每个名字服务员完整地解析它所得到的整个路径名,只需要解析一部分,不要求每个名字服务员具有较高的性能。重复式名字解析的缺点是通信代价比递归式名字解析高,如果采用缓存,它的缓存效果比递归式名字解析的缓存效果低。递归

18、式名字解析有两个主要优点。第一个优点是如果采用缓存,那么递归式名字解析的缓存效果同重复式名字解析的缓存效果相比更为有效;第二个优点是可以减少通信代价。递归式名字解析的主要缺点是要求每个名字服务员具有较高的性能。递归式名字解析要求名字服务员完整地解析它所得到的整个路径名,特别是对于全局层的名字服务员来说,情况更为严重。(7) 两个计算机上的进程进行保密通信,用单密钥系统如何分配其密钥并进行双方身份鉴别? 信息的发送者发送明文,明文通过单密钥系统使用中的加密密钥的加密算法加密成密文,然后接收者接收密文,密文在通过单密钥系统中使用的解密密钥的解密算法解密得到相应的明文。 单密钥系统加密密钥给发送者,

19、解密密钥给接收者。加密密钥和解密密钥是相同的。在单密钥系统,只有使用相同的密钥且知道解密算法的接收者才能解密明文。在单密钥系统中,通过密钥和加密算法,解密算法进行双方身份鉴别。(8) 如果一个分布式系统中的所有基础都访问同一台计算机的物理时钟,我们能够保证系统事件的内部一致性吗?我们不能保证系统事件的内部一致性。虽然都访问同一台计算机的物理时钟,以此时钟为标准保持时间次序的一致性,但是,因为在分布式系统的中,各个部件设备是分离的,他们访问存在通信开销。访问同一台计算机的物理时钟结束后,还要返回结果,存在通信开销,就存在误差,可能导致有些事件的发生次序颠倒。而且若是万一那台计算机发生故障,引起它

20、的物理时钟发生错乱。所以我们不能保证系统事件的内部一致性。(9) 互斥算法应满足哪些条件? 互斥算法应满足以下条件:互斥:保证在任何时间里只有一个进程访问临界区;无死锁现象:不存在两个以上的进程无休止地等待永远不会到达的信件;无饿死现象:不能迫使一个进程无休止地等待进入临界区;公平性:当多个进程竞争时,应该按照发出申请的次序来安排进程进入临界区。需要指出的是,公平性意味着无饿死现象,但反之不成立。容错性:在某些故障的的情况下,算法能够重构,并保证持续执行。(10)什么是拜占庭故障?处理拜占庭故障的主要方案是什么? 拜占庭故障:在故障-停止模型中,我们假定一个处理器将停止工作并且不再恢复运转。在

21、其他情况下,一个故障可能做出破坏性的行为。例如,一个有故障的处理器可能会向不同的处理器发送不同的令它们费解的报文,这种故障叫做随意性故障,或拜占庭式故障。 处理拜占庭故障的主要方案:处理拜占庭故障的主要方案是将多个完全相同的进程设置成为一个进程组,当消息发送到组本身时,组中所有成员都接收它,从而达到容错的目的。进程容错机制有主动复制(层次故障屏蔽)和被动复制(编组故障屏蔽)。(11)什么是可靠的组播通信?什么是原子组播?什么是虚同步? 可靠的组播通信:可靠的组播通信就是要求发送给某个进程组的报文必须确保传送到进程组中的每一个成员。 原子组播:原子组播就是必须保证一个组播报文要么被进程组内所有的

22、进程接收,要么没有一个进程接收该报文。另外,还要求所有的组播报文应该以同样的顺序被进程组中所有的进程接收。 虚同步:在发送报文m的进程失效的时候,进程组的其他进程要么都收到报文m,要么所有的其他进程都忽略报文m,具有这种性质的可靠组播被称为是虚同步的组播。(12)结合自己论文所选定的主题,阐述对相关技术的理解 我选定的主题是分布式系统中的通信。 进程通信是指进程之间交换信息。进程通信的目的:进程间通信的目的是协调解决多个进程之间的约束关系,实现进程共同进展的关键技术,是多道系统中控制进程并发执行必不可少的机制。进程的通信方式:进程的通信方式有直接通信和间接通信。直接通信:信息直接传递给接收方,

23、比如管道。在发送时,指定接收方的地址或标识,也可以指定多个接收方或广播式地址,。在接收时,允许接收来自任意发送方的消息,并在读出消息的同时获取发送方的地址。间接通信:借助于收发双方进程之外的共享数据结构作为通信中转,如消息队列。这种数据结构称为缓冲区或信箱。通常收方和发方的数目可以是任意的。 分布式系统和单处理机系统一个最重要的区别是进程间的通信。在单处理机系统中进程间的通信无疑是利用共享存储器。其中一个典型的例子就是是生产者-消费者问题,一个进程向共享存储器写入,而另一个进程从该共享存储器中读出,比如信号量。但是在分布式系统中无共享存储器,不能借助共享变量的方法实现进程间通信。在分布式系统中

24、,不仅有同一物理节点上的不同进程之间的通信,还有不同节点上的进程之间的通信。同一物理节点上的不同进程之间的通信有共享内存、消息传递、管道。不同物理节点上的进程之间的通信报文传递(比如网络通信中的socket(套接字))、RPC(远程过程调用)。远程过程调用是请求回应式通信。如果把客户进程当成调用者,把传送的请求当作调用参数,把服务器提供的相应服务当成被调用的过程,把回应当作返回值,则我们可以完全隐蔽消息传送,用一种高级的用户界面实现请求-回应式通信,这个思想便是著名的远程过程调用(RPC: Remote Procedure Call) 。它是将单机环境下的过程调用延伸到分布式系统的环境。远程过

25、程调用是把在单机环境下的过程调用概念加以扩允后引入分布式环境中的一种形式。RPC的通信模型是基于客户服务器通信模型的一种同步通信方式,它为客户提供远程服务的过程抽象,其底层消息传递操作对客户是透明的。在RPC中,客户是请求服务的调用者,服务器是执行客户的请求而被调用的程序;在进行远程过程调用时,虽然调用进程和被调用进程的过程分别处于不同的机器上,但调用进程可以采用与本地过程一样的方式来调用远程过程。存根(stub):也称代理,client和server 各一个,设置存根的目的是为了能以相同的方式调用本地过程和调用远程进程。存根程序常用扩展库的形式提供,以减轻编程人员的负担。 客户存根(clie

26、nt stub):客户代理。在客户上的进程需要访问服务器上的资源时,可以发出一条带有参数的RPC命令给客户存根,以委托它充当调用进程的代理。客户存根接收到RPC的命令后,便去执行本次的远程过程调用;客户存根与一个客户应用相联,它对于该客户就像一个服务器一样,它截取客户的远程调用命令后,利用通信网络向服务器发送服务请求,在返回时,它获取返回信息,并将结果返回给客户;服务器存根(sever stub):服务器代理。服务器存根与一个服务器相联,它对于服务器来说就像一个客户一样,在调用时,它接收到远程调用的请求后,产生一个本地调用来执行相应的远程过程,在返回时,它获取远程过程的返回结果,并形成返回消息

27、发送给客户。组通信指的是一个报文能够被发送到多个接收者的通信。(13)在分布式系统中可能实现真正的负载平衡吗?它有必要实现吗?为什么? 不可能。因为分布式系统中,分布地域广,分散式的,实现组成分布式系统的每个主机,服务器等每时每刻都只处理相同的任务量是很困难的。组成分布式系统的主机,服务器通信可能是不同步的,存在延迟,误差等。这势必造成,有的主机,服务器处理多一点的任务,有的则相反。 没必要。因为组成分布式系统的各个主机,服务器各种各样,他们的处理事务的能力不尽相同。有的主机、服务器处理能力强,有的处理能力弱。相同时间,没必要,给它们分配相同的任务量。这样反而降低了分布式系统的整体性能。(14

28、)为什么集中式调度结构比分散式调度结构更能支持较大规模?它的缺点是什么? 因为集中式调度结构是集中式调度、管理,集中控制。它能更充分、有效的调度分布式系统的各个组成部分(主机、服务器等)。而且分布式系统各个部分能够很好的同步。它比分散式调度结构更好的管理分布式系统,协调在分布式系统的各个部分。它使分布式系统整体的协调配合更严密更紧密,使各个部分连接更紧密。比较大规模的分布式系统,仍然可以有效的控制,调度整个分布式系统,使整个系统能达到较高的性能。 分散式调度结构是分散控制,分散调度各个部分,规模越大,对分散式调度的要求越高。它不能较好的协调调度分布式系统的各个部分,使得分布式系统的整体系能不理想。 集中式调度结构最大的缺点是不可靠,一旦这部分出故障就可能造成全局不工作,另外分布式系统的性能方面也会下降,因为集中会产生一个瓶颈。集中调度结构的处理能力是有限的。当规模很大时,它会制约分布式系统的整体性能。

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号