セマフォーは、相互に排他的な (mutex) リソースをセットアップする、システムのグローバルな信号フラグです。 セマフォーを使用して、いくつかのプロセスに、その他のプロセスが完了するのを待機させます。
を使用して、使用中のジョブ・セマフォーを表示できます。また、セマフォーをクリアすることもできます。 セマフォーのクリアは、ハングしたジョブまたは取り消されたジョブがそのセマフォーをリリースできないときに必要になることがあります。
例えば、プリンター・ドライバーを作成するプログラムがあり、常に 1 つのプロセスだけが、そのプログラムを使用するようにしたい場合を考えます。 プログラムを呼び出す各プロジェクト内で、以下のコマンド行によって、3 つのステップをセットアップします。
ステップ |
コマンド行 |
---|---|
セマフォーの取得 |
|
ドライバー作成プログラムの実行 |
|
セマフォーの解放 |
|
負荷の高いサーバーや、単一ユーザー・ライセンスのソフトウェア・プログラムなど、組織の重要なリソースに対して、セマフォーを確立できます。 保護したいリソースを使用する各ステップを、.semget コマンドと .semput コマンドでラップしてください。
セマフォーは、以下の規則に従います。