分布式操作系统的互斥算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
[摘要]
本文主要介绍了分布式操作系统中的分布式互斥算法和令牌环互斥算法,并着重针对几种不同的令牌环算法分析了它们算法的正确性,最后还讨论了各个算法的性能并加以比较。
[关键词]
分布式操作系统令牌环互斥算法
引言
分布式互斥是随着分布式系统的出现而出现的,并随着分布式系统理论发展而发展。因此,和分布式系统的体系结构发展史类似,分布式互斥的发展经历了如下几个发展阶段。
(1)完全中心式算法。在该类算法中,一个节点被指定为控制(裁决)节点,它控制对所有共享对象的访问。当任何进程请求对一个临界资源进行访问时,就向本地资源控制进程发送一个请求消息,该进程接着向控制节点发送一个请求消息。当共享对象可用时,将返回一个应答消息。当进程结束使用资源后,向控制节点发送一个释放消息。这类算法有两个共同点,其一是只有控制节点能控制资源的分配,其二是所有需要的信息都集中在控制节点中,包括所有资源的实体和位置以及每个资源的分配状态。
完全中心式算法实现简单,控制也很方便,但存在以下缺点:如果控制节点崩溃,则互斥机制终止,同时由于所有请求资源的进程都需与控制节点交换消息,因此,控制节点可能存在通信瓶颈。,
(2)局部中心式算法。由于完全中心式算法可能出现的控制节点容错问题与通信瓶颈问题,人们采取了相应措旌以期解决或缓解这些问题给整个系统带来的影响。因此出现了局部中心式算法。局部中心式算法是将各临界资源按一定规则分为几个区域,每个区域包含一定数量的临界资源和一个中心控制点。任何需要请求某临界资源的进程都需向该l晦界资源所在区域的中心控制节点发送请求消息并由该控制节点安排进程访问临界资源的次序。该类算法具有多个控制点,各控制点间互不干涉,每一个控制节点故障只影响系统内节点对该控制节点管理区域内的临界资源访问,不会对非该区域内资源的访问造成影响。因此可以缓解完全中心式算法的控制节点容错问题与通信瓶颈问题。
(3)局部分布式算法。局部中心式算法虽然缓解了其完全中心式算法的控制节点容错及通信瓶颈问题,但并未使这些问题得到解决。特别是随着通信技术的发展,节点间的通信带宽已经能够较大程度满足互斥的消息通信要求,因此使中心式算法的控制节点容错变得更加重要。因此,人们将局部中心式算法中互不干涉的控制节点改为互相备份的方式。当一个控制节点失效时,其控制的资源将转向其备份的控制节点,使得互斥能够继续进行。该类算法继续发展,出现了多点
共同决策的资源访问模式,即任何一次的关键资源访问,不再是由唯一的一个控制节点决定,而是由所有控制节点共同决定。因此申请访问临界资源的节点不再只是向唯一的资源控制节点发送请求消息,而是需要向所有控制节点发送请求消息。当所有控制节点都同意申请节点的请求时,申请节点获得临界资源访问机会。
因为多点控制使得节点间需要交换的消息数量增加,同样可能出现通信瓶颈,因此该类算法是在通信技术发展到一定阶段的产物。该类算法在解决控制节点容错方面具有较好的性质。
(4)完全分布式算法。局部分布式互斥算法虽然使得分布式互斥的控制节点容错问题得到了一定解决,但其容错能力不高,并增加了互斥所需的消息量。因此,LamportⅢ提出了完全分布式互斥的概念,并对分布式系统的消息排序进行了深入研究。Maekawa”3对完全分布式算法的对称性特性作出了如下刻画。
1)所有节点具有相同的信息量;
2)所有节点只能掌握完整系统的部分情况,且必须基于这一信息作出决定;
3)所有节点对最终决定承担相同责任;
4)所有节点在对最终决定的影响上付出相同的努力;
5)一个节点的故障从整体上不会导致整个系统的崩溃:
6)不存在系统范围的共同时钟来规范时间的定位与排序。
其中第2)点是属于可选项,因为有些分布式互斥算法要求任何节点都要将自己所知道的所有信息通告系统内其他节点,这样,如果忽略通信延迟,则任何节点都将知道系统的全局信息。当然,由于通信延迟的影响,节点不可能知道全局最新信息,因此,也可以说任何节点只能掌握系统的局部信息。
完全分布式互斥算法在节点的容错能力上比前面三种算法提高了很多,但同样提高了决策所需交换的信息量。当然,随着通信技术的发展,节点间的通信带宽将大大增加,虽然节点的通信瓶颈仍可能在一定条件下存在,但其几率已有很大程度下降。因此,研究如何降低消息复杂度,如何降低同步延迟以及提高节点与通信容错能力,成为完全分布式互斥研究的三个重要方向。完全分布式互斥的算法发展又可以分成如下三个阶段。
1) 起步阶段。该阶段以LamportⅢ算法为基础,以Ricart&Agrawala”。
算法与Maekawa乜1算法为标志,将分布式互斥算法从集中控制或非完全分布式互斥阶段推进到完全分布式互斥阶段。
2) 特殊发展阶段。在以上三类算法的基础上,在二十世纪八十年代后期到九十年代初,随着分布式系统的发展,出现了几种完全分布式互斥算法。它们改进了Maekawa乜1算法的各项性能指标,对分布式互斥算法的发展起到一定推动作用。这一时期的分布式互斥算法与Maekawa。1算法类似,都以研究特定系统规模条件下请求集的生成算法为主。
3) 全分布式互斥阶段。从二十世纪九十年代后期开始,分布式互斥算法不再仅仅是实验室中学术讨论的课题和纸上谈兵的目的,而是存在了实际需要。如何在上述全分布式互斥特性条件下,设计完全保证这些特性的分布式互斥算法,成为这一时期的主要课题。
四类算法都是在一定历史条件下出现的,并没有哪类算法在性能上占绝对优势,都在一定条件下具有相对优势。因此,在合适的条件下选择合适的算法,是分布式互斥应用的一个重要研究课题。
1~互斥算法概述
(1)分布式算法
分布式互斥算法的讨论最早始于1978年Lamport关于时钟同步的论文中,后来有人对它做了进一步的改进,本文所描述的算法即是改进后的算法
首先我们介绍该算法正确应用的假设前提: