并发事件 如果事件x和y发生在不同的进程中,且这 两进程间不交换信息 那么x→y和y→x都不成立。这两个事件就 称为并发事件 并发意味着两个事件发生时,无法确定哪个 事件先发生,或者说不需要考虑此事
并发事件: • 如果事件x和y发生在不同的进程中,且这 两进程间不交换信息 那么x y和y x都不成立。这两个事件就 称为并发事件 • 并发意味着两个事件发生时,无法确定哪个 事件先发生,或者说不需要考虑此事
Lamport算法(1): 时钟时间C必须向前(不断增加),不能后 退(减小) 对时间的更新,只能是在时钟上加一个正数, 不能减正数
• 时钟时间C必须向前(不断增加),不能后 退(减小) • 对时间的更新,只能是在时钟上加一个正数, 不能减正数 Lamport算法(1):
006 A 12 16 16 20 18 B 24 32 004 18 B 24 32 40 30 0640 446A2 48 6 70 m09 77 90 8 100 个进程,有各自的时钟 Lamport算法
Lamport算法(2): 例子说明(1) 三个进程运行在不同的有自己时钟的机器上, 每个时钟按自己的速度运行 可以看到,进程0中时钟有6次嘀嗒时,进 程1已经有了8次,而进程2已经有了10次
例子说明(1) • 三个进程运行在不同的有自己时钟的机器上, 每个时钟按自己的速度运行 • 可以看到,进程0中时钟有6次嘀嗒时,进 程1已经有了8次,而进程2已经有了10次 Lamport算法(2):
Lamport算法(3): 例子说明(2) 设,计时器每秒生成60次中断,每次中断 称为一个时钟嘀嗒 从进程2发送该进程1的消息C,其发送时刻 为60,到达时刻为56 同样,从进程1到进程0的消息D,其发送时 刻为64,到达时刻为54 这显然是不可能的,也是必须避免出现的情 况
• 设,计时器每秒生成60次中断,每次中断 称为一个时钟嘀嗒 • 从进程2发送该进程1的消息C,其发送时刻 为60,到达时刻为56 • 同样,从进程1到进程0的消息D,其发送时 刻为64,到达时刻为54 • 这显然是不可能的,也是必须避免出现的情 况 例子说明(2) Lamport算法(3):