論理クロック

分散システム

                                       電子・情報工学系
                                       新城 靖
                                       <yas@is.tsukuba.ac.jp>

このページは、次の URL にあります。
http://www.hlla.is.tsukuba.ac.jp/~yas/coins/dsys-1997/1998-02-10 /logical-clock.html
あるいは、次のページから手繰っていくこともできます。
http://www.hlla.is.tsukuba.ac.jp/~yas/coins/
http://www.hlla.is.tsukuba.ac.jp/~yas/index-j.html

■論理クロック

◆クロック

コンピュータは、時間を追跡する回路を持っている。 水晶発振とカウンタとラッチ。

タイマ割込み。1秒間に50回〜60回割込みがかかる。 水晶発振か、電源の周波数を使う。 一回の割込みを、clock tick という。

単一のコンピュータでは、水晶でも問題がないが、複数のコンピュータでは、 クロックの進み方(clock skew)が違うので、だんだんずれてくる。

◆論理クロックと物理クロック

論理クロック
内部で一貫性がとれていればいい
物理クロック
実際の時計とおおきくずれていてはいけない

◆Lamportの論理クロック

事前発生(happens-before)。

「a→b」は、「aはbの前に発生する」

「→」は、推移律(transitive law)が成り立つ。

「a→bかつb→cならばa→cである」

平行性がある:「x→y」も、「y→x」も両方とも成り立たないことがある。 xとyが別々のプロセスで発生して、それらの間でメッセージを交換しない時な ど。 どちらが先に起きたかということを言えない(言う必要がない)

◆時間値C(x)

イベント aについて、次のような性質を持つ時間値C(a) を割り当てる。

◆Lamportのアルゴリズム

図(a) 独自のクロックを持つ3つのプロセス
図(a) 独自のクロックを持つ3つのプロセス。進み方が異なる。

図(a) 独自のクロックを持つ3つのプロセス
図(b) Lamportのアルゴリズムによるクロックの修正。

この方法でクロックを修正すると、次の性質が得られる。 casual ordering
[論理クロック] [物理クロック] [相互排除]
↑[もどる] ←[2月3日] ・[2月10日] →[2月17日]
Last updated: 1998/02/10 01:59:27
Yasushi Shinjo / <yas@is.tsukuba.ac.jp>