スポンサーリンク

【応用情報技術者試験】排他制御を5分で理解!

応用情報技術者試験で超頻出の「排他制御」。

でも初学者は、

  • なぜ必要?
  • 何を防ぐ?
  • セマフォやミューテックスって何?

でかなり混乱しやすい分野です。

この記事では、

  • 排他制御とは?
  • なぜ必要?
  • どんな問題を防ぐ?
  • 試験でどう出る?

を5分で理解できるように解説します!


まず結論

排他制御とは?

「同時アクセスによるデータ破壊を防ぐ仕組み」

です!


なぜ必要?

例:銀行口座

残高:100万円

同時に2人が:

  • Aさん → 10万円引き出す
  • Bさん → 20万円引き出す

とします。


排他制御がない場合

処理が同時に動くと…

両方が「残高100万円」を見てしまう!

結果👇

  • A後 → 90万円
  • B後 → 80万円

本来は70万円なのに、データが壊れる!


この問題を何という?

「競合」

複数の処理が同時にデータを書き換えることで発生します。

応用情報で超頻出。


排他制御の考え方

「1人ずつ使って!」

つまり、

  • Aの処理中は
  • Bを待たせる

ということ。


トイレの鍵で理解しよう

かなり分かりやすい例👇

鍵なし

→ 同時に入って事故る


鍵あり

→ 1人だけ使える

これが排他制御!


クリティカルセクションとは?

「共有データを使う危険エリア」

例えば:

残高を書き換える部分

ここを同時実行すると危険。


排他制御の基本流れ

  1. ロック取得
  2. 処理実行
  3. ロック解除

ロックとは?

「今使ってるから待って!」

という札みたいなもの。


試験で超頻出の用語

ミューテックス(Mutex)

1つだけ実行可能

「鍵」に近いイメージ。


セマフォ(Semaphore)

同時利用数を管理

例えば:

  • プリンタ3台
  • 同時3人までOK

みたいな管理。


ミューテックスとセマフォの違い

用語特徴
ミューテックス1つだけ許可
セマフォ複数許可可能

ここはよく出る!


排他制御の問題点

デッドロック

お互いがロック待ちして停止。


A:

  • 資源①を取得
  • 資源②待ち

B:

  • 資源②を取得
  • 資源①待ち

→ 永遠に進まない!


デッドロック対策

代表例👇

  • 資源取得順を統一
  • タイムアウト
  • 必要資源を最初に全部取得

応用情報での頻出ポイント

よく狙われる!

  • クリティカルセクション
  • 排他制御
  • セマフォ
  • ミューテックス
  • デッドロック

OS分野の超重要テーマ。


よくあるひっかけ

「スレッドは資源共有しない」

→ 間違い!

スレッドはメモリ共有するから排他制御が必要。


1分で復習!

排他制御

  • 同時アクセス防止

目的

  • データ破壊防止

代表用語

  • ロック
  • ミューテックス
  • セマフォ

危険

  • デッドロック

練習問題

問題

排他制御が必要になる主な理由として最も適切なものはどれか。

CPU使用率を上げるため

複数処理によるデータ不整合を防ぐため

メモリ容量を削減するため

ネットワーク速度を向上させるため


解答

正解:イ

解説

複数の処理が同時に共有データへアクセスすると、データ破壊や不整合が発生する可能性があります。

それを防ぐために排他制御を行います。


まとめ

排他制御とは

「同時アクセス防止」

排他制御が必要な理由

「データ破壊を防ぐため」

超重要用語

  • クリティカルセクション
  • ミューテックス
  • セマフォ
  • デッドロック

この4つはセットで覚えると強い!


知識に自信ができた方は、今度は自身のキャリアアップに向けて準備してみませんか?

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

まずは無料でキャリア相談

コメント