セマフォ
共有リソースにアクセス可能なプロセス数をカウントすることで制御する
セマフォを用いた排他制御の流れ:
プロセスはリソースへのアクセス直前でセマフォの値を1減らす
アクセスが終わったらセマフォの値を1増やす
セマフォが1以上でなければ(0のとき)プロセスはリソースに対してアクセスできない
セマフォの値は0または1で、lockまたはunlockを表現する
セマフォ用メモリ領域の確保
semget 関数
初期設定
semctl 関数
操作
semop 関数
deadlock
処理の終了を待ち続けてしまう状態
複数のセマフォを利用する場合など
tips
本来の語義は「視覚による通信・信号」全般を指し、腕木通信や、それから派生した鉄道の腕木信号(や自動車の方向指示器)、手旗信号などが含まれる。