応用情報技術者試験で超頻出の「排他制御」。
でも初学者は、
- なぜ必要?
- 何を防ぐ?
- セマフォやミューテックスって何?
でかなり混乱しやすい分野です。
この記事では、
- 排他制御とは?
- なぜ必要?
- どんな問題を防ぐ?
- 試験でどう出る?
を5分で理解できるように解説します!
まず結論
排他制御とは?
「同時アクセスによるデータ破壊を防ぐ仕組み」
です!
なぜ必要?
例:銀行口座
残高:100万円
同時に2人が:
- Aさん → 10万円引き出す
- Bさん → 20万円引き出す
とします。
排他制御がない場合
処理が同時に動くと…
両方が「残高100万円」を見てしまう!
結果👇
- A後 → 90万円
- B後 → 80万円
本来は70万円なのに、データが壊れる!
この問題を何という?
「競合」
複数の処理が同時にデータを書き換えることで発生します。
応用情報で超頻出。
排他制御の考え方
「1人ずつ使って!」
つまり、
- Aの処理中は
- Bを待たせる
ということ。
トイレの鍵で理解しよう
かなり分かりやすい例👇
鍵なし
→ 同時に入って事故る
鍵あり
→ 1人だけ使える
これが排他制御!
クリティカルセクションとは?
「共有データを使う危険エリア」
例えば:
残高を書き換える部分
ここを同時実行すると危険。
排他制御の基本流れ
- ロック取得
- 処理実行
- ロック解除
ロックとは?
「今使ってるから待って!」
という札みたいなもの。
試験で超頻出の用語
ミューテックス(Mutex)
1つだけ実行可能
「鍵」に近いイメージ。
セマフォ(Semaphore)
同時利用数を管理
例えば:
- プリンタ3台
- 同時3人までOK
みたいな管理。
ミューテックスとセマフォの違い
| 用語 | 特徴 |
|---|---|
| ミューテックス | 1つだけ許可 |
| セマフォ | 複数許可可能 |
ここはよく出る!
排他制御の問題点
デッドロック
お互いがロック待ちして停止。
例
A:
- 資源①を取得
- 資源②待ち
B:
- 資源②を取得
- 資源①待ち
→ 永遠に進まない!
デッドロック対策
代表例👇
- 資源取得順を統一
- タイムアウト
- 必要資源を最初に全部取得
応用情報での頻出ポイント
よく狙われる!
- クリティカルセクション
- 排他制御
- セマフォ
- ミューテックス
- デッドロック
OS分野の超重要テーマ。
よくあるひっかけ
「スレッドは資源共有しない」
→ 間違い!
スレッドはメモリ共有するから排他制御が必要。
1分で復習!
排他制御
- 同時アクセス防止
目的
- データ破壊防止
代表用語
- ロック
- ミューテックス
- セマフォ
危険
- デッドロック
練習問題
問題
排他制御が必要になる主な理由として最も適切なものはどれか。
ア
CPU使用率を上げるため
イ
複数処理によるデータ不整合を防ぐため
ウ
メモリ容量を削減するため
エ
ネットワーク速度を向上させるため
解答
正解:イ
解説
複数の処理が同時に共有データへアクセスすると、データ破壊や不整合が発生する可能性があります。
それを防ぐために排他制御を行います。
まとめ
排他制御とは
「同時アクセス防止」
排他制御が必要な理由
「データ破壊を防ぐため」
超重要用語
- クリティカルセクション
- ミューテックス
- セマフォ
- デッドロック
この4つはセットで覚えると強い!
知識に自信ができた方は、今度は自身のキャリアアップに向けて準備してみませんか?

未経験から、ITエンジニアへ。
「IT業界に興味はあるけれど、自分にできるか不安」「何から始めればいいのか分からない」そんな方のために、Tech GO は未経験からのIT転職を専門的にサポートします。求人を紹介するだけではなく、あなたの強みを整理し、応募準備から入社後の成…
まずは無料でキャリア相談

コメント