分布计算系统的同步机构可以是集中式的,也可以最分布式的,同步实体是措施是这样 一些对象:物理时钟、事件计数器、逻辑时钟,循环令牌和顺序器等。在集中式同站 机构中,每个生产者每次发动一个操作时均要访问该同步实体。集中式同步实体有一个 为所有必须相互同步的进程都知道的名字,任何时候这些进程的任荷一不均吁访问这一 同步实体。执行每不功能如进程调度、数据访问控制等均要经过集中的同步实体进行 控制。
分布式同步机构不存在一个集中的同步实体,执行各种功能时是分散控制的。
集中式同步机构的例子如单个物理时钟,生产者访问它,得到物理时间戳,为其发动 的一序列活动进行排序。这种方法虽然简单,但由于生产者分散在各地,不可能在所有时 刻都能得到时钟显示的当前的精确时间值。也可以使用一个集中的进程进行同步,例如, 在分布式数据库中进行并发控制时有一个进程接收来自发动活动的生产者的请求,由此 进程实现互斥达到同步。集中式同步机构最大的缺点是不可靠,一旦出故障就可能造成 全局不工作;另外,在性能方面也大大下降,因为集中会产生一个瓶颈。
分布式同步机构在可靠性和性能方面优工集中式同步机构,分布式同步机构也有很 多种,主要有多重物理时钟、多重逻辑时钟、循环令牌等
多重物理时钟的目的是在整个系统中获得唯一的物理时间,将系统中发生的所有活 动按照物理时间次序进行全部排序。主要问题是使用的很多时钟必须同步,不断校正它 们的误差。Thomas 在 1976 年首次建议使用时间戳(Timestamp)对分布计算系统中的活动 进行排序。
现实生活中时间的概念是很基本的。我们常常说什么事情在什么时间发生,是对事 件产生的时间次序感兴趣。但在分布计算系统中,有时不可能说明两个事件谁先发生。 人们通常认为,如果事件 A 发生的时间比事件 B 发生的时间早,则说事件 A 在事件B以前 发生,这是按物理时间排序,这时系统中必须有真正的物理时钟。在分布计算系统中要想 在整个系统范围内各个地方,在所有时刻都能精确读得物理时钟的精确时间,这是很困难 的。计算机系统实际上并不像人们那样关心当前的实际物理时钟值,相反,系统关心时间 只是因为它要使用时间来决定事件的相对顺序,所以可以使用逻辑时钟的概念。 Lamport 提出使用多重逻辑时钟对系统的全部活动进行排序,获得广泛应用。