逻辑时钟

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

东南大学1第三章分布式系统同
步基础
东南大学2
本章要点
•时钟
–物理时钟–逻辑时钟
•事件间的关系•状态
东南大学3
物理时钟校准
•从太阳时到原子时
–从测量太阳通过地球上一个固定点的间隔到测量原子振荡周期
•TAI (国际原子时)
–它表示了从1958年1月1日开始铯133原子钟振荡的次数除以9,192,631,770的值
•UTC (Universal Coordinated Time )
–加上leap second 修正的时间,每当TAI 的误差累积到800ms 时,就从TAI 中减去1秒(即跳掉1秒)
•物理时钟的校准
–与UTC 同步或彼此之间同步–报时服务,发送时钟脉冲,GPS
东南大学4
计算机时钟的同步需求
•计算机系统时钟的基本元素是石英振荡器,若干次振荡形成一次时钟中断,若干次(H )中断构成时钟值的一次递增。

•设系统时钟为C ,UTC 时间为t 。

由于时钟芯片存在误差,如果H =60,则每小时时钟应当振荡60×3600=216000次,但实际的振荡次数大约在215998-216002之间。

因此存在一个常量ρ(由芯片制造厂商提供,称为最大漂移率),有1 -ρ≤dC/dt ≤1 + ρ。

如果两个时钟反向漂移(最坏情况),而系统要求它们之间的时钟误差是δ,则它们必须在每δ/2ρ秒之内进行一次重新同步。

东南大学5
Cristian 算法
•有一个时间服务器,提供标准时钟,其它系统通过询问与它同步。

•在δ/2ρ秒的周期内,每个机器向服务器发出校时请求,服务器用C UTC 进行响应,各机器根据响应值重置自己的时钟。

•由于时钟是不可回卷的,对于当前时钟值已经大于C UTC 的机器必须动态调整自己时钟的H 值,减慢时钟推进的速率,逐渐地消化与标准时钟之间的差距。

•由于请求与响应的传输与处理会产生延迟,进而影响时钟的精度。

因此要求询问者要统计它与服务器之间的RTT ,并利用它对得到的时间响应值进行修正。

东南大学6
Berkeley 算法
•时间服务器(time daemon )没有标准时钟,它通过定期地询问各个机器的当前时间并从中求出平均值作为当前的标准时间,然后再广播给各个机器。

当前时钟慢于新标准时间的机器重置自己的时钟;当前时钟快于新标准时间的机器要调整自己的H 值,以消化这个时间误差。

时间服务器的时钟由系统管理员手工校正。

•实现在BSD UNIX 中
东南大学7
Averaging 算法
•定义一个固定的同步间隔R ,每经过R 时刻,所有的机器广播自己的当前时钟。

在经过规定的接收间隔S 之后,所有的机器根据接收到的时钟值计算自己的当前时钟值。

–由于大家都不考虑传输延迟,所以实际得到的时钟值是滞后的,即在R+t 的时刻得到R 时刻的时钟值,并将其作为自己R+t 时刻的时钟值。

•时钟值计算的最简单方法是求平均值。

如果要求更精确,则可以去掉m 个最大值和n 个最小值之后再计算平均值,这可以过滤掉一些病态的时钟值。

东南大学8
逻辑时钟的概念
•逻辑时钟是(松耦合)分布式系统的特性,要求的是系统节点进展之间的相对一致性(同步)。

•只有相关的系统(进程)才需要有逻辑时钟同步,同步的目的是维持事件的顺序性•除时间的基本特性(一维)外,与标准时钟(物理时钟)之间没有通用意义上的明确的关系
东南大学9
逻辑时钟的概念-时标
•逻辑时钟通常用时标(timestamp) 表示,称为Lamport 时标,没有具有物理意义的单位的概念,一般情况下以正整数标识
•时标只能通过节点之间进行消息交换完成
•时标间完全没有物理时钟方面的要求
东南大学10
逻辑时钟的概念-事件
•事件:进程中相对独立的一段程序(代码,语句序列)的一次运行,具有不可分割性和相对独立的语义。

•并发与同步分析的基本单位(不可分割)。

•事件之间不存在包含关系。

•同步点:含有发送或接收动作的事件。

东南大学11
事件间的关系
•分布式系统中事件的顺序或并发关系不易确定,与具体的语义有关。

•一个没有死锁的特定系统,在确定了并发进程和各进程的事件后,任何2个(不同的)事件间要么是“发生在先”关系,要么是“并发”关系。

•具有并发关系的事件可以并发完成,也可以先后完成,没有顺序要求
•具有发生在先关系的事件必须按该关系所规定顺序先后完成
东南大学12
事件间的关系
•发生在先关系→定义为
(非自反的偏序)
–如果a 和b 是同一个进程中的事件且a 在b 之前被执行,则a →b ;
–如果a 是某个进程发送消息的事件,b 是另一个进程接收该消息的事件,则a →b ;–如果a →b 且b →c ,则a →c ;–a →a 对于任何事件a 都不成立。

•如果事件a 和b 之间不存在发生在先关系,则它们是并发的。

在时间和空间构成的2维结构上,由点和有向直线构成的描述并发的进程间事件和发生在先关系的图形。

东南大学28
每个进程都在收到另两个进程的标志。

相关文档
最新文档