分布式学习笔记(二)-分布式互斥

什么事分布式互斥

     对于同一共享资源,一个程序正在使用的时候也不希望被其他程序打扰。这,就要求同一时 刻只能有一个程序能够访问这种资源。在分布式系统里,这种排他性的资源访问方式,叫作分布式互斥(Distributed Mutual Exclusion),而这种被互斥访问的共享资源就叫作临界资源(Critical Resource)。
 

分布式互斥方法

  • 集中式方法(中央服务算法)
      引入一个协调者程序,得到一个分布式互斥算法。每个程序在需要访问临界资源时,先给协调者发送一个请求。如果当前没有程序使用这个资源,协调者直接授权请求程 序访问;否则,按照先来后到的顺序为请求程序“排一个号”。如果有程序使用完资源,则通知协调者,协调者从“排号”的队列里取出排在最前面的请求,并给它发送授权消息。拿到授权消息的程序,可以直接去访问临界资源。每个程序完成一次临界资源访问,需要进行 3 次消息交互。
 
 
    • 优点:简单、易于实现;通信高效
    • 缺点:可用性低,性能易受协调者影响
    • 应用场景:在协调者可靠性和性能有一点保障的情况下,可以适用于比较广泛的场景
  • 分布式方法(使用组播和逻辑时钟的算法)
     当一个程序要访问临界资源时,先向系统中的其他程序发送一条请求消息,在接收到所有程序返回的同意消息后,才可以访问临界资源。 其中请求消息需要包含所请求的资源、请求者的 ID,以及发起请求的时间。一个程序要成功访问临界资源,至少需要 2*(n-1) 次消息交互。
 
 
 
 
  • 优点:可用性较高
  • 缺点:通信成本较高,复杂度较高
  • 应用场景:临界资源使用频度较低且系统规模较小的场景
Hadoop的分布式文件系统HDFS的文件修改就是一个典型的应用分布式算法的场景
    处于同一个局域网内的计算机 1、2、3 中都有同一份文件的备份信息,且它们可以相互通信。这个共享文件,就是临界资源。当计 算机 1 想要修改共享的文件时,需要进行如下操作:
  • 计算机 1 向计算机 2、3 发送文件修改请求;
  • 计算机 2、3 发现自己不需要使用资源,因此同意计算机 1 的请求;
  • 计算机 1 收到其他所有计算机的同意消息后,开始修改该文件;
  • 计算机 1 修改完成后,向计算机 2、3 发送文件修改完成的消息,并发送修改后的文件数据;
  • 计算机 2 和 3 收到计算机 1 的新文件数据后,更新本地的备份文件。
 
  • 令牌环方法(基于环的算法)
   所有程序构 成一个环结构,令牌按照顺时针(或逆时针)方向在程序之间传递,收到令牌的程序有权访问临界资源,访问完成后将令牌传送到下一个程序;若该程序不需要访问临界资源,则直接把令牌传送给下一个程序。

       

  • 优点:单个参与者通信效率较高,可用性较高
  • 缺点:当参与者对临界资源使用频率较低时,会带来较多无用通信
  • 应用场景:系统规模较小,并且系统中每个程序使用共享资源频率较高且使用较短的场景;令牌环算法非常适合通信模式为令牌环方式的分布式系统,例如移动自组织网络系统。一个典型的应用场景就是无人机通信。
  • 两层结构的分布式令牌环算法:
    • 把整个广域网系统中的节点组织成两层结构,可以用于节点数量较多的系统,或者是广域网系统。
    • 广域网由多个局域网组成,因此在该算法中,局域网是较低的层次,广域网是较 高的层次。每个局域网中包含若干个局部进程和一个协调进程。局部进程在逻辑上组成一个环形结构,在每个环形结构上有一个局部令牌T在局部进程间传递。局域网与局域网之间通过各自的协调进程进行通信,这些协调进程同样组成一个环结构,这个环就是广域网中的全局环。在这个全局环上,有一个全局令牌在多个协调进程间传递。
 
原文地址:https://www.cnblogs.com/Onlywjy/p/12800133.html