




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章时间和全局状态第3章时间和全局状态第3章时间和全局状态简介
时钟、事件和进程状态同步物理时钟逻辑时间和逻辑时钟全局状态分布式调试小结第3章时间和全局状态简介简介如何计时?如何同步时钟?没有物理时钟能否确定事件的顺序?简介如何计时?简介时间的重要性需要精确度量——审计电子商务某些算法依赖于时钟同步——数据一致性维护、make计算全局状态——事件排序时间的复杂性节点具有独立的物理时钟精确同步物理时钟非常困难全局状态的捕获依赖于逻辑时钟逻辑时钟与物理时钟无必然联系简介时间的重要性时钟、事件和进程状态时间分类天文学时间
-太阳日:两次连续的太阳中天之间的时间间隔
-太阳秒:1/86400个太阳日国际原子时间(TAI)-基于铯原子跳跃周期
-秒:9192631770次跳跃周期通用协调时间(UTC)-基于原子时间
-采用润秒,与天文时间保持一致时钟、事件和进程状态时间分类第3章时间和全局状态简介
时钟、事件和进程状态同步物理时钟逻辑时间和逻辑时钟全局状态分布式调试小结第3章时间和全局状态简介时钟、事件和进程状态假设每个进程在单处理器上执行处理器之间不共享内存进程之间通过消息进行通信进程状态所有变量的值相关的本地操作系统环境中的对象的值事件定义:一个通信动作或进程状态转换动作进程历史:时钟、事件和进程状态假设时钟、事件和进程状态计算机时钟晶体具有固定震荡频率硬件时钟:软件时钟:时钟漂移频率不同时钟频率随温度变化而有所差别时钟偏移不可避免Infact,theeffectofclockskewisthemainreasonwhyclockoffsetskeepdriftingaway.Novelclockphaseoffset……IEEETransactionsonCommnunications,Vol55,No.4,2007.4时钟、事件和进程状态计算机时钟第3章时间和全局状态简介
时钟、事件和进程状态同步物理时钟逻辑时间和逻辑时钟全局状态分布式调试小结第3章时间和全局状态简介同步物理时钟外部同步采用权威的外部时间源时钟Ci在范围D内是准确的内部同步无外部权威时间源,系统内时钟同步时钟Ci在范围D内是准确的关系
若P在范围D内外部同步,则P在范围2D内内部同步同步物理时钟外部同步同步物理时钟Cristian方法(适用于只有一台机器有WWV接收器)应用条件
-存在时间服务器,可与外部时间源同步
-消息往返时间与系统所要求的精度相比足够短协议
-进程p根据消息mr,mt计算消息往返时间Tround-根据服务器在mt中放置的时间t设置时钟为:t+Tround/2mtp时间服务器Smr同步物理时钟Cristian方法(适用于只有一台机器有WWV同步物理时钟Berkeley算法(没有WWV接收器)主机周期轮询从属机时间主机通过消息往返时间估算从属机的时间
与Cristian方法类似主机计算容错平均值主机发送每个从属机的调整量同步物理时钟Berkeley算法(没有WWV接收器)同步物理时钟网络时间协议(NTP)设计目标
-可外部同步使得跨Internet的用户能精确地与UTC同步
-高可靠性可处理连接丢失,采用冗余服务器、路径等
-扩展性好大量用户可经常同步,以抵消漂移率的影响
-安全性强防止恶意或偶然的干扰同步物理时钟网络时间协议(NTP)同步物理时钟协议结构
-层次结构
-主服务器直接与外部UTC同步
-同步子网可重新配置123233
同步子网结构示例同步物理时钟协议结构123233第3章时间和全局状态简介
时钟、事件和进程状态物理时钟同步逻辑时间和逻辑时钟全局状态分布式调试小结第3章时间和全局状态简介逻辑时间和逻辑时钟逻辑时间的引入分布式系统中的物理时钟无法完美同步
-消息传输延时的不确定性事件排序是众多分布式算法的基石
-互斥算法
-死锁检测算法缺乏全局时钟
-后发生的事件有可能赋予较早的时间标记逻辑时间和逻辑时钟逻辑时间的引入逻辑时间和逻辑时钟逻辑时钟众多应用只要求所有节点具有相同时间,该时间不一定与实际时间相同Lamport(1978)指出:不进行交互的两个进程之间不需要时钟同步对于不需要交互的两个进程而言,即使没有时钟同步,也无法察觉,更不会产生问题。所有的进程需要在时间的发生顺序上达成一致
如make程序逻辑时间和逻辑时钟逻辑时钟逻辑时间和逻辑时钟事件排序“系统i中的事件a发生在系统j中的事件b之前”是不准确的
-事件发生和观察之间存在时延
-不同系统中的时钟存在偏差时间戳(Lamport1978)
-用于分布式系统中的事件排序
-与物理时钟无关
-实用高效,应用广泛逻辑时间和逻辑时钟事件排序逻辑时间和逻辑时钟两个基本事实
-同一进程中的两个事件存在关系“i”-任一消息的发送事件发生在该消息的接收事件之前“发生在先(happens-before)”关系定义
-若存在进程pi满足eie’,则ee’-对于任一消息m,存在send(m)recv(m)-若事件满足ee’
和e’e’’
,则ee’’并发关系定义
XY与YX均不成立,则称事件X、Y是并发的,表示为X||Y逻辑时间和逻辑时钟两个基本事实逻辑时间和逻辑时钟事件排序示例
-bc,cd和df成立
-bf与ef均成立
-事件b和e无法比较,即b||ep1p2p3abcdefm1m2物理时间逻辑时间和逻辑时钟事件排序示例p1p2p3abcdefm1m逻辑时间和逻辑时钟Lamport时钟机制
-进程维护一个单调递增的软件计数器,充当逻辑时钟
-用逻辑时钟为事件添加时间戳
-按事件的时间戳大小为时间排序逻辑时钟修改规则
-进程pi发出事件前,逻辑时钟Li:=Li+1-进程pi发送消息m时,在m中添加时间戳t=Li-进程pj在接收(m,t)时,更新Li:=max(Lj,t)+1,给s事件recv(m)添加时间戳后发送给应用程序逻辑时间和逻辑时钟Lamport时钟abcdefm1m2213451p1p2p3物理时间逻辑时间和逻辑时钟Lamport时钟示例(一)
abL(a)<L(b)
L(e)<L(b)beabcdefm1m2213451p1p2p3物理逻辑时间和逻逻辑时间和逻辑时钟(a)三个不同速率的时钟(b)Lamport算法校正时钟Lamport时钟示例(二)逻辑时间和逻辑时钟(a)三个不同速逻辑时间和逻辑时钟Lamport时钟练习假设系统中只存在消息发送和接收事件,如下图所示,请给出事件a-g的逻辑时钟。逻辑时钟
0逻辑时间和逻辑时钟Lamport时钟练习逻辑时钟0逻辑时间和逻辑时钟Lamport时钟练习答案逻辑时钟:0144328657579逻辑时间和逻辑时钟Lamport时钟练习答案逻辑时钟:014逻辑时间和逻辑时钟不同进程产生的消息可能具有相同数值的Lamport时间戳物理时间逻辑时间和逻辑时钟不同进程产生的消息可能具有相同数值的Lam逻辑时间和逻辑时钟基于Lamport时间戳的事件排序---总结算法不依赖于事件发生的真实时间与真实物理时间中事件的发生顺序可能不一致
基于Lamport时间戳的排序中,在时刻(2,1)发生的事件发生比在时刻(2,2)发生的事件要早,然而在真实物理时间中可能恰好相反。逻辑时间和逻辑时钟基于Lamport时间戳的事件排序---总逻辑时间和逻辑时钟Lamport时钟不具备性质:若L(A)<L(B)则AB没有捕获事件的因果关系
节点B发布一篇文章并传送给节点A和C。节点A就此发表评论并传送给节点B和C。araarr我们无法准确确定r的先后关系:C(a)<C(r)ara是节点A发布的文章r是节点B对文章a的评论
逻辑时间和逻辑时钟Lamport时钟不具备性质:若L(A)全序逻辑时钟引入进程标示符创建事件的全序关系若e、e’分别为进程pi、pj中发生的事件,则其全局逻辑时间戳分别为(Ti,i)、(Tj,j)。ee’Ti<Tj||Ti=Tj&&i<j系统中各个事件Lamport时间戳均不相同全序逻辑时钟引入进程标示符创建事件的全序关系向量时钟克服Lamport时钟的缺点:若L(e)<L(e’)不能推出则ee’。每个进程维护它自己的向量时钟ViVC1:初始情况下,Vi[j]=0,i,j=1,2,...N.VC2:在pi给事件加时间戳之前,设置Vi[i]=Vi[i]+1。VC3:pi在它发送的每个消息中包括t=Vi。VC4:当pi接收到消息中的时间戳t时,设置Vi[j]=max(Vi[j],t[j]),j=1,2,...,N。向量时钟克服Lamport时钟的缺点:若L(e)<L(e向量时钟向量时钟
Host1Host2Host3Host40,0,0,0VectorlogicalclockMessage(vectortimestamp)PhysicalTime0,0,0,00,0,0,00,0,0,0(1,0,0,0)1,0,0,01,1,0,02,0,0,02,0,1,0(2,0,0,0)2,0,2,02,0,2,1(2,0,2,0)1,2,0,02,2,3,0(1,2,0,0)4,0,2,24,2,4,2(4,0,2,2)2,0,2,23,0,2,2(2,0,2,2)2,0,2,34,2,5,3(2,0,2,3)n,m,p,q向量时钟Host1Host2Host3Host40,0,第3章时间和全局状态简介
时钟、事件和进程状态同步物理时钟逻辑时间和逻辑时钟全局状态分布式调试小结第3章时间和全局状态简介全局状态观察全局状态的必要性分布式无用单元的收集
-基于对象的引用计数
-必须考虑信道和进程的状态分布式死锁检测
观察系统中的“等待”关系图中是否存在循环p1消息无用对象对象引用p2等待等待p1p2全局状态观察全局状态的必要性p1消息无用对象p2等待等待p1分布式终止检测与进程的状态有关——“主动”或“被动”分布式调试需要收集同一时刻系统中分布式变量的数值全局状态激活被动的p1p2被动的分布式终止检测全局状态激活被动的p1p2被动的全局状态全局状态和一致割集观察进程集的状态——全局状态非常困难根源:缺乏全局时间进程的历史
hi=<ei0,ei1,ei2
…>进程历史的有限前缀
hik=<ei0,ei1,…,eik>全局历史——单个进程历史的并集
H=h1
h2
…
hN全局状态全局状态和一致割集全局状态进程状态
sik:进程pi在第k个事件发生之前的状态全局状态——单个进程状态的集合
S=(s1,s2,…sN)割集——系统全局历史的子集
C=<h1c1,h2c2…h3c3>割集的一致性割集C是一致的:对于所有事件eC,f
e
f
C全局状态进程状态全局状态割集示例m1m2p1p2物理时间e10一致的割集不一致的割集e11e12e13e20e21e22全局状态割集示例m1m2p1p2物理时间e10一致的割集不一全局状态一致的全局状态——对应于一致割集的状态
S0
S1
S2
…走向(run)-全局历史中所有事件的全序
-与每个本地历史顺序一致
-不是所有的走向都经历一致的全局状态线性化走向
-所有的线性化走向只经历一致的全局状态
-若存在一个经过S和S’的线性化走向,则状态S’是从S可达全局状态一致的全局状态——对应于一致割集的状态全局状态Chandy和Lamport的“快照”算法目的捕获一致的全局状态假设
-进程和通道均不会出现故障
-单向通道,提供FIFO顺序的消息传递
-进程之间存在全连通关系
-任一进程可在任一时间开始全局拍照
-拍照时,进程可继续执行,并发送和接收消息全局状态Chandy和Lamport的“快照”算法全局状态算法基本思想
-接入通道+外出通道
-进程状态+通道状态
-标记消息
标记接收规则:强制进程在记录下自己的状态之后但在它们发送其他消息前发送一个标记。
标记发送规则:强制没有记录状态的进程去记录状态全局状态算法基本思想全局状态算法伪码(一)进程pi的标记接收规则
pi接收通道c上的标记消息:
if(pi还没有记录它的状态)pi记录它的进程状态;将c的状态记成空集;开始记录从其他接入通道上到达的消息
elsepi把c的状态记录到从保留它的状态以来它在c上接收到的消息集合中
endif全局状态算法伪码(一)全局状态算法伪码(二)
进程pi的标记发送规则在pi记录了它的状态之后,对每个外出通道c:(在pi从c上发送任何其他消息前)pi在c上发送一个消息标记全局状态算法伪码(二)全局状态算法示例
-两个进程p1、p2进行交易,每件10$
-初始状态进程p2已经收到5件商品的定单,它将马上分发给p1
p1p2c2c1帐户窗口部件$1000(none)帐户窗口部件$502000全局状态算法示例p1p2c2c1帐户窗口$1000(none全局状态最后状态:P1:<$1000,0>;p2:<$50,1995>;
c1:<(fivewidgets)>;c2:<>p1(空)<$1000,0>1.全局状态S0p1p1p1c2c1(空)2.全局状态S1<$900,0><$900,0><$900,5><$50,1995><$50,1995><$50,2000><$50,2000>3.全局状态S24.全局状态S3p2p2p2p2c2c2c2c1c1c1(定单10,$100),M(空)(空)(定单10,$100),M(五个窗口部件)M=标记信息)(定单10,$100)全局状态最后状态:P1:<$1000,0>;p2:全局状态算法终止
-假设:一个进程已经收到了一个标记信息,在有限的时间内记录了它的状态,并在有限的时间里通过每个外出通道发送了标记信息.
-若存在一条从进程pi到进程pj的信道和进程的路径,那么pi记录它的状态之后的有限时间内pj将记录它的状态.
-进程和通道图是强连接的,因此在一些进程记录它的状态之后的有限时间内,所有进程将记录它们的状态和节入通道的状态。全局状态算法终止全局状态算法一致性
ei、ej分别为进程pi、pj中的事件,且eiej则我们有:若ejCei
C,其中C为一个割集。即如果ej在pj记录它的状态之前发生,那么ei必须在pi记录它的状态之前发生.证明思路如下:
-i=j时,显然成立
-i≠j时,反证法全局状态算法一致性第3章时间和全局状态简介时钟、事件和进程状态物理时钟同步逻辑时间和逻辑时钟全局状态分布式调试小结第3章时间和全局状态简介分布式调试目的对系统实际执行中的暂态作出判断例子安全条件检查
xi为进程pi的变量(i=1,2,…),安全条件为|xi-xj|≤控制系统所有阀门在某些时间是否全部处于开启状态分布式调试目的分布式调试方法监控器进程收集进程状态信息全局状态谓词的判断
-可能的:存在一个一致的全局状态S,H的一个线性化走向经历了这个全局状态S,而且该S使得(s)为True。
-明确的:对于H的所有线性化走向L,存在L经历的一个一致的全局状态S,而且该S使得(s)为True。分布式调试方法分布式调试观察一致的全局状态进程的状态信息附有向量时钟值全局状态的一致性判断——CGS条件设S=(s1,s2,…,sN)是从监控器进程接收到的状态信息中得出的全局状态,V(si)是从pi接收到的状态si的向量时间戳,则S是一致的全局状态当且仅当:
V(si)[i]>=V(sj)[i]
(i,j=1,2,…,N)
即若一个进程的状态依赖于另一个进程的状态,则全局状态也包含了它所以来的状态。分布式调试观察一致的全局状态分布式调试全局状态示例m1m2p1p2物理时间
CutC1(1,0)(2,0)(4,3)(2,1)(2,2)(2,3)(3,0)x1=1x1=100x1=105x2=100x2=95x2=90x1=90CutC2分布式调试全局状态示例m1m2p1p2物理时间CutC1Sij=在进程1发生事件i以及在进程2发生事件j之后的全局状态S00S10S20S21S30S31S32S22S23S33S43层次01234567分布式调试一致全局状态网格Sij=在进程1发生事件i以及在进程2S00S10S20S2分布式调试判定可能的
从初始状态考试,遍历可达状态的网格。L:=0;States:={(s01,s02,…,s0N)};while(对所有可能的S∈States,(s)=False)L:=L+1;Reachable:={S’:H中从一些S∈States可到达的状态∧level(S’)=L};States:=Reachable;endwhile输出“可能的”;分布式调试判定可能的
?
–层次012345FFFFTFF=((s)=False);T=((s)=True)分布式调试值判定示例
在第5层的状态为True=》明确的在第5层的状态为False=》可能的?–层次012345FFFFTFF=((s)=分布式调试异步系统
开销很大,需要作O(kN)次比较。
同步系统物理时钟:|Ci(t)-Cj(t)|<D,即在范围D内同步。同步系统中的算法改进消息中同时携带物理时间戳和向量时间戳测试条件
V(si)[i]≧V(si)[i],且si和sj能在同一时间发生分布式调试异步系统第3章时间和全局状态简介
时钟、事件和进程状态物理时钟同步逻辑时间和逻辑时钟全局状态分布式调试小结第3章时间和全局状态简介小结时钟偏移和时钟漂移物理时钟同步Cristian方法Berkeley方法网络时间协议逻辑时间发生在先关系Lamport时间戳向量时钟小结时钟偏移和时钟漂移小结全局状态一致割集,一致全局状态“快照”算法分布式调试状态收集判定可能的和明确的小结全局状态作业11.411.14Databases-R-UsrunsaclusterofthreeserversA,B,andC,whichcommunicatewithoneanother.Youaretoldthatthecurrentclockskewsbetweenserverpairsareasfollows:A-B:3ms;B-C:1ms;C-A:-4ms.Further,youaretoldthatcorrectnessinthedatabaserequiresthatnotwoserverclocksbemorethan30msapart.Ifeachoftheservershasanabsoluteclockdriftof2msperminute,howmanyminimum(i.e.,worst-case)minutescantheclustergowithoutrunningasynchronizationalgorithmamongitsservers?作业11.4作业a,b,andcareeventsandnotwoeventsbelongtothesameprocess.Proveordisprove(givecounter-example)thefollowing: (a)aisconcurrentwithbandbisbeforecimpliesthataisbeforec. (b)aisconcurrentwithbandbisconcurrentwithcimpliesthataisconcurrentwithc.作业a,b,andcareeventsandn第3章时间和全局状态第3章时间和全局状态第3章时间和全局状态简介
时钟、事件和进程状态同步物理时钟逻辑时间和逻辑时钟全局状态分布式调试小结第3章时间和全局状态简介简介如何计时?如何同步时钟?没有物理时钟能否确定事件的顺序?简介如何计时?简介时间的重要性需要精确度量——审计电子商务某些算法依赖于时钟同步——数据一致性维护、make计算全局状态——事件排序时间的复杂性节点具有独立的物理时钟精确同步物理时钟非常困难全局状态的捕获依赖于逻辑时钟逻辑时钟与物理时钟无必然联系简介时间的重要性时钟、事件和进程状态时间分类天文学时间
-太阳日:两次连续的太阳中天之间的时间间隔
-太阳秒:1/86400个太阳日国际原子时间(TAI)-基于铯原子跳跃周期
-秒:9192631770次跳跃周期通用协调时间(UTC)-基于原子时间
-采用润秒,与天文时间保持一致时钟、事件和进程状态时间分类第3章时间和全局状态简介
时钟、事件和进程状态同步物理时钟逻辑时间和逻辑时钟全局状态分布式调试小结第3章时间和全局状态简介时钟、事件和进程状态假设每个进程在单处理器上执行处理器之间不共享内存进程之间通过消息进行通信进程状态所有变量的值相关的本地操作系统环境中的对象的值事件定义:一个通信动作或进程状态转换动作进程历史:时钟、事件和进程状态假设时钟、事件和进程状态计算机时钟晶体具有固定震荡频率硬件时钟:软件时钟:时钟漂移频率不同时钟频率随温度变化而有所差别时钟偏移不可避免Infact,theeffectofclockskewisthemainreasonwhyclockoffsetskeepdriftingaway.Novelclockphaseoffset……IEEETransactionsonCommnunications,Vol55,No.4,2007.4时钟、事件和进程状态计算机时钟第3章时间和全局状态简介
时钟、事件和进程状态同步物理时钟逻辑时间和逻辑时钟全局状态分布式调试小结第3章时间和全局状态简介同步物理时钟外部同步采用权威的外部时间源时钟Ci在范围D内是准确的内部同步无外部权威时间源,系统内时钟同步时钟Ci在范围D内是准确的关系
若P在范围D内外部同步,则P在范围2D内内部同步同步物理时钟外部同步同步物理时钟Cristian方法(适用于只有一台机器有WWV接收器)应用条件
-存在时间服务器,可与外部时间源同步
-消息往返时间与系统所要求的精度相比足够短协议
-进程p根据消息mr,mt计算消息往返时间Tround-根据服务器在mt中放置的时间t设置时钟为:t+Tround/2mtp时间服务器Smr同步物理时钟Cristian方法(适用于只有一台机器有WWV同步物理时钟Berkeley算法(没有WWV接收器)主机周期轮询从属机时间主机通过消息往返时间估算从属机的时间
与Cristian方法类似主机计算容错平均值主机发送每个从属机的调整量同步物理时钟Berkeley算法(没有WWV接收器)同步物理时钟网络时间协议(NTP)设计目标
-可外部同步使得跨Internet的用户能精确地与UTC同步
-高可靠性可处理连接丢失,采用冗余服务器、路径等
-扩展性好大量用户可经常同步,以抵消漂移率的影响
-安全性强防止恶意或偶然的干扰同步物理时钟网络时间协议(NTP)同步物理时钟协议结构
-层次结构
-主服务器直接与外部UTC同步
-同步子网可重新配置123233
同步子网结构示例同步物理时钟协议结构123233第3章时间和全局状态简介
时钟、事件和进程状态物理时钟同步逻辑时间和逻辑时钟全局状态分布式调试小结第3章时间和全局状态简介逻辑时间和逻辑时钟逻辑时间的引入分布式系统中的物理时钟无法完美同步
-消息传输延时的不确定性事件排序是众多分布式算法的基石
-互斥算法
-死锁检测算法缺乏全局时钟
-后发生的事件有可能赋予较早的时间标记逻辑时间和逻辑时钟逻辑时间的引入逻辑时间和逻辑时钟逻辑时钟众多应用只要求所有节点具有相同时间,该时间不一定与实际时间相同Lamport(1978)指出:不进行交互的两个进程之间不需要时钟同步对于不需要交互的两个进程而言,即使没有时钟同步,也无法察觉,更不会产生问题。所有的进程需要在时间的发生顺序上达成一致
如make程序逻辑时间和逻辑时钟逻辑时钟逻辑时间和逻辑时钟事件排序“系统i中的事件a发生在系统j中的事件b之前”是不准确的
-事件发生和观察之间存在时延
-不同系统中的时钟存在偏差时间戳(Lamport1978)
-用于分布式系统中的事件排序
-与物理时钟无关
-实用高效,应用广泛逻辑时间和逻辑时钟事件排序逻辑时间和逻辑时钟两个基本事实
-同一进程中的两个事件存在关系“i”-任一消息的发送事件发生在该消息的接收事件之前“发生在先(happens-before)”关系定义
-若存在进程pi满足eie’,则ee’-对于任一消息m,存在send(m)recv(m)-若事件满足ee’
和e’e’’
,则ee’’并发关系定义
XY与YX均不成立,则称事件X、Y是并发的,表示为X||Y逻辑时间和逻辑时钟两个基本事实逻辑时间和逻辑时钟事件排序示例
-bc,cd和df成立
-bf与ef均成立
-事件b和e无法比较,即b||ep1p2p3abcdefm1m2物理时间逻辑时间和逻辑时钟事件排序示例p1p2p3abcdefm1m逻辑时间和逻辑时钟Lamport时钟机制
-进程维护一个单调递增的软件计数器,充当逻辑时钟
-用逻辑时钟为事件添加时间戳
-按事件的时间戳大小为时间排序逻辑时钟修改规则
-进程pi发出事件前,逻辑时钟Li:=Li+1-进程pi发送消息m时,在m中添加时间戳t=Li-进程pj在接收(m,t)时,更新Li:=max(Lj,t)+1,给s事件recv(m)添加时间戳后发送给应用程序逻辑时间和逻辑时钟Lamport时钟abcdefm1m2213451p1p2p3物理时间逻辑时间和逻辑时钟Lamport时钟示例(一)
abL(a)<L(b)
L(e)<L(b)beabcdefm1m2213451p1p2p3物理逻辑时间和逻逻辑时间和逻辑时钟(a)三个不同速率的时钟(b)Lamport算法校正时钟Lamport时钟示例(二)逻辑时间和逻辑时钟(a)三个不同速逻辑时间和逻辑时钟Lamport时钟练习假设系统中只存在消息发送和接收事件,如下图所示,请给出事件a-g的逻辑时钟。逻辑时钟
0逻辑时间和逻辑时钟Lamport时钟练习逻辑时钟0逻辑时间和逻辑时钟Lamport时钟练习答案逻辑时钟:0144328657579逻辑时间和逻辑时钟Lamport时钟练习答案逻辑时钟:014逻辑时间和逻辑时钟不同进程产生的消息可能具有相同数值的Lamport时间戳物理时间逻辑时间和逻辑时钟不同进程产生的消息可能具有相同数值的Lam逻辑时间和逻辑时钟基于Lamport时间戳的事件排序---总结算法不依赖于事件发生的真实时间与真实物理时间中事件的发生顺序可能不一致
基于Lamport时间戳的排序中,在时刻(2,1)发生的事件发生比在时刻(2,2)发生的事件要早,然而在真实物理时间中可能恰好相反。逻辑时间和逻辑时钟基于Lamport时间戳的事件排序---总逻辑时间和逻辑时钟Lamport时钟不具备性质:若L(A)<L(B)则AB没有捕获事件的因果关系
节点B发布一篇文章并传送给节点A和C。节点A就此发表评论并传送给节点B和C。araarr我们无法准确确定r的先后关系:C(a)<C(r)ara是节点A发布的文章r是节点B对文章a的评论
逻辑时间和逻辑时钟Lamport时钟不具备性质:若L(A)全序逻辑时钟引入进程标示符创建事件的全序关系若e、e’分别为进程pi、pj中发生的事件,则其全局逻辑时间戳分别为(Ti,i)、(Tj,j)。ee’Ti<Tj||Ti=Tj&&i<j系统中各个事件Lamport时间戳均不相同全序逻辑时钟引入进程标示符创建事件的全序关系向量时钟克服Lamport时钟的缺点:若L(e)<L(e’)不能推出则ee’。每个进程维护它自己的向量时钟ViVC1:初始情况下,Vi[j]=0,i,j=1,2,...N.VC2:在pi给事件加时间戳之前,设置Vi[i]=Vi[i]+1。VC3:pi在它发送的每个消息中包括t=Vi。VC4:当pi接收到消息中的时间戳t时,设置Vi[j]=max(Vi[j],t[j]),j=1,2,...,N。向量时钟克服Lamport时钟的缺点:若L(e)<L(e向量时钟向量时钟
Host1Host2Host3Host40,0,0,0VectorlogicalclockMessage(vectortimestamp)PhysicalTime0,0,0,00,0,0,00,0,0,0(1,0,0,0)1,0,0,01,1,0,02,0,0,02,0,1,0(2,0,0,0)2,0,2,02,0,2,1(2,0,2,0)1,2,0,02,2,3,0(1,2,0,0)4,0,2,24,2,4,2(4,0,2,2)2,0,2,23,0,2,2(2,0,2,2)2,0,2,34,2,5,3(2,0,2,3)n,m,p,q向量时钟Host1Host2Host3Host40,0,第3章时间和全局状态简介
时钟、事件和进程状态同步物理时钟逻辑时间和逻辑时钟全局状态分布式调试小结第3章时间和全局状态简介全局状态观察全局状态的必要性分布式无用单元的收集
-基于对象的引用计数
-必须考虑信道和进程的状态分布式死锁检测
观察系统中的“等待”关系图中是否存在循环p1消息无用对象对象引用p2等待等待p1p2全局状态观察全局状态的必要性p1消息无用对象p2等待等待p1分布式终止检测与进程的状态有关——“主动”或“被动”分布式调试需要收集同一时刻系统中分布式变量的数值全局状态激活被动的p1p2被动的分布式终止检测全局状态激活被动的p1p2被动的全局状态全局状态和一致割集观察进程集的状态——全局状态非常困难根源:缺乏全局时间进程的历史
hi=<ei0,ei1,ei2
…>进程历史的有限前缀
hik=<ei0,ei1,…,eik>全局历史——单个进程历史的并集
H=h1
h2
…
hN全局状态全局状态和一致割集全局状态进程状态
sik:进程pi在第k个事件发生之前的状态全局状态——单个进程状态的集合
S=(s1,s2,…sN)割集——系统全局历史的子集
C=<h1c1,h2c2…h3c3>割集的一致性割集C是一致的:对于所有事件eC,f
e
f
C全局状态进程状态全局状态割集示例m1m2p1p2物理时间e10一致的割集不一致的割集e11e12e13e20e21e22全局状态割集示例m1m2p1p2物理时间e10一致的割集不一全局状态一致的全局状态——对应于一致割集的状态
S0
S1
S2
…走向(run)-全局历史中所有事件的全序
-与每个本地历史顺序一致
-不是所有的走向都经历一致的全局状态线性化走向
-所有的线性化走向只经历一致的全局状态
-若存在一个经过S和S’的线性化走向,则状态S’是从S可达全局状态一致的全局状态——对应于一致割集的状态全局状态Chandy和Lamport的“快照”算法目的捕获一致的全局状态假设
-进程和通道均不会出现故障
-单向通道,提供FIFO顺序的消息传递
-进程之间存在全连通关系
-任一进程可在任一时间开始全局拍照
-拍照时,进程可继续执行,并发送和接收消息全局状态Chandy和Lamport的“快照”算法全局状态算法基本思想
-接入通道+外出通道
-进程状态+通道状态
-标记消息
标记接收规则:强制进程在记录下自己的状态之后但在它们发送其他消息前发送一个标记。
标记发送规则:强制没有记录状态的进程去记录状态全局状态算法基本思想全局状态算法伪码(一)进程pi的标记接收规则
pi接收通道c上的标记消息:
if(pi还没有记录它的状态)pi记录它的进程状态;将c的状态记成空集;开始记录从其他接入通道上到达的消息
elsepi把c的状态记录到从保留它的状态以来它在c上接收到的消息集合中
endif全局状态算法伪码(一)全局状态算法伪码(二)
进程pi的标记发送规则在pi记录了它的状态之后,对每个外出通道c:(在pi从c上发送任何其他消息前)pi在c上发送一个消息标记全局状态算法伪码(二)全局状态算法示例
-两个进程p1、p2进行交易,每件10$
-初始状态进程p2已经收到5件商品的定单,它将马上分发给p1
p1p2c2c1帐户窗口部件$1000(none)帐户窗口部件$502000全局状态算法示例p1p2c2c1帐户窗口$1000(none全局状态最后状态:P1:<$1000,0>;p2:<$50,1995>;
c1:<(fivewidgets)>;c2:<>p1(空)<$1000,0>1.全局状态S0p1p1p1c2c1(空)2.全局状态S1<$900,0><$900,0><$900,5><$50,1995><$50,1995><$50,2000><$50,2000>3.全局状态S24.全局状态S3p2p2p2p2c2c2c2c1c1c1(定单10,$100),M(空)(空)(定单10,$100),M(五个窗口部件)M=标记信息)(定单10,$100)全局状态最后状态:P1:<$1000,0>;p2:全局状态算法终止
-假设:一个进程已经收到了一个标记信息,在有限的时间内记录了它的状态,并在有限的时间里通过每个外出通道发送了标记信息.
-若存在一条从进程pi到进程pj的信道和进程的路径,那么pi记录它的状态之后的有限时间内pj将记录它的状态.
-进程和通道图是强连接的,因此在一些进程记录它的状态之后的有限时间内,所有进程将记录它们的状态和节入通道的状态。全局状态算法终止全局状态算法一致性
ei、ej分别为进程pi、pj中的事件,且eiej则我们有:若ejCei
C,其中C为一个割集。即如果ej在pj记录它的状态之前发生,那么ei必须在pi记录它的状态之前发生.证明思路如下:
-i=j时,显然成立
-i≠j时,反证法全局状态算法一致性第3章时间和全局状态简介时钟、事件和进程状态物理时钟同步逻辑时间和逻辑时钟全局状态分布式调试小结第3章时间和全局状态简介分布式调试目的对系统实际执行中的暂态作出判断例子安全条件检查
xi为进程pi的变量(i=1,2,…),安全条件为|xi-xj|≤控制系统所有阀门在某些时间是否全部处于开启状态分布式调试目的分布式调试方法监控器进程收集进程状态信息全局状态谓词的判断
-可能的:存在一个一致的全局状态S,H的一个线性化走向经历了这个全局状态S,而且该S使得(s)为True。
-明确的:对于H的所有线性化走向L,存在L经历的一个一致的全局状态S,而且该S使得(s)为True。分布式调试方法分布式调试观察一致的全局状态进程的状态信息附有向量时钟值全局状态的一致性判断——CGS条件设S=(s1,s2,…,sN)是从监控器进程接收到的状态信息中得出的全局状态,V(si)是从
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年发酵合成控制系统合作协议书
- 企业用酒合同范例
- 厂区用地拆除合同范本
- 手写的借款合同范本
- 化粪池改造工程合同范本
- 县城酒吧转让合同范例
- 吊柜出售转让合同范本
- 瓦片劳务合同范本
- 树木移植合同范本
- 义齿公司员工合同范本
- 高一英语完形填空专项训练100(附答案)及解析
- 机房基础设施运行维护管理标准规范
- 老年心房颤动诊治中国专家共识(2024)解读
- 部编版八年级上册历史期中复习重点总结
- 2024年扬州市职业大学单招职业适应性测试题库1套
- 消防安全技术综合能力要点概述
- DL-T 5148-2021水工建筑物水泥灌浆施工技术条件-PDF解密
- 道路施工安全隐患及防范措施
- 新生儿鱼鳞病个案护理
- 软包装工艺流程
- 生物质燃料的资源开发与利用
评论
0/150
提交评论