- 1、本文档共130页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
陈香兰2007年3月21日
陈香兰@2007.3.21 分布式系统同步(续) 分布式系统的同步(续) 陈香兰@2007年3月21日 分布式系统中进程之间是如何彼此协作和同步的,这是我们在分布式系统设计过程中需要密切关注的问题之一,涉及到如下4个方面: 1)时间 2)互斥 3)选举 4)死锁 上次课回顾 时间在分布式系统同步研究中很重要。 时间的一致性集中式系统中的时间vs.分布式系统中的时间 与真实时钟之间的关系逻辑时钟 vs 物理时钟 Lamport的逻辑时钟同步算法1)“在之前发生”关系2)时间值的确定 上次课回顾(cont.) 物理时钟同步算法1)两个集中式的物理时钟同步算法: Cristian’s算法 Berkeley算法 2)一个分布式的物理时钟同步算法: 平均值算法 上次课回顾(cont.) 分布式系统互斥:实现共享资源的互斥访问 1)集中式算法:协调者进程+请求队列 2)分布式算法(Ricart和Agrawala算法):根据时间戳PK 3)令牌环算法 本次课内容 选举算法 确定一个协调者 原子事务 要么全有要么全无的特性简化了编程人员的工作 涉及原子事务的使用、设计和实现 分布式系统中的死锁 鸵鸟算法 分布式死锁的检测和恢复 分布式死锁的预防 3.3 选举算法 许多分布式算法需要一个进程充当协调者、发起者、排序者或者其他特定的角色 例如:集中式互斥算法中的协调者进程 通常,选择哪个进程充当协调者并不重要,重要的是要有进程负责 本节,我们将了解选举协调者的算法 最大进程号 如果所有进程的地位都相同,没有特性上的区别,就无法选择其中一个为特殊进程 假设每个进程有一个特殊的号码,例如机器的网络地址(为简单起见,假定每个机器只有一个进程) 通常选举算法总是找拥有最大号码的进程,将它指定为协调者,各算法在选举时有不同的方法 选举的目的 我们假设每个进程都知道所有其他进程的进程号,但不知道目前哪些进程正常,哪些进程不正常。 选举算法的目的是在选举开始后,确保在所有进程都同意的基础上选出协调者 两个选举算法 欺负(Bully)算法 环算法 3.3.1 欺负(Bully)算法 Bully算法由Garcia-Molina在1982年提出 当一个进程P发现协调者不再响应请求时,它就发起选举。进程P负责选举如下: P向所有号码比它大的进程发送选举(ELECTION)消息; 若无人响应,P获胜成为协调者; 若有号码比它大的进程响应,响应者接管,P的工作完成。 由于总是号码最大的进程获胜,故该算法命名为欺负算法 欺负(Bully)算法(cont.) 在某一时刻,一个进程只能从号码比它小的进程那里得到一个选举(ELECTION)消息,当它到达时,接收者就发送回OK消息,表明它的存在并接管,然后接收者主持选举(除非它正在主持别的选举)。 除了一个进程外,其余进程都得放弃,这个进程就是新的协调者,它将选举获胜的消息发送给所有进程,告之它是新的协调者。 若一个进程刚刚崩溃过,而又得到恢复,它主持选举,若它刚好是当前运行进程中号码最大的,它就会获得选举的胜利,从而接管协调者的工作。 欺负(Bully)算法举例 一组由0~7号共8个进程组成,开始7号进程是协调者,但是它突然发生了故障,进程4第一个注意到这一点,所以它向所有比它进程号大的进程,即进程5、6、7发送选举消息。 进程5和6接收消息后发送回OK。进程4接收到第一个应答时就知道自己已经结束了,因为已经有比它进程号大的进程即将接管它的工作成为新的协调者,它就等待着看谁将在选举中获胜。 进程5和6都主持选举,每个进程仅把消息发送给比自己进程号大的进程 近程6告诉进程5它将成为协调者,而这个时候进程6知道进程7已经死了,而且它将是获胜者。 如果从磁盘或其他地方无法得到一些状态信息表明原来的协调者在哪里失效,进程6则要做这部分工作。 进程6接管,向所有的运行进程发送COORDINATOR协调者消息 进程4收到消息,发现进程7已死,进程6是新协调者,进程4就可继续工作。 这样,进程7的失效得到了处理 举例(小结) 上述例子经历了5个步骤 进程4主持选举 进程5和进程6分别应答,通知进程4停止 进程5和进程6分别主持选举 进程6通知进程5停止 进程6获胜并通知所有进程 如果进程7重新启动,它就会向所有的进程发送协调者消息,使它们受到欺负。 3.3.2 环算法 环算法基于没有令牌的环 假设所有的进程是按物理或逻辑排序的,每个进程都知道谁是它的后继者。 当任何一个进程发现协调者不再起作用时,它就构造一个包含它自身进程号的选举消息发送给它的后继者。 如果后继者失效,消息将绕过后继者到达后继者的后继者,或者再下一个,直到找到一个运行进程。 每次,发送者都将自己的进程号加入到消息表中。
您可能关注的文档
- 阅读理解四步曲一、先读问题弄清考查要点以便能带着问….ppt
- 阅读练习课件定稿.ppt
- 阅读解题思路建模例说.ppt
- 阅读理解题解题指南.ppt
- 闭环式整合营销提升产品搜索声量宣传版.ppt
- 阜丰肥料营销技术培训.ppt
- 问题解决步法(精华篇).ppt
- 阅读理解AmericanEnlglish及答案.ppt
- 阅读理解技巧之猜测词意..ppt
- 防治电脑病毒的有效方法.ppt
- 2025年中化集团方舟生招聘笔试备考题库(带答案详解).pdf
- 2025年中建西南设计院招聘笔试备考题库(带答案详解).pdf
- 2025年南通市慈善总会招聘笔试备考题库(带答案详解).pdf
- 2025年江西网吉安分站招聘笔试备考题库(带答案详解).pdf
- 2025年山西三晋都市报招聘笔试备考题库(带答案详解).pdf
- 2025年山西省高河能源招聘笔试备考题库(带答案详解).pdf
- 2024年贵州省毕节地区大方县大水乡招聘社区工作者真题含答案详解.docx
- 2024年贵州省贵阳市开阳县永温乡招聘社区工作者真题及答案详解1套.docx
- 2024年贵州省贵阳市南明区新华路街道招聘社区工作者真题及答案详解1套.docx
- 2024年贵州省遵义市仁怀市长岗镇招聘社区工作者真题及参考答案详解.docx
最近下载
- 2025年太仓市太訸控股集团有限公司第二批公开招聘19人笔试备考题库及答案解析.docx VIP
- 《食管癌综合治疗新进展》课件.ppt VIP
- 商铺租赁合同电子版下载打印.docx VIP
- 2025年太仓市太訸控股集团有限公司第二批公开招聘19人笔试参考题库附答案解析.docx VIP
- 2025年太仓市太訸控股集团有限公司第二批公开招聘19人备考题库及答案解析.docx VIP
- 《危重患者的抢救》课件.ppt VIP
- 孕产妇心肺复苏要点课件.pptx VIP
- 农村小学中高年级学生阅读兴趣培养策略研究-课题申请评审书.docx VIP
- 工程制图制图基础.ppt VIP
- 简约产品订货合同模板.docx VIP
文档评论(0)