第一章绪论
1、中间件在分布式系统中扮演什么角色?
答:中间件主要是为了增强分布式系统的透明性(这正是网络操作系统所缺乏的),换言之,中间件的目标是分布式系统的单系统视图。
2、解释(分布)透明性的含义,并且给出各种类型透明性的例子。
答:分布透明性是一种现象,即一个系统的分布情况对于用户和应用来说是隐藏的。包括:访问透明、位置透明、移植透明、重定位透明、复制透明、并发透明、故障透明和持久性透明。
3、在分布式系统中,为什么有时难以隐藏故障的发生以及故障恢复过程?
答:通常,要探测一个服务器是停止服务还是该服务器的反应变慢这些情况是不可能的。因此,一个系统可能在服务响应变慢的时候报告该服务已经停止了。
4、为什么有时候要求最大程度地实现透明性并不好?
答:最大程度地实现透明性可能导致相当大的性能损失,从而导致用户无法接受。
5、什么是开放的分布式系统?开放性带来哪些好处?
答:开放的分布式系统根据明确定义的规则来提供服务。开放系统能够很容易地与其它系统协作,同时也允许应用移植到同一个系统的不同实现中。
6、请对可扩展系统的含义做出准确描述
答:一个系统的可扩展包含下面几个方面:组件的数量、几何尺寸、管理域的数量与尺寸,前提是这个系统可以在上面几个方面进行增加而不会导致不可接受的性能损失。
7、可以通过应用多种技术来取得可扩展性。请说出这些技术。
答:可扩展性可以通过分布式、复制和缓存来获得。
8、多处理器系统与多计算机系统有什么不同?
答:在多处理器系统中,多个CPU访问共享的主存储器。在多计算机系统中没有共享存储器,CPU之间只能通过消息传递来进行通信。
9、在多计算机系统中的256个CPU组成了一个16 X16的网格方阵。在最坏的情况下,消息的延迟时间有多长(以跳(hop)的形式给出,跳是结点之间的逻辑距离)?
答:假设路由是最优的,最长的路由是从网格方阵的一个角落到对角的角落。那么这个路由的长度是30跳。如果一行或一列中的处理器彼此相连,则路由长度为15跳。
10、现在考虑包含256个CPU的超立方体,最坏情况下消息的延迟有多长?
答:在具有256个CPUs的超立方体中,每个结点可以用一个二进制地址,范围从
00000000~1111,1111。一个hop表示地址改变了一位。因此从0000,0000~0000,0001表示一个hop,而从0000,0001~0000,0011也是表示一个hop。所以最长的路由有8个hop。
11、分布式操作系统与网络操作系统有什么不同?
答:分布式操作系统管理多处理器和同种类的多计算机。网络操作系统连接不同的、独立的计算机,这些计算机有自己的操作系统以便用户可以容易地使用每台计算机所提供的服务。
12、请解释如何使用微内核将操作系统组织成客户-服务器的方式。
答:微内核可以把客户端应用从操作系统服务中分离出来,方法是通过强迫每个请求都通过内核来传递。因此,操作系统服务能够通过用户级的服务器来实现,这些用户级的服务器是作为普通的进程来运行的。如果微内核有网络功能,这些服务器也能作为远端机器。
13、请解释基于分页的分布式共享存储器系统主要有哪些操作。
答:基于分页的DSM利用了操作系统的虚拟存储器的功能。当一个应用程序对内存寻址时,如果该内存位置没有映射到当前物理存储器的存储器空间的时候,页错误就会发生,并将控制权转交给操作系统。操作系统定位到适当的页,通过网络传递它的内容,并映射到物理存储器中。从而,应用可以继续运行。
14、为什么要开发分布式共享存储器系统?你认为是什么问题给这种系统的高效率实现造成了困难?
答:主要的原因是,写基于消息传递的并行和分布式程序来进行通信要比使用共享存储器难得多。不管进行什么操作,网络中的页面传输都会发生,这导致了DSM系统效率的下降。如果页面被不同的处理器共享,在虚拟存储系统中很容易进入和“陷入”类似的状态。最后,DSM系统比消息传递的解决方案要慢,而且由于需要跟踪页面而变得更慢。
15、请解释什么是分布式共享存储器系统中的伪共享。你有没有针对这个问题的解决方案?
答:当数据属于两个不同且独立的处理器(可能在不同的机器上)时会发生伪共享,这时数据被映射到相同的逻辑页上。效果是这个页面会在两个处理器之间发生交换,从而导致不明显且不必要的依赖。解决方案是让页面更小并禁止独立的处理器共享一个页面。
16、由于存在错误,某个实验性的文件服务器有3 / 4的时间能够正常工作,而另外1 /4的时间无法工作。如果要确保服务至少在99%的时间可用,需要将该文件服务器复制多少次?
答:令k为服务器的数量,则有(1/4)k<0.01。即在最坏的情况下,这时所有的服务器都已关闭,发生这种情况的概率是1/100。因此k=4。
17、什么是三层客户-服务器体系结构?
答:三层客户——服务器体系结构包括三个逻辑层,每一层在理论上来说都在一台单独的机器上实现。最高层包括了客户的用户界面,中间层包括实际的应用程序,最底层包含了被使用的数据。
18、纵向分布与横向分布有什么不同?
答:纵向分布指的是多台机器组成的多层架构中各个层的分布。从理论上说,每一层都在一台不同的机器上实现。横向分布则处理多台机器上的一个层的分布,例如一个数据库的分布。
19、考虑一个进程链,该进程链由进程P1,P2,…,Pn构成,实现了一个多层客户-服务器体系结构。进程Pi是进程Pi+1的客户,Pi只有得到Pi+1的应答之后才能向Pi-1发出应答。如果考虑到进程P1的请求-应答性能,这种组织结构主要存在什么问题?
答:如果n很大的话性能会很差。从理论上来说,两个邻接层之间的通信应该在两台不同的机器之间发生。因此,P1和P2之间的性能由n-2次其它层之间的请求——应答过程决定。另一个问题是如果链中的一台机器性能很差甚至临时不可达,这会立刻使最高层的性能降低。