スポンサーリンク

【応用情報技術者試験】デッドロックを5分で理解!

「デッドロックって結局なに?」
応用情報技術者試験でも超頻出ですが、

  • 排他制御
  • セマフォ
  • ロック

と一緒に出てくるので混乱しやすいテーマです。

この記事では、

  • デッドロックとは?
  • なぜ発生する?
  • 発生条件
  • 防止方法

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


まず結論

デッドロックとは?

「お互い待ち続けて処理が止まること」

です!


超簡単な例

一本道の橋

→ A車    ← B車

狭くてすれ違えません。


状況

  • A車:「Bが下がるまで進めない」
  • B車:「Aが下がるまで進めない」

結果

永遠に動けない!

これがデッドロック。


コンピュータでは?

資源の取り合い

例えば:

  • プリンタ
  • ファイル
  • メモリ

などを複数処理で使う。


具体例

AとBの2つの処理


A

  1. 資源①を取得
  2. 資源②を待つ

B

  1. 資源②を取得
  2. 資源①を待つ

結果

A → B待ち
B → A待ち


永遠に進まない!

これがデッドロック。


なぜ起こる?

排他制御があるから

共有資源を同時利用できないようにロックしている。

その結果、

「待ち」が発生する。


デッドロックの4条件

応用情報で超頻出!


① 相互排他

同時利用できない

例:

  • プリンタ1台

② 占有待ち

資源を持ったまま待つ

A:

  • 資源①保持
  • 資源②待機

③ 横取り不可

強制回収できない

使っている資源を無理やり奪えない。


④ 循環待ち

お互い待っている

A → B待ち
B → A待ち


超重要!

4条件が全部そろうと発生

つまり、

1つ崩せば防げる!


デッドロック防止方法


方法① 資源取得順を統一

例えば:

必ず①→②の順で取得

にする。

すると循環待ちしない!


方法② 一括取得

必要な資源を最初に全部取得。


方法③ タイムアウト

一定時間待ったら解除。


方法④ 使用後すぐ解放

ロック時間を短くする。


応用情報でよく出るポイント

頻出👇

  • デッドロック4条件
  • 排他制御との関係
  • セマフォ
  • 資源割当
  • 防止策

OS分野の超重要テーマ。


よくあるひっかけ

「デッドロック=CPU故障」

→ 違う!

ソフトウェア側の資源待ち問題。


1分で復習!

デッドロック

お互い待って停止


原因

資源の取り合い


4条件

  1. 相互排他
  2. 占有待ち
  3. 横取り不可
  4. 循環待ち

防止方法

  • 順序統一
  • 一括取得
  • タイムアウト

練習問題

問題

デッドロックを防止する方法として適切なものはどれか。

資源取得順序を統一する

CPUクロックを上げる

メモリ容量を減らす

スレッド数を固定する


解答

正解:ア

解説

資源取得順序を統一すると、循環待ちが発生しにくくなり、デッドロック防止につながります。


まとめ

デッドロックとは

「お互い待ち続けて停止する状態」


超重要

  • 排他制御
  • 資源待ち
  • 4条件
  • 防止策

特に、

「4条件を全部覚える」

ここは応用情報でかなり狙われます!


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

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

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

コメント