《分布式系统》李西宁,课件,第6章.ppt

  1. 1、本文档共70页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《分布式系统》李西宁,课件,第6章.ppt

第六章 分布式系统的同步与互斥 性能衡量图示 算法术语 令系统中参与资源竞争的进程为Pi, i = 1..n 当Pi要求进入临界区时,它需要向 Ri = {Pj, Pk,…} 集合中的进程发出临界区申请信件。我们把这个集合称为申请集合。 一般而言,分布式互斥算法需要三种类型的信件: 申请信件(REQ) ,回应信件(REPLY) 和释放信件(REL) 我们还假定一封信件在网络上的平均传输时间为T。 中央控制算法 (2) 临界区申请: (1)?当Pi希望进入临界区时,向Pc发出REQ; (2)当Pc接收到来自Pi的REQ信件,如果目前有进程在临界区里工作,便把这个申请附加到一个先来先服务(FCFS:First Come First Serve) 的申请信件队列;而当没有进程在临界区访问时,便向Pi返回一封REPLY信件。 进入临界区: 当Pi接收到Rc的REPLY信件后,就可以进入临界区。 退出临界区: (1)当Pi退出临界区时,向Pc发出一封REL信件,表示释放临界区。 (2) 一旦Pc接收REL信件,就可以从申请队列中取出下一个等待着的申请者,向它返回一封REPLY信件;如果当前无等待者,则设置临界区空闲。 中央控制算法 (3) 中央控制算法保证了互斥、无死锁、无饿死,以及公平性,但其容错能力极差,整个系统取决于中央控制进程的安全运行。 每次访问临界区所需的信件数量为3封,即一封REQ,一封REPLY和一封REL。 当一个进程退出临界区时,它要发出一封REL,这封信经过时间T后到达Pc,随即Pc向下一个等待着的申请者发出一封REPLY,故仍需时间T后下一个进程才能进入临界区,因而,同步延迟SD = 2T。 当系统的负载比较轻时,反应时间为2T + E,系统的吞吐率为1/(2T + E) 。 分布式快照算法(1) 系统中任一进程Pi要执行下述步骤: (1)如果进程Pi从某一条输入通道Ik接收到标记信件,它需要检查是否已经参与全局状态采集工作。如果未曾参与,则Pi记录自己的局部状态,同时把标记信件沿所有输出通道发出。 (2)一旦进程Pi参与了状态采集工作,就必须把所有来自Ik的后继信件一并存入状态采集文件,我们把这些后继信件称为Ik通道状态。 (3)当进程Pi从通道Ik再次接收到标记信件时,意味着Ik通道状态采集结束;而当进程Pi结束对所有输入通道的状态采集后,该进程完成局部快照算法;此时此刻,它把保存的局部状态连同所有通道状态一并发送到分布式快照算法的启动进程。 环形选举算法(2) 正常运行时,每一个进程都把自己标识为未参与选举。而当某个进程发现协调者丢失,便启动选举算法:它把自己的状态改置为参与选举,同时把自己的标号填写在选举信件中,发送到后继进程。于是,当一个进程P接收到选举信件时,P首先把信件中标号与自己的标号所比较,我们有下述情况: (1) 如果信件中标号大,则立即把选举信件转发给P的后继进程,同时将P自身改为参与竞选状态。 (2) 反之,若信件中标号小并且P还没有参与竞选,则用P的标号取代信件中标号,并将选举信件发往P的后继进程,同时将P改为参与竞选状态;而如果P已经参与竞选,则把这封选举信件删除。 (3) 如果信件中标号等于P的标号,则P进程当选。P把自己的状态恢复成未参与选举,然后向P的后继进程发出一封当选信件,通知所有进程当选的标号并宣告选举结束。 分布式快照算法(2) Pi Pi Pi Pi M M M M c b a a b 状态 状态 a b 状态 c (1) 接收标记 (2) 保存局部状态 (3) 保存后继信件 (4) 状态采集完成 Ik Ik Ik Ik 选举算法 分布式选举算法的目的是在一组进程中通过“民主协商” 的原则推选出一个进程作为中央协调者。由于系统中每一个进程都具备候选的权力,选举算法可能被多个进程同时启动,因而算法设计的关键是要保证只有唯一一个进程当选。 假定: 每一个进程都有一个唯一的标号(如进程标识符) 每个参与竞选的进程都知道其它进程的标号 通信是可靠的,但参与竞选的进程在选举期间可以退出运行(由于硬件故障、停机,或者其它原因) 恃强算法 恃强算法需要三种类型的信件:(1) 选举信件,宣告选举开始;(2) 回答信件,表示接收到选举信件;(3) 当选信件,通知新当选的进程标号。每当一个进程发现原来的协调者出现故障(如长时间无回应),就可以启动选举算法。 假设进程P启动恃强算法,则需要经历下列步骤: (1)P向所有高标号进程发出选举信件;然后等待回答信件。 (2)如果等待时间超出预定的限度还没有回答,则P自动当选;P向所有低标号进程发出当选信件。 (3)如果接收到回答,则P继续等待当选信件;如果时间超时尚

文档评论(0)

好文精选 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档