第三章分布式协同处理课件.pptVIP

  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文档。上传文档
查看更多
第三章分布式协同处理课件

第三章 分布式协同处理 3.1事件定序与时戳 从任何一个单一的进程来看,其中的事件可由本地时钟进行惟一的排序。但是,在分布式系统中不能完美地进行时钟同步,那么一般就不能用物理时间指明其中任意一对事件发生的次序。 一般,在分布式系统中,可以使用类似于物理因果关系的方案来判断不同进程中事件发生的次序,这样一种定序思路是基于下面两个基本观点的: (1)若两个事件发生在同一进程中,则可用观察到的次序来确定它们发生的次序。 (2)无论何时在进程间传递消息,发送消息的事件先于接收同一消息的事件。; 用这两种观点得到的定序为HB关系(Happened-Before relation),有时也称之为因果定序 (causal ordering)。 定义HB关系,并“ →”表示HB关系: HB1:如果存在进程p,且xp→y,则有x→y; HB2:对任何消息m,send(m)→receive(m),其中send(m)是发送消息m的事件,receive(m)是接收同一消息m的事件; HB3:对于事件x,y,z,如果有x→z,且y→z,则有x→z。 图3.1说明了进程P1、P2、P3中一些事件之间的“→”关系。;; 逻辑时钟仅能对事件集进行部分排序,因为由不同进程产生的不同事件组可能有相同的数字化时戳。但可以通过考虑发生事件的进程的标识符(例如,给它们赋以惟一的编号)来将这种部分排序扩充为完全排序,这是对系统中所有不同事件进行排序的一种定序方法。 假定进程Pa上发生的事件a的时戳为Ta,在进程Pb上发生的事件b的时戳为Tb。设事件a和b的全局逻辑时戳分别为(Ta,Pa)和(Tb,Pb),可以定义: (Ta,Pa)<(Tb,Pb)当且仅当Ta<Tb或者Ta=Tb但Pa<Pa。 这样就称进程Pa中的事件a先于进程Pb中的事件b发生,用a==b表示。;3.2分布式互斥算法 实现分布式互斥的几点要求如下: (1)安全性:在某一时刻至多只有一个进程在临界段内执行。 (2)可用性:请求进入临界段的进程终将准入。 可用性要求还隐含这种实现能避免死锁且不会发生饥饿现象。 (3)定序:按关系“==”排定的次序进入临界段。 3.2.1分布式互斥算法的基本假定 分布式算法有如下的基本假定: (1)一个分布式系统由n个站点组成,它们从1到n惟一地编号,每个站点含有一个进程,而且进程和站点间存在一一对应的关系。 (2)pipeline特性成立,即从一个进程发送给另一个进程的消息是按它们发送的次序接收的。 (3)每条消息在有穷时间间隔内都能正确地传递到它的目的地。 (4)系统是全互连的,因而每个进程都可直接给其他的进程发送消息。; *为了解决分布式系统中的同步问题,必须提供类似分布式信号量的机制。为简化讨论,下面只考虑初值为1的二元信号量的实现问题,这也就等价于解决互斥问题。 3.2.2集中式算法 用于解决分布式互斥问题的集中式算法中,通常选定某个进程负责协调进入临界段的工作,每个希望进入临界段(引用互斥)的进程都给协调者进程发送一个Request消息,仅当此进程接收到协调者的Reply消息时,它才可以进入它的临界段。当它退出临界段时,此进程发送一个Release消息给协调者进程,然后继续它的执行。 在接收到一个Request消息后,协调者进程检查是否有某个进程位于临界段,若没有进程位于它的临界段,协调进进程马上回送一个Release消息后;否则,便将该Request消息置入Request队列。当协调者进程接收到一个Release消息后,它(用某种调度策略)从Request队列中取出一个Request消息,并发送一个Reply消息给该请求服务的进程。; 不难看出,该算法确保了互斥。此外,若协调者的调度策略是公平的(如FCFS策略),则不会发生饥饿现象。如果协调者进程故障,必须要求新的进程取代它。 3.2.3 Lamport算法 该算法的基本假定如下: (1)进程Pi发送的请求消息形如Request(Ti,i),其中Ti=Ci,是进程Pi发送此消息时对应逻辑时钟的值(时戳)。 (2)每个进程管理着一个请求队列,最初它为空,该队列包含用关系“==”定序的请求消息。; 该算法可描述为: (1)当进程Pi请求进入临界段时,它将Request(Ti,i)发送给系统中所有其他的进程,同时,也将此消息置入它自己的请求队列中; (2)当进程Pj接收到这条Request(Ti,i)消息后,它便将此消息置入自己的请求队列中,并返回一个带有时戳的Reply消息; (3)当下面两

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档