0

こんにちは、分散システムの論理時計についてお聞きしたいと思います。ランポート アルゴリズムは、プロセス Pi でイベント a がメッセージを送信し、プロセス Pj でイベント b がそのメッセージを受信した場合、イベント a が b の前に発生したと定義できると定義します。プロセス Pj がイベント b でメッセージを受信する前に、イベント c が Pj で発生し (したがって c は b の前に発生)、プロセス Pi にメッセージを送信し、プロセス Pi がイベント a の後のイベント d でメッセージを受信したとします。 、および a は、d の前に発生しました。

私の質問は、イベント a (プロセス Pi で発生した最初のイベント) とイベント c (プロセス Pj で発生した最初のイベント) の関係を定義する方法です。プロセス Pi と Pj の両方がイベント a と c の順序で一致するようにするにはどうすればよいですか?

ランポート アルゴリズム: http://en.wikipedia.org/wiki/Lamport_timestamps

4

2 に答える 2

3

答えは簡単です。ランポートアルゴリズムに基づいて、イベントaとcの間の関係を定義することはできません。私たちが知っていることはすべて次のとおりです。

a->bおよびc->dおよびa->dおよびc->b

しかし、a->cまたはc->aのいずれかであると結論付けることはできません。

于 2011-11-08T13:49:24.757 に答える
0

重要なことは、イベントが発生する順序でプロセスが一致することです。論理クロックを同期させるために、Lamport は事前発生と呼ばれる関係を定義しました。式 a -> b は、「a が b の前にある」と読みます。この発生の関係は、次の 2 つの状況で見ることができます。

  1. 'a' と 'b' が同じプロセスのイベントであり、'a' が 'b' の前に発生する場合、a -> b は真です。

  2. 'a' がプロセスがメッセージを送信するイベントであり、'b' が別のプロセスによるメッセージの受信イベントである場合、a-> b も真です。

アルゴリズムはどのように機能しますか?

各メッセージには送信者の送信時刻があります。そのため、受信機の時間が送信機の時間よりも短い場合、受信機は時間を変更します。したがって、アルゴリズムは受信機のクロックを同期させます。別のプロセスに送信される各メッセージには、メッセージが送信された時間の単位が含まれるため、クロックがチェックされます。

于 2021-07-10T06:03:23.887 に答える