セマフォ
Semaphore
信号の意味
有限個の資源の確保と解放をするための仕組み
プロセスは必要なだけセマフォから数を減らそうとする。
確保しようとした資源数に対して不足している場合は待ちに入る。
資源が足りるようになったら待ちが解放される。
プロセスは資源が不要になったら確保した数を解放する。異常終了した場合でも(そのように設定すれば)OSが解放する。
セマフォの利用時の問題
セマフォを誰が最初に初期化するかが問題となる。
先行するプロセス(一般に管理プロセス)が定義できる場合は問題ないが、そうでない場合一番乗りをしたプロセスが初期設定をすることになる。
OSに頼らず、自力でセマフォを実装する時の問題
プロセスが異常終了した時に解放されない。
セマフォの限界
OSが用意しているセマフォは、OSの動作範囲を超えられない。つまりホスト内での調停しかできない。
セマフォには2種類の標準実装が存在している。