序:在集中式计算机系统中,总是可以确定分别属于两个不同进程的两个事件的发生顺 序,因为在集中式计算机系统中,有单一的公共存储器和物理时钟。然而,在分布计算系 统中,没有公共存储器和物理时钟,很难准确地获得每台机器的准确的时钟值,各机器也 很难做到准确地同步,所以在分布计算系统中使用物理时钟很难给事件一个唯一的排序。 也就是说我们需要另外一种方法来给分布计算系统中的事件进行排序,逻辑时钟可以给 分布计算系统中的事件一个唯一的排序。逻辑时钟的本质是基于 Lamport 定义的“在先发 生关系”(Happen-Before Relationship)"
1. 在先发生关系
可以假定分布计算系统是由一些进程组成的,每个进程包含一系列事件。一个事件 就是一个活动,可以是一个子程序在一台机器上的执行,也可以是一条指令的执行,这由 具体应用决定。假定发送一个报文和接收一个报文都是进程中的事件,用“一>”表示在先 发生关系,则在先发生关系定义如下:
(1)如果 a 和 b 均是同一进程中的两个事件,并且 a在 b 之前出现,则 a→b。
(2)若 a代表“一个进程发送一个报文”这个事件,b 代表“另一个进程接收这个报 文”这个事件,则 a→b。
(3)如果 a→b,且 b→c,则 a→c。
2.标量逻辑时钟和向量逻辑时钟习题
当d的值变化时,即每个标量之间的距离为d的值。注意每个初始的值都应是0+d如A0的初始值为0+1,B0的初始值为0+2