排他制御とは?
排他制御とは、複数の利用者やプログラムが同じデータへ同時にアクセスした際に、データの不整合が起きないよう制御する仕組み。対象データにロックをかけることで実現する。
応用情報技術者試験の過去問では4回出題されています(2018年度〜2025年度)。
はいたせいぎょ
排他制御の意味
複数の利用者やプログラムが同じデータへ同時にアクセスした際に、データの不整合が起きないよう制御する仕組み。対象データにロックをかけることで実現する。
排他制御の具体例
座席予約システムで、同じ座席に2人が同時に予約しようとした場合、先に処理を始めた側がロックを取得し、後からのもう一方の予約は待たされるか失敗する。
排他制御は試験でどう引っ掛けられる?
ロックをかければ安全、では終わらない。互いに相手のロック解除を待ち続けて処理が進まなくなるデッドロックが起きうる。また同じロックでも条件で挙動が変わり、読み取り用の共有ロックは複数同時にかけられるが、更新用の専有ロックは1つしかかけられない。
排他制御と関連する用語
排他制御が出た過去問
セマフォを用いる目的として、適切なものはどれか。
正解:共有資源を管理する。
要点:セマフォは共有資源の排他制御・同期に使う
セマフォは、複数のプロセスやタスクが同時に使うと不都合が生じる共有資源へのアクセスを調停するための仕組みである。資源の利用可能数を表す変数に対しP操作(獲得)とV操作(解放)を行い、排他制御や同期を実現する。
出典:平成30年度 春期 応用情報技術者試験 午前 問18(IPA)一つのI2Cバスに接続された二つのセンサがある。それぞれのセンサ値を読み込む二つのタスクで排他的に制御したい。利用するリアルタイムOSの機能として、適切なものは…
正解:セマフォ
要点:共有資源への同時アクセス防止にはセマフォを使う
1本のバスという共有資源に対し、2つのタスクが同時にアクセスしないよう制御するには排他制御の仕組みが要る。セマフォは利用可能な資源数を表すカウンタで、獲得(P操作)と解放(V操作)によって同時にアクセスできるタスク数を制限できる。資源数1のセマフォを使えば、一方が使用中は他方が待たされ、排他制御が実現できる。
出典:令和4年度 春期 応用情報技術者試験 午前 問17(IPA)一つのI2Cバスに接続された二つのセンサーがある。それぞれのセンサー値を読み込む二つのタスクを排他的に制御したい。利用するリアルタイムOSの機能として、適切なも…
正解:セマフォ
要点:共有資源の排他制御にはセマフォを使う
1本のI2Cバスという単一の共有資源を、複数のタスクが同時に使わないように調停する必要がある。リアルタイムOSでこの相互排除を実現する機構がセマフォであり、資源を利用する前に獲得、利用後に解放することで、同時に1つのタスクだけがバスを使う状態を保証できる。
出典:令和7年度 秋期 応用情報技術者試験 午前 問16(IPA)スレッドセーフの説明として、適切なものはどれか。
正解:アプリケーションを複数のスレッドで並列に実行しても、問題が生じない。
要点:スレッドセーフは複数スレッドで同時実行しても不整合が起きないこと
スレッドセーフとは、あるコードを複数のスレッドから同時に実行しても、データ競合や不整合といった問題が起きないように設計されていることをいう。共有データへのアクセスを適切に排他制御したり、状態を持たない設計にしたりすることで実現する。
出典:令和7年度 秋期 応用情報技術者試験 午前 問17(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。