-时间和全局状态.pptx
《-时间和全局状态.pptx》由会员分享,可在线阅读,更多相关《-时间和全局状态.pptx(62页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第3章 时间和全局状态第第3 3章章 时间和全局状态时间和全局状态n简介简介 n时钟、事件和进程状态时钟、事件和进程状态n同步物理时钟同步物理时钟n逻辑时间和逻辑时钟逻辑时间和逻辑时钟n全局状态全局状态n分布式调试分布式调试n小结小结简介简介n如何计时?n如何同步时钟?n没有物理时钟能否确定事件的顺序?简介简介n时间的重要性时间的重要性n需要精确度量审计电子商务n某些算法依赖于时钟同步数据一致性维护、maken计算全局状态事件排序n时间的复杂性时间的复杂性n节点具有独立的物理时钟n精确同步物理时钟非常困难n全局状态的捕获全局状态的捕获n依赖于逻辑时钟n逻辑时钟与物理时钟无必然联系时钟、事件和进
2、程状态时钟、事件和进程状态n时间分类时间分类n天文学时间天文学时间 -太阳日:两次连续的太阳中天之间的时间间隔 -太阳秒:1/86400个太阳日n国际原子时间国际原子时间(TAI)-基于铯原子跳跃周期 -秒:9 192 631 770次跳跃周期n通用协调时间通用协调时间(UTC)-基于原子时间 -采用润秒,与天文时间保持一致第第3 3章章 时间和全局状态时间和全局状态n简介简介 n时钟、事件和进程状态时钟、事件和进程状态n同步物理时钟同步物理时钟n逻辑时间和逻辑时钟逻辑时间和逻辑时钟n全局状态全局状态n分布式调试分布式调试n小结小结时钟、事件和进程状态时钟、事件和进程状态n假设假设n每个进程在
3、单处理器上执行n处理器之间不共享内存n进程之间通过消息进行通信n进程状态进程状态n所有变量的值n相关的本地操作系统环境中的对象的值n事件事件n定义:一个通信动作或进程状态转换动作n进程历史:时钟、事件和进程状态时钟、事件和进程状态n计算机时钟计算机时钟n晶体具有固定震荡频率n硬件时钟:n软件时钟:n时钟漂移时钟漂移n频率不同n时钟频率随温度变化而有所差别n时钟偏移不可避免时钟偏移不可避免nIn fact,the effect of clock skew is the main reason why clock offsets keep drifting away.Novel clock pha
4、se offsetIEEE Transactions on Commnunications,Vol55,No.4,2007.4第第3 3章章 时间和全局状态时间和全局状态n简介简介 n时钟、事件和进程状态时钟、事件和进程状态n同步物理时钟同步物理时钟n逻辑时间和逻辑时钟逻辑时间和逻辑时钟n全局状态全局状态n分布式调试分布式调试n小结小结同步物理时钟同步物理时钟n外部同步外部同步n采用权威的外部时间源n时钟Ci在范围D内是准确的n内部同步内部同步n无外部权威时间源,系统内时钟同步n时钟Ci在范围D内是准确的n关系关系 若P在范围D内外部同步,则P在范围2D内内部同步同步物理时钟同步物理时钟nCr
5、istian方法方法(适用于只有一台机器有适用于只有一台机器有WWV接收器接收器)n应用条件应用条件-存在时间服务器,可与外部时间源同步 -消息往返时间与系统所要求的精度相比足够短n协议协议-进程p根据消息mr,mt计算消息往返时间Tround -根据服务器在mt中放置的时间t设置时钟为:t+Tround/2mtp时间服务器Smr同步物理时钟同步物理时钟nBerkeley算法(没有算法(没有WWV接收器)接收器)n主机主机周期轮询周期轮询从属机时间从属机时间n主机通过消息往返时间估算从属机的时间主机通过消息往返时间估算从属机的时间与Cristian方法类似n主机计算主机计算容错平均值容错平均值
6、n主机发送每个从属机的主机发送每个从属机的调整量调整量同步物理时钟同步物理时钟n网络时间协议网络时间协议(NTP)n设计目标设计目标 -可外部同步 使得跨Internet的用户能精确地与UTC同步 -高可靠性 可处理连接丢失,采用冗余服务器、路径等 -扩展性好 大量用户可经常同步,以抵消漂移率的影响 -安全性强 防止恶意或偶然的干扰同步物理时钟同步物理时钟n协议结构协议结构 -层次结构 -主服务器直接与外部UTC同步 -同步子网可重新配置123233 同步子网结构示例第第3 3章章 时间和全局状态时间和全局状态n简介简介 n时钟、事件和进程状态时钟、事件和进程状态n物理时钟同步物理时钟同步n逻
7、辑时间和逻辑时钟逻辑时间和逻辑时钟n全局状态全局状态n分布式调试分布式调试n小结小结逻辑时间和逻辑时钟逻辑时间和逻辑时钟n逻辑时间的引入逻辑时间的引入n分布式系统中的物理时钟无法完美同步分布式系统中的物理时钟无法完美同步 -消息传输延时的不确定性n事件排序是众多分布式算法的基石事件排序是众多分布式算法的基石 -互斥算法 -死锁检测算法n缺乏全局时钟缺乏全局时钟 -后发生的事件有可能赋予较早的时间标记逻辑时间和逻辑时钟逻辑时间和逻辑时钟n逻辑时钟逻辑时钟n众多应用只要求所有节点具有众多应用只要求所有节点具有相同时间相同时间,该时间,该时间不一不一定与实际时间相同定与实际时间相同nLamport(
8、1978)指出:不进行交互的两个进程之间不需指出:不进行交互的两个进程之间不需要时钟同步要时钟同步对于不需要交互的两个进程而言,即使没有时钟同步,也无法察觉,更不会产生问题。n所有的进程需要在时间的所有的进程需要在时间的发生顺序发生顺序上上达成一致达成一致 如make程序逻辑时间和逻辑时钟逻辑时间和逻辑时钟n事件排序事件排序n“系统系统i中的事件中的事件a发生在系统发生在系统j中的事件中的事件b之前之前”是不是不准确的准确的 -事件发生和观察之间存在时延 -不同系统中的时钟存在偏差n时间戳时间戳(Lamport 1978)-用于分布式系统中的事件排序 -与物理时钟无关 -实用高效,应用广泛逻辑
9、时间和逻辑时钟逻辑时间和逻辑时钟n两个基本事实两个基本事实 -同一进程中的两个事件存在关系“i”-任一消息的发送事件发生在该消息的接收事件之前n“发生在先发生在先(happens-before)”关系定义关系定义 -若存在进程pi满足eie,则ee -对于任一消息m,存在send(m)recv(m)-若事件满足ee 和ee,则een并发关系定义并发关系定义 XY 与 YX均不成立,则称事件X、Y是并发的,表示为X|Y逻辑时间和逻辑时钟逻辑时间和逻辑时钟n事件排序示例事件排序示例 -bc,cd和d f成立 -bf与ef均成立 -事件b和e无法比较,即b|ep1p2p3abcdefm1m2物理物理
10、时间时间逻辑时间和逻辑时钟逻辑时间和逻辑时钟nLamport时钟时钟n机制机制 -进程维护一个单调递增的软件计数器,充当逻辑时钟 -用逻辑时钟为事件添加时间戳 -按事件的时间戳大小为时间排序n逻辑时钟修改规则逻辑时钟修改规则 -进程pi发出事件前,逻辑时钟Li:=Li+1 -进程pi发送消息m时,在m中添加时间戳t=Li -进程pj在接收(m,t)时,更新Li:=max(Lj,t)+1,给s事件recv(m)添加时间戳后发送给应用程序abcdefm1m2213451p1p2p3物理时间逻辑时间和逻辑时钟逻辑时间和逻辑时钟nLamport时钟示例时钟示例(一一)ab L(a)L(b)L(e)L(
11、b)b e逻辑时间和逻辑时钟逻辑时间和逻辑时钟 (a)三个不同速率的时钟三个不同速率的时钟 (b)Lamport算法校正时钟算法校正时钟n Lamport时钟示例时钟示例(二二)逻辑时间和逻辑时钟逻辑时间和逻辑时钟nLamport时钟练习时钟练习假设系统中只存在消息发送和接收事件,如下图所示,请给出事件a-g的逻辑时钟。逻辑时钟 0逻辑时间和逻辑时钟逻辑时间和逻辑时钟nLamport时钟练习时钟练习答案答案逻辑时钟:0144328657579逻辑时间和逻辑时钟逻辑时间和逻辑时钟n不同不同进程产生的消息可能具有进程产生的消息可能具有相同数值相同数值的的Lamport时间戳时间戳物理物理时间时间逻
12、辑时间和逻辑时钟逻辑时间和逻辑时钟n基于基于Lamport时间戳的事件排序时间戳的事件排序-总结总结n算法不依赖于事件发生的真实时间算法不依赖于事件发生的真实时间n与真实物理时间中事件的发生顺序可能不一致与真实物理时间中事件的发生顺序可能不一致基于基于Lamport时间戳的排序中,在时刻时间戳的排序中,在时刻(2,1)发生的事件发生比在时发生的事件发生比在时刻刻(2,2)发生的事件要早,然而在真实物理时间中可能恰好相反。发生的事件要早,然而在真实物理时间中可能恰好相反。逻辑时间和逻辑时钟逻辑时间和逻辑时钟nLamport时钟不具备性质:若时钟不具备性质:若L(A)L(B)则则ABn没有捕获事件
13、的因果关系没有捕获事件的因果关系节点B发布一篇文章并传送给节点A和C。节点A就此发表评论并传送给节点B和C。araarr我们无法准确确定我们无法准确确定r的先后关系:的先后关系:C(a)C(r)a ra 是节点是节点A发布的文章发布的文章r 是节点是节点B对文章对文章a的评论的评论 全序逻辑时钟全序逻辑时钟n引入进程标示符创建事件的全序关系引入进程标示符创建事件的全序关系n若若e、e分别为进程分别为进程pi、pj中发生的事件,则其全局中发生的事件,则其全局逻辑时间戳分别为逻辑时间戳分别为(Ti,i)、(Tj,j)。nee TiTj|Ti=Tj&ijn系统中各个事件系统中各个事件Lamport时
14、间戳均不相同时间戳均不相同向量时钟向量时钟n克服Lamport时钟的缺点:若L(e)L(e)不能推出则ee。n每个进程维护它自己的向量时钟VinVC1:初始情况下,Vij=0,i,j=1,2,.N.nVC2:在pi给事件加时间戳之前,设置Vii=Vii+1。nVC3:pi在它发送的每个消息中包括tVi。nVC4:当pi接收到消息中的时间戳t时,设置Vij=max(Vij,tj),j=1,2,.,N。向量时钟向量时钟 Host 1Host 2Host 3Host 40,0,0,0Vector logical clockMessage(vector timestamp)Physical Time0
15、,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向量时钟向量时钟第第3 3章章 时间和全局状态时间和全局状态n简介简介 n时钟、事件和进程状态时钟、事件和进程状态n同步物理时钟同步物理时钟n逻辑时间和逻辑时钟逻辑时间和逻辑时钟n全局状态全局状态n分布式调试分布式调试n小结
16、小结全局状态全局状态n观察全局状态的必要性观察全局状态的必要性n分布式无用单元的收集分布式无用单元的收集 -基于对象的引用计数 -必须考虑信道和进程的状态n分布式死锁检测分布式死锁检测 观察系统中的“等待”关系图中是否存在循环p1消息无用对象对象引用p2等待等待p1p2n分布式终止检测分布式终止检测 与进程的状态有关“主动”或“被动”n分布式调试分布式调试 需要收集同一时刻系统中分布式变量的数值全局状态全局状态激活被动的p1p2被动的全局状态全局状态n全局状态和一致割集全局状态和一致割集n观察进程集的状态观察进程集的状态全局状态非常困难全局状态非常困难根源:缺乏全局时间n进程的历史进程的历史h
17、i=n进程历史的有限前缀进程历史的有限前缀hi k=n全局历史全局历史单个进程历史的并集单个进程历史的并集H=h1 h2 hN全局状态全局状态n进程状态进程状态 sik:进程pi在第k个事件发生之前的状态n全局状态全局状态单个进程状态的集合单个进程状态的集合S=(s1,s2,sN)n割集割集系统全局历史的子集系统全局历史的子集C=n割集的一致性割集的一致性割集C是一致的:对于所有事件eC,f e f C全局状态全局状态n割集示例割集示例m1m2p1p2物理时间物理时间e10一致的割集不一致的割集e11e12e13e20e21e22全局状态全局状态n一致的全局状态一致的全局状态对应于一致割集的状
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 时间 全局 状态
限制150内