第三章分布式系统的同步精品PPT课件

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

3:00 3:00
3:00 0
3:00 +5
3:00
3:00 +25
-10 -20
+15
3:25
2:50
时间守护进程询问其它 机器的时间值
3:25
2:50
机器应答
3:05
3:05
时间守护进程通知每个 机器如何调整时间
3.1 时钟同步
3.1.3 时钟同步算法
✓ 平均值算法
以相当快的速度连续发送或接收两条消息,它必须在这中间至少嘀 嗒一下。
◘ 附加条件:两个事件不会精确的同时发生。如果进程1和进程 2同时发生了2个事件,发生时刻都是40,则前者记为40.1,后者为 40.2。
✓ lamport算法遵循的规则:
◘ 若在同一进程中a发生在b之前,则C(a)<C(b); ◘ 若a和b分别代表发送消息和接收消息,则C(a)<C(b); ◘ 对所有的a和b,C(a)≠C(b)。
0 6A 12 18 24 30 36 42 48 D 70 76
进程0
0 8 16 24 B 32 40 48 C 61 69 77 85
进程1
0 10 20 30 40 50 60 70 80 90 100
进程2
3.1 时钟同步
3.1.1 逻辑时钟
✓ Lamport算法补充说明 ◘ 在每两个事件之间,时钟必须至少滴答一下。如果一个进程
如果考虑服务器中断处理的时间I,那么传输的时间间隔为T1-T0I,单向传输时间为它的一半。
3.1 时钟同步
3.1.3 时钟同步算法
✓ Berkeley算法

时间守护进程(时间服务器)定期地询问每台机器的时间。然
后基于这些回答计算出平均值并告诉所有的机器将它们的时钟拨 快或拨慢到一个新的值。(适合于没有WWV接收器的系统)
适合于只有一台机器上有WWV接收器 (时间服务器),其它所有机器与 它同步的系统。
发送机器
T0
请求
时间服务器
时间
I,中断处理时 间
T1
CUTC
T0和T1都是由相同时钟测量的
说明:每台机器以小于或等于δ/2ρ秒的周期定期地向时间服务器发送 消息询问当前的时间,时间服务器接到消息后就尽快回答含有当前时 间CUTC值的消息。
在事件发生的顺序上要完全一致。 ◘ 只关心事件发生的顺序,而不关心是否与真实时间接近。(逻辑时钟)
3.1 时钟同步
3.1.1 逻辑时钟
✓ 先发生关系
◘ a发生在b之前,记为:a→b。存在两种情况: ▪ 如果a和b是同一进程中两个事件,且a发生在b之前,则a→b为真; ▪ 如果a是一个进程发送消息的事件,b为另一个进程接收这一消息的事 件,则a→b为真;
列性质:若a→b,则c(a)<c(b)。此外,时钟时间值C必须递增,不
能倒退。
0
0
0
6A8
10
12
例子:三个进程,每个均
18
Leabharlann Baidu16
20
24 B 30
有自己的时钟,每个
24
时钟速率不同。
30 36
32
40
40
50
48 C 60
42
56
70
48 D 64
80
54
72
90
60
80
100
进程0 进程1 进程2
1-ρ≤dC/dt≤1+ρ
若保证两个时钟之间的差不超过δ,时钟至少在每δ/2ρ秒内再同步 一次。(ρ为最大漂移速度)
稍快时钟
dC/dt>1 dC/dt=1
最佳时钟
dC/dt<1
稍慢时钟
时钟时间C
UTC,t
图3-5 不是所有的时钟都按正确的速率中断
3.1 时钟同步
3.1.3 时钟同步算法
✓ Cristian’s算法
第3章 分布式系统的同步
互斥 选举算法 原子事务 分布式系统中的死锁
3.1 时钟同步
分布式算法的性质
• 相关信息分散在多台机器上 • 进程决策仅仅依赖于本地信息 • 系统中单点故障应避免 • 没有公用时钟和其他精确的全局时间资源存在
进行编译的 计算机
进行编译的 计算机
2144 2142
2145
创建
3.1 时钟同步
3.1.2 物理时钟
中天点:太阳到 达一天的最高 点
地球轨道
在n天以后的中天 点地球已经旋转 了将近360度
地球第0天到 达中天
地球第n天到
达中天
到银河系的距 离
到银河系的距 离
物理时钟:UTC (统一协调时间),它是所有现代人使用的时间。
3.1 时钟同步
3.1.3 时钟同步算法
3.1 时钟同步
3.1.1 逻辑时钟
✓ Lamport算法 Lamport解决方案直接使用先发生关系,每条消息携带发送者的时 钟以指出其发送的时刻,当消息到达时,接收者时钟若比消息发送 时钟小,就立即将自己的时钟调到比发送时间大1或更多的值。
Lamport解决方案:
调整C到达的时间为5 6-61,D到达的时间 为54-70
output.o 2143
时间
2146
2147
2144
创建
output.c
2145
根据本地时 钟的时间
根据本地时 钟的时间
当每台机器都有自己的时钟,一个发生于另一个事件之后的事 件可能会标记一个比另一个事件更早的时间
3.1 时钟同步
3.1.1 逻辑时钟
✓ 计算机计时方法
◘ 计算机上的计时器通常由一个精确的石英晶体制成,它以一定的频率震 荡。
◘ 每次震荡计数器减1,当计数器减为0时,产生一次中断(时钟点)。 ◘ 在多CPU系统中,不同计算机上的晶体以不同的频率震荡,导致时钟不
同步。(时钟偏移)
✓ 问题:同步所有时钟产生一个单一的、无二义的时间标准可能吗? ——Lamport:时钟同步是可能的!!!
◘ 如果两个进程无相互作用,它们的时钟无需同步。 ◘ 时钟同步不需要绝对同步,不需所有进程在时间上完全一致,而是它们
3.1 时钟同步
3.1.3 时钟同步算法
✓ Cristian’s算法
问题1:发送者如何根据时间服务器的返回值调整时间? 由于时间不能倒退,因此一种方法是根据时钟快慢,中断服务程 序调整(增大或减小)每次中断所加的时间值。
问题2:如何处理从时间服务器发送的应答到发送者存在的延迟? 精确记录从向时间服务器发送请求的起始时间于时间T0和接收到应 答的结束时间T1。 当前服务器时间估计值=CUTC+(T1-T0)/2
◘ 性质: ▪ 先发生关系具有传递性:若a→b且 b→c,则a→c。
✓ 并发事件
如果两个事件x和y,出现在不同的进程中,但并不交换消息,则x→y为
假, y→x也为假。则事件x和y称为并发事件。
3.1 时钟同步
3.1.1 逻辑时钟
✓ Lamport算法
对于对每一事件a,给它分配一个时间值C(a)。这些时间值具有下
相关文档
最新文档