分布式系统期末复习题汇总

37 移动实体、宿主代理和宿主位置的理论

  分布式服务器的基本思想就是客户从一个可靠的、高性能的、稳定点服务器中受益。如何在系统中设立一个稳定长期有效地访问点对于移动实体在分布式系统中的访问来说是很有意义也是很值得研究的一个方向,那IP版本6中的移动支持(MIPv6)。 在MIPv6中, 一个移动节点假设有一个宿主网络( home network ) ; 并且这个可移动节点通常都是呆在这个宿主网络中,并且在该宿主网络中有着一个常用的稳定的地址, 这个地址称为是宿主地址( home address ) 。 在宿主网络中通常有一个特别的路由器,我们称该路由器为宿主代理*( home agent ) 。 当移动结点不在该宿主网络中的时候, 这个特别的路由器即宿主代理将会处理(接受和转发) 要传递给移动结点的网络包( traffic ) . 当移动结点附着到一个外部的网络上的时候,他就会收到一个临时需要的地址( care of address ) , 其他结点可以将网络包发送到这个地址的上面。这个临时地址通告给宿主代理, 他随后就可以转发送给移动结点的网络包这个临时的地址。 并且在整个的过程中,与移动结点进行通信的应用程序只会看到移动结点在宿主网络中的地址, 而看不到中间被屏蔽的临时地址。


问题: 为了支持大规模网络中的移动实体,可以采用Home-based 即 Home-location 的方法, 请试着说明其工作原理, 并说明这种解决方案中存在的问题和相应的解决方法?


在大型网络中支持移动实体定位是引入了宿主位置(home location) 的方法, 也就是( home based )。 这种方法的工作原理是这样的, 系统会持续的跟踪实体当前的位置,可以使用特殊的技术来预防网络故障或是进程调用的失败, 在实践中通常会选择创建实体的位置来作为该实体的宿主位置。

每个移动主机都会使用一个固定的IP地址,所有的与该IP地址进行的通信一开始都会被转发到改移动实体所在的宿主网络中的宿主代理中, 宿主代理( home agent ) 位于局域网中, 与包含在移动主机的IP地址中的网络地址是相对应的, 当一台移动主机转移到另一个网络中时, 他就会请求一个可以使用的通信的临时地址。应用程序在向改移动实体发送数据包的时候,是发往这个移动实体的所在宿主网络中的宿主代理这个特殊的路由器,在这个特殊的路由器中会同时存放着移动实体在这个常用宿主网络中的宿主IP地址同时也会存放着移动实体在其他网络中被分配到的临时地址。当有应用程序向宿主常用地址发送数据包的时候, 这个数据包会被宿主网络中的宿主代理接受,并通过查阅路由表的方式将该数据包转发到当前移动实体所被分配的临时网络地址上。

这种解决方案所存在的问题就是,移动实体使用了一个固定的宿主位置一方面应该保持宿主的位置是始终存在的,也就是保证该宿主服务器始终处于运行状态,否则一旦服务器崩溃的话, 那么用户将无法与移动实体取得联系。并且如果决定把一个长期存在的实体永久地转移到网络的一个完全不同的部分中,而不是转移到宿主位置所在的网络部分, 那么问题就会进一步恶化。

针对这一问题的解决方法就是,在传统的命名服务器中采取主存宿主位置的方法,然后每当用户要访问某一个宿主的话,就会让客户首先查找对应的命名服务器,以明确宿主服务器所在系统中的确切的位置,由于可以假定宿主的位置是相对较稳定的所以在查找到宿主的位置之后,可以将它的位置暂时的存放在缓存中,方便下次快速的访问。


38. 在DHT-based系统中可以采用finger table 的方法来相应的提高查询效率,试着说明其工作原理以及在实际中的应用案例

DHT 是 distributed hash table 的缩写,是为了方便在P2P网络中发现资源的一种对资源的组织方式,通过分布式哈希表来存储资源,可以防止在实际查找资源中的网络中数据包的洪泛效应从而导致了耗费大量的网络资源。


DHT的工作原理是这样的,在P2P网络中,将各个计算机节点以环的方式组织在一起, 这些节点是在逻辑上相邻的但是在物理上未必是相邻的,通常在查找一个特定的资源的时候, 会遍历整个环,但是这样也同样会降低查找的效率。所以提出了一种替代线性查找的方式,在环结构中查找相关的资源。


相应的节点是通过环的方式组织在一起的,并且在环中会为每一个结点分配一个节点ID号码,这个ID号码是在很大的地址空间中生成的,地址空间之所以大是为了方式所选取的ID号会出现重复。 每一个结点上面都会维护着一张数据表,我们称之为finger table, 在这个finger table 我们可以用FTP 来表示,其中记录的是当前结点所管理的其他的相应子节点的ID号,也就是所在这张表中记录了可以直接到达结点的ID号码,也就是说记录了这些结点在整个系统中的IP地址。


假定这个结构化的P2P网络已经存在,现在要在这个结构中查找一个 key = X 的资源,在知道了key值之后,下面要做的就是查询这个key值所在结点的ID号码是多少,相应的资源就是存放在 ID 大于等于 X 值得结点集合中的,ID 数值最小的结点上的,

 大致的算法是这样的:

假定环中的结点ID号码为 0 ~ N-1 , 并且假定在每个结点所维护的 FT表中的结点ID号码都是从小到大有序排列的。

并且还需假定的是每个结点上所维护的FT表中的最多表项 介于 [1, n ] 之间。


首先在环中 id = p  结点所维护的FTP中查找满足条件  FTp [j] <= X < FTp [j+1] 这样的一个数值 j (0< = j < N )

      如果, FTp[1] > X ,也就是说 在FT表中的第一个ID号就大于 X的数值, 那么下一跳将会跳至 ID = FTp[1] 的结点上对FT表继续查找

      如果, 找到满足条件 FTp[j] <= X < FTp[j+1] 的数值 j 的话,那么下一跳就会跳至ID号码 = xiangying de FTp[j] 的结点上对该结点上的FT表进行查询。

     如果, 在查询了当前结点的FP表之后, FTp[ n ] < X 的数值,就是说在该节点P上所维护的FT表中的最大表项的数值都要小于 key 值 X, 这样的话,下一跳的结点ID号

ID = FTp[n] 

在跳至下一跳结点上之后,先判断 该节点ID号码是否 >= X 键值号,如果大于等于的话,则将改结点在网络中的地址返回给查询资源X的节点上的进程,该查询进程在的值目的结点的地址之后,通过该地址就会访问该地址所指定的结点在该节点上请求该资源的访问权。



35.说明虚拟化的含义,为了实现虚拟化,计算机系统通常提供四种类型的接口,说明这四种接口,并说明两种实现虚拟化的方式。

在编程语言中我们通常使用接口,通过接口来将某些方法的具体实现细节给隐藏掉,而仅将函数签名留给用户以供他们传递参数,虚拟化的实现也是如此,所谓的虚拟化本质上就是扩展和替换现存的界面(界面=interface = 接口)来模拟和仿真另一个系统的行为。

为了实现虚拟化,计算机通常会提供四种类型的接口,这四种接口分别是

1.由机器指令组成,系统中的任何程序都可以调用

2.由机器指令组成,仅供系统中特殊权限的程序(操作系统)才可以触发调用。


12 . 在支持多线程的系统中,可以采用三种模型来组织多线程,详细说明这三种模型。如果在不支持多线程的系统中实现文件服务,如何构造文件服务器呢?


这三种模型分别是

12.1 派遣者/工作者模型: 

某一个线程作为派遣者,它会从系统邮箱里面读出来自客户端的请求,然后对该请求进行检查,在从空闲的工作者中选取一个工作者线程去处理该请求。工作者在被派遣者调用的时候,是从睡眠的状态中被唤醒后,工作者会检查一下共享块的缓冲区是否可以满足分配给它的请求在运行过程中多需要的内存空间的大小,如果满足的话,则该工作者就睡相应该请求,根据请求来执

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值