セマフォとミューテックスとは?せまふぉとみゅーてっくす
セマフォとミューテックスとは、共有資源への同時アクセスを制限する同期機構。セマフォは使える資源の個数を表すカウンタで、確保するP操作(wait)で1減らし、0なら空くまで待ち、解放するV操作(signal)で1増やす。ミューテックスはこれを資源1個に限定し、ロックした本人しか解放できないという所有者の概念を加えたものである。
最終更新:2026-10-06
この語が出る過去問を解く →背景
複数の実行単位が同じ変数や装置を勝手に触ると、読み出してから書き戻すまでの間に別の実行単位が割り込み、更新が消える競合状態が起きる。割込み禁止で守るとシステム全体が止まり、多重度も上げられない。守りたい区間だけを、待たせる仕組みで直列化するという発想がダイクストラの提案したセマフォで、応用情報ではデッドロックの成立条件と組で問われる。
具体例
同時接続数を5に抑えたいコネクションプールは初期値5のセマフォで表せ、6番目の要求は誰かが返却するまで待たされる。1つのログファイルへの書込みを直列化するならミューテックスを使う。データベースの排他制御でも同じ考え方が使われており、シラバスでもロック方式や多版同時実行制御(MVCC)と並べてセマフォ方式が挙げられている。
試験での引っ掛け
P操作とV操作の向きを取り違えると関連する設問をまとめて落とす。減らして足りなければ待つのがP、増やして待機者を起こすのがVで、カウンタが正ならPは待たずに進む。またミューテックスは獲得したスレッドしか解放できないのに対し、セマフォは別のスレッドがV操作を出してよく、この非対称性が生産者消費者問題の解になる。複数のロックを取る順序がスレッドごとに違うとデッドロックする点も定番。
関連用語
出た過去問
出典:平成30年度 春期 応用情報技術者試験 午前 問18(IPA)
セマフォを用いる目的として、適切なものはどれか。
正解:共有資源を管理する。
要点:セマフォは共有資源の排他制御・同期に使う
セマフォは、複数のプロセスやタスクが同時に使うと不都合が生じる共有資源へのアクセスを調停するための仕組みである。資源の利用可能数を表す変数に対しP操作(獲得)とV操作(解放)を行い、排他制御や同期を実現する。
出典:令和4年度 春期 応用情報技術者試験 午前 問17(IPA)
出典:令和7年度 秋期 応用情報技術者試験 午前 問16(IPA)
一つのI2Cバスに接続された二つのセンサーがある。それぞれのセンサー値を読み込む二つのタスクを排他的に制御したい。利用するリアルタイムOSの機能として、適切なも…
正解:セマフォ
要点:共有資源の排他制御にはセマフォを使う
1本のI2Cバスという単一の共有資源を、複数のタスクが同時に使わないように調停する必要がある。リアルタイムOSでこの相互排除を実現する機構がセマフォであり、資源を利用する前に獲得、利用後に解放することで、同時に1つのタスクだけがバスを使う状態を保証できる。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。