中科院讲义分布式操作系统欺负算法.pptVIP

中科院讲义分布式操作系统欺负算法.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
中科院讲义分布式操作系统欺负算法.ppt

选举算法 在分布式系统中,大多数算法要求有一个进程充当管理者、协调者、排序者或初始启动者等特殊角色。一般讲,由哪个进程充当这个特殊角色无关紧要,重要的是要有进程负责。 如果所有进程的地位都相同,没有特性上的区别,就无法选择其中一个为特殊进程。 选举算法 假设每一个进程有一个特殊的号码,比如它的网络地址(为简单起见,我们假设每台机器只有一个进程),通常选举算法总是找具有最大号码的进程,将它指定为管理者。下面我们假定每个进程都知道其他进程的号码,但不知道目前哪些进程正常,哪些进程不正常。选举算法的目的是确定选举何时开始,它在所有进程都同意的基础上选出管理者。 欺负算法 它是由Garcia-Molina(1982)提出的,当一个过程发现协调者不再响应请求时,它就发起选举。进程P负责选举如下: ⑴P向所有号码比它大的进程发送选举(ELECTION)消息; ⑵若无人响应,P获胜成为协调者; ⑶若有号码比它大的进程响应,响应者接管,P的工作完成。 欺负算法 在某一时刻,一个进程只能从号码比它小的进程那里得到一个选举(ELECTION)消息,当它到达时,接收者就发送回OK消息,表明它的存在并接管,然后接收者主持选举(除非它正在主持别的选举)。除了一个进程外的其余进程都得放弃,这一个进程就是新的协调者,它将选举获胜的消息发送给所有进程,告之它是新的协调者。 欺负算法 若一个进程刚刚崩溃过,而又得到恢复,它主持选举,若它刚好是当前运行进程中号码最大的,它就会获得选举的胜利,从而接管协调者的工作,所以最大的进程总能取胜,故而将该算法命名为欺负算法。 欺负算法 欺负算法 一组由0~6号的共7个进程组成,开始6号进程是协调者,但是它突然发生了故障,进程3第一个注意到这一点,所以它向所有比它进程号大的进程,即进程4,5,6发送选举消息,如下图(a)所示。进程4和5接收消息后发送回OK消息,如图(b)所示。进程3接收到第一个应答时就知道自己的工作已经结束了,因为已经有比它进程号大的进程即将接管它的工作成为新的协调者,它就等待看谁将在选举中获胜。 欺负算法 在图(c)中,进程4和5都主持选举,每个过程仅把消息发送给比自己进程号大的进程,在图(d)中,进程5告诉进程4它将成为协调者,而这个时候进程5知道进程6已经死了,而且它将是获胜者。如果从磁盘或其他地方无法得到一些状态信息表明原来的协调者在哪里失效,进程5则要做这部分工作。 欺负算法 当它准备接管时,进程5向所有的运行进程发送COORDINATOR协调者消息,进程3接收到这条消息后,发现过程6已经死了,进程5是新的协调者,进程3就可以继续它刚才所尝试进行的工作,这样,进程6的失效得到了处理,而且工作又得到了继续。 如果进程6重新启动,它就会向所有的进程发送协调者消息,使它们受到欺负。 环选举算法 另外一种选举算法是基于没有令牌的环,假设所有的进程是按物理或逻辑排序的,这样每一个进程都知道谁是它的后继者。 环选举算法 当任何一个进程发现协调者不再起作用时,它就构造一个包含它自身进程号的选举消息发送给它的后继者,如果后继者失效,消息将绕过后继者,到达后继者的后继者,或者再下一个,直到找到一个运行进程。每次,发送者都将自己的进程号加入到消息表中。 环选举算法 最后,消息到达了始发者的手中,始发者接收到包括自己进程号的消息后,将消息的类型转化为协调者消息,该消息将再一次绕环运行,向所有的进程通知谁是协调者(在成员表中进程号码最大的那个)和新的环成员。当消息循环一周后,被去掉,每个过程都恢复工作。 环选举算法 在下图中我们看到如果进程2、5同时发现前任协调者进程6失效时,它们各自建立一个选举消息沿环发送,最终,两条消息都将沿环运动,进程2和进程5分别将它们转化成协调者消息,消息中有完全一样的成员,相互顺序也相同,当两条消息再绕环一周时,都被去掉,有多余的消息循环没有坏处,最多是浪费了一点带宽。 环选举算法 * *

文档评论(0)

ziyouzizai + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档