アルゴリズム
用語
- サイトとは、リカート・アグラワラアルゴリズムを実行するあらゆるコンピューティングデバイスのことである。
- 要求元サイトとは、クリティカルセクションへのアクセスを要求しているサイトのことです。
- 受信サイトとは、リクエスト元のサイトからリクエストを受信する他のすべてのサイトのことです。
アルゴリズム
リクエストサイト
- すべてのサイトにメッセージを送信します。このメッセージには、サイト名と、そのサイトの論理クロックに基づく現在のタイムスタンプ(他のサイトと同期されていると想定)が含まれます。
受信サイト
- リクエストメッセージを受信した場合、以下の条件を満たす場合に限り、タイムスタンプ付きの返信メッセージを直ちに送信する。
- 受信プロセスは現在クリティカルセクションに関心を持っていません。
- 受信処理の優先順位は低い(通常、これはタイムスタンプが遅くなることを意味する)。
- そうでない場合、受信プロセスは応答メッセージの送信を延期します。つまり、応答は受信プロセスがクリティカルセクションの使用を完了した後にのみ送信されます。
重要なセクション:
- リクエスト元のサイトは、すべての応答メッセージを受信した後で初めてクリティカルセクションに入ります。
- クリティカルセクションを終了すると、サイトはすべての遅延応答メッセージを送信します。
- ネットワークメッセージの最大数:

- 同期遅延:メッセージ伝播遅延1回分
問題点
このアルゴリズムの問題点の1つは、ノードの障害です。このような状況では、プロセスが永久に停止してしまう可能性があります。この問題は、一定時間経過後にノードの障害を検出することで解決できます。
参考文献
- ↑ Ricart, Glenn; Agrawala, Ashok K. (1981年1月1日). 「コンピュータネットワークにおける相互排除のための最適アルゴリズム」 . Communications of the ACM . 24 (1): 9– 17. doi : 10.1145/358527.358537 . S2CID 1779615 .
- 前川正、オルデホフトA、オルデホフトR(1987)。オペレーティングシステム:高度な概念。ベンジャミン/カミングス出版株式会社。