《分布式操作系统》知识点(22~28)四

来源:互联网 发布:火影忍者佐助的刀淘宝 编辑:程序博客网 时间:2024/06/05 08:35
注:

(4)8 P160:(4)代表该道题属于第4章的内容,8是题号(第8题),P160是该习题在书中的大体页码。


(2)22 说明RPC的主要步骤,在形式说明书中输入参数、输出参数、输入、输出参数的含义是什么,为什么要这样规定。如果服务器是无状态的,为什么读一个文件的过程需要给出position参数。P48、P51、P56

答:RPC的主要步骤如下:

输入参数是由客户进程创建,传递给服务器进程的。输出参数是由服务器进程创建,传递给客户进程的。输入输出参数是由客户进程创建,传递给服务器进程,服务器进程进行修改之后,传回给客户进程。

进程及进程的参数写到形式说明书中,作为存根生成的输入,以此来产生客户和服务器的存根并放到相应的存根库中以供调用。

如果服务器是无状态的,则在一次请求响应之后,服务器会删除请求的全部信息。若用户打开了一个文件并对其进行了一定的操作,那么下次再次请求此文件并从上次的地方继续操作就需要给出position参数,因为服务器是不知道上次操作的位置的。

 

(2)23说明RPC的主要思想。在客户发出请求后,客户机正常,但未收到应答,应该是那些原因造成的。并说明在服务器崩溃的情况下,可采用哪些方法处理。P57、P59

答:RPC的基本思想:调用远程过程就像调用本地过程一样。

原因:

①客户无法定位服务器;

②客户发送给服务器的请求消息丢失;

③服务器发送给客户的应答消息丢失;

④服务器在收到请求后崩溃;

⑤客户机在发送请求后崩溃。

服务器崩溃的处理方案:

①至少一次语义。等待服务器重新启动,然后重发请求。该方法要求不断重试直至应答应答消息来到并传给客户。这种技术称为至少语义,它保证RPC至少执行一次,但也有可能执行多次。

②最多一次语义。立即放弃并报告失败。它是最多一次语义,确保了RPC最多执行一次,但可能没有执行。

③不作任何保证。当服务器崩溃时,客户得不到任何帮助和保证。RPC可以不被执行或执行相当多次。这种方法的最大优点就是易于实现。

④精确一次语义。不容易实现。但此方法不是很成熟。

 

(2)24说明客户/服务器模式的主要思想,并说明在采用了阻塞的、有缓存的、可靠的发送和接收原语的情况下,系统是如何工作的。P36、P42、P44、P45

答:基本思想:构造一个操作系统,由一组协同进程组成,这组进程称为客户(client),为用户提供服务的进程称为服务器(server)。客户和服务器都运行在相同的微内核中。客户和服务器都以用户进程方式运行, 一台机器可以运行于单个进程、多个客户、多个服务器或者两者的混合。

其工作过程为:客户端进程陷入内核调用send原语发送消息后将进程挂起阻塞,等待消息发送完成。服务器端内核为接收进程建立一个邮箱,接收来自网络地址的消息。内核调用receive原语从邮箱中取出消息进行处理,若邮箱为空,则阻塞接收进程。消息被服务器端内核放入邮箱后,服务器端内核向客户端内核发送一个确认消息,客户端内核收到来自服务器端的确认后,确认消息发送完成,激活客户端进程,即将控制权还给客户端进程,客户端进程继续执行。服务器端receive从邮箱取出消息处理后将结果返回给客户端进程,客户端进程收到消息后,客户端内核发送确认给服务器端内核,服务器端内核收到确认后激活服务器端的发送进程。

 

(2)25客户为了发送消息给服务器,它必须知道服务器的地址,给出三种寻址机制的基本原理,并说明三种机制存在的问题。P42

答:1.机器.进程编址方式:机器号和进程号,机器号用于使内核将消息正确地发送到适当的机器上。进程号用来使内核决定消息要给哪一个进程。

2.带有广播的进程编址(给系统造成额外负担):进程在相当大且专用的地址空间中选择自己的标识号。发送者广播一个特殊的定位包,包含目的进程的地址,所有内核检查并察看地址是不是它们的,如果是回答“我在这里”消息给出网络地址,发送内核使用这个地址并“记住”它。

3.通过名字服务器进行地址查询(需要一个中间部件——名字服务器):在客户机中存放ASCII服务器的名字,每次客户机运行时,首先试图使用服务器,客户机发出一请求消息给一个特殊映射服务器,(常常称为名字服务器)问一个目前服务器所在的机器号,有了这个地址后,可以直接发送请求。

缺点:这些方法中的每一都有问题。第一种方法不透明,第二种方法会给系统造成额外负担,第三种方法需要一个中间部件—名字服务器。当然名字服务器可以复制,但这样做会带来维护其数据一致性的问题。

 

(2)26在实现客户机-服务器协议时,需要哪些基本类型的包,说明每种包的源、目的地以及作用,并说明下图的含义。P47

答:客户机-服务器协议中的包类型:

 

(1)27分布式系统的目标是给用户一种错觉,就像使用单一计算机一样,这需要透明性支持,说明分布式系统支持的各种类型的透明性。P4

答:

种  类

含义

位置透明

用户不知道资源位于何处

迁移透明

资源可以不改名地随意移动

复制透明

用户不知道有多少个拷贝存在

并发透明

多个用户可以自动的共享资源

并行透明

系统活动可以在用户没有感觉的情况下并行发生

位置透明:是指在一个真正的分布式系统中,用户不知道硬、软件资源如CPU、打印机、文件和数据库的位置。资源的名字不应含有资源的位置信息。所有像machine1:prog.c或/macchine1/prog.c之类的名字是不能接受的。

迁移透明:是指资源无须更名就可自由地从一地迁向另一地。

复制透明,系统就可以随意地为文件和其他资源进行附加拷贝而无须用户知道。

并发透明,当两个用户试图同时更新相同的文件时,任一用户不会发现其他用户的存在。获得这种透明类型的机制是:一旦某个用户开始使用资源,系统就自动锁定此资源,直到该用户用完后再解锁。在此方式下,所有资源只能串行使用,而不是并发使用。

并行透明:从理论上说,一个分布式系统在用户面前的表现就像一个传统的但处理机时分系统。系统活动可以再用户没有感觉的情况下并行发生。,然而目前的发展水平还不够。其实在透明工作完成时,整个工作也就完成了,也就开始了新的领域。

访问透明性:是指对不同数据表示方式以及资源访问方式的隐藏。

重定位透明性:如果资源可以在接受访问的同时进行重新定位,而不引起用户和应用系统的注意。

故障透明性:用户不会注意到某个资源(也许他从未听说过这个资源)无法正常工作,以及系统随后从故障中恢复的过程。

持久透明性:对资源位于易失性存储器中还是位于此盘上的隐藏。

 

28详细分析影响分布式系统规模(Size)可伸缩性的三个因素,即集中式的服务、数据和算法。试举例说明分布和复制技术是如何提高可伸缩性的。(《分布式系统原理与范型》P8、P10)

答:可扩展性限制的实例:

概念

实例

集中式服务

供所有用户访问的单个服务器

集中式数据

单个在线电话薄

集中式算法

根据完整的信息来安排路由

许多服务是以集中方式实现的,它们由分布式系统中一台特定的计算机上运行的单个服务器来提供。这种方案存在的问题是显而易见的:用户增多时该服务器将成为系统的额瓶颈。即使它拥有无限的处理能力和存储能力,当系统到达一定规模后与该服务器的通信也将发生困难,从而使系统规模无法继续增长。

集中式数据和集中式服务一样有缺陷。如果我们要保存5000万人的电话号码和地址,假如每条数据记录占50个字符,一个2.5GB的硬盘就可以提供足够的存储空间。但是,如果只用一个数据库,无疑会使这个数据库的进出通信线路都充满了数据。大量拥挤的数据大大降系统低效率和总体性能。

集中式算法也存在缺陷。在大型分布式系统中,海量的信息必须在许多线路之间进行路有传送。从理论上说,完成这种传送工作最好的办法是手机关于所有计算机及线路负载的完整信息,然后利用图论的算法来计算最优的路由线路,计算结果随即应用到系统中以改善信息路由的性能。但是,收集并传送所有的输入和输出信息的做法本身就有弊端,因为这些信息会造成部分网络过载。

分布技术:把某个组件分割成多个部分,然后再将它们分散到系统中去。使用分部技术的一个例子是因特网DNS,DNS名字空间是由域(domain)组成的分层树状结构,域又划分为互不重叠的区(zone)。每个区内的名字都有单个域名服务器处理。从根本上来说,解析一个名字意味着返回与该名字相关联的主机的网络地址。把DNS提供的命名服务分布到多台计算机上进行,避免了单个服务器不得不处理所有名字解析请求所面临的困境。

复制技术:将副本分布到系统各处通常是一个好办法。复制不仅能够增加可用性,而且还有助于组件间的负载平衡,从而使性能得到提高。同样,对于在地域上比较分散的系统来说,在请求者附近有一份副本可以在很大程度上隐藏前面提到的通信等待时间的问题。例如一个中型或大型公司往往由地理上分散的部门所组成,这些部门通常需要进行数据共享。利用数据复制技术可以实现数据共享,它通过将这些共享数据复制到位于不同地点的多个数据库中,从而实现数据的本地访问,减少了网络负荷,并提高了数据访问的性能,而且通过对数据库中的数据定期同步(通常是每天晚上),从而确保了所有的用户使用同样的、最新的数据。


0 0