一种改进的容错双令牌环互斥算法.pdf

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
互斥双令牌环算法的容错分析及一种改进的双令牌环算法 1.摘要 互斥能有效解决分布式系统中的资源申请的相互冲突并实现资源共享,本文 首先简要介绍了分布式异步系统中互斥算法的一些基本要求及评价标准。并介绍 单令牌环算法和双令牌环算法的算法思想及存在的不足,分析了双令牌环算法的 两种无法及时检测失效的情况,并在这两种问题的基础上,提出了一种容错性能 相对较好的双令牌算法。 2.分布式互斥 分布式进程常常需要协调他们的动作。如果一组进程共享一个或一组资源, 那么访问资源时,常需要互斥来防止干扰和保证一致性。这就是在操作系统领域 中熟悉的临界区问题。然而,在分布式系统中,一般来说共享变量或者单个本地 内核提供的设施都不能被用来解决这个问题。我们需要一个分布式互斥的解决方 案:一个仅基于消息传送的解决方案。这也促成了互斥算法的发展。 互斥算法 考虑无共享变量的N 个进程P,i=1,2,...,N 的系统。这些进程只在临界区 访问公共资源。为简单起见,我们假定只有一个临界区。可以很容易的把我们将 要介绍的令牌环算法拓展到多个临界区。 我们假设系统是异步的,进程不出故障,并且消息的传递是可靠的,这样任 何传递的消息最终都被完整的发送恰好一次。 执行临界区的应用层协议如下: Enter () //进入临界区——如必要则阻塞 Resource Accesses() //在临界区访问共享资源 1 Exit () // 离开临界区——其他进程现在可以进去 我们对互斥的基本要求如下: ME1: (安全性) 在临界区(CS)一次最多有一个进程可以执行。 ME2:(活性) 在进入和离开临界区的请求最终成功执行(既无死锁,也无饥 饿)。 ME3:(顺序性) 如果一个进入CS 的请求发生在先,那么进入CS 仍按此顺序(先 请求先服务)。 我们按下列标准评价互斥算法: ① 消耗的带宽,与在每个进入和退出操作中发送的消息数成比例; ② 每一次进入和退出操作由进程导致的客户延迟; ③ 算法对系统吞吐量的影响,这是在假定后续进程间的通信是必要的条件下, 进程整体访问临界区的比率。我们用一个进程离开临界区和下一个进程进入临界 区之间的同步延迟来衡量着这个影响,当同步延迟较短时,吞吐量较大。 在本文的描述中,不考虑资源访问的具体实现。但是,我们假定客户进程行 为正常,并且在临界区中花费有限的时间访问资源。 3.基于环的算法 在N 个进程间安排互斥而不需另外进程的最简单方法之一,是把这些进程安 排在一个逻辑环中。这只需要每个进程 P 与环中下一个进程 P 有一个信 i (i+1)mod N 道。该方法的思想是通过获得在进程间沿着环单向——如顺时针——传递的消息 (令牌形式)来实现互斥。逻辑环的拓扑结构可以与计算机之间的物理互联无关。 如果一个进程在收到令牌时不需要进入临界区,那么它立即把令牌传给他环 上的邻居。需要令牌的进程将一直等待,直到接收到令牌,并保留令牌以便进入 临界区,而后,进程执行完毕前,为了离开临界区,进程把令牌发送到它的邻居。 该算法连续地消耗网络带宽(除了当一个进程在临界区时):进程沿着环发 送消息,即使在没有进程需要进入临界区时,也是这样。请求进入临界区的进程 会延迟0 个(令牌传到时,刚好有进程需要进入临界区)——N 个(令牌刚传出, 刚好产生进程需要进入临界区)消息。离开临界区只需要一个消息,在一个进程离开 和下一个进程进入临界区之间的同步延迟可以是1~N 个消息传输。 2 P 1 P0 P2 P3 pn

文档评论(0)

137****0427 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档