紹介
====

grmdはUNIX系OS上で、各種リソースの排他制御機能を提供する汎用的なデーモ
ンです。

従来、ファイルの排他制御であれば、mkdir(),symlink()等を利用してビジー
ウェイトさせる手法であったり、flock(),lockf(),fcntl()等を駆使して排他
制御を行ったりしていました。またファイル以外のリソースを排他制御する場
合は、セマフォ等を使って制御していたと思います。これらの排他制御の質は
個々のプログラマの力量に左右されたり、プログラム個々にコーディングされ
ることにより、システム全体として統一した制御はなかなか難しく、仮に優秀
なプログラマが綿密に設計したとしても、デッドロック等の不可避な問題が常
に付きまとっていました。

grmdはクライアントサーバ方式で制御を行い、あらゆるリソースの排他制御を
共通のインタフェースで行うことができます。特徴としては、

 o 排他レベルは2段階(共有ロック、排他ロック)利用することができ、プロ
 セスの並列度をできるだけ損なわずに排他制御を行えます。

 o リソースの解放待ち状態が発生した場合はビジーウェイト等に頼ること無
 く、リソースが解放されるまで自動的に待ち合わせます。

 o デッドロック状態をタイムアウト等に頼ること無く瞬時に判断し、クライ
 アントに通知します。

等を揚げることができます。

Ver. 0.1 -> 0.2 変更点

  o リソースの状態を取得するインターフェース・コマンド `getpr',
  `getrp' を追加した。

  o `getpr' を利用し、lockされたまま残されたリソースを強制unlockする
  perlのサンプルスクリプト(grmd_sweep.pl)を追加した。

オフィシャルサイト
==================

http://myh.no-ip.org/~tyserv/grmd/

--
Masahiko Ito <m-ito@myh.no-ip.org>