ITパスポート試験 / 平成24年度 秋期 ITパスポート試験 / 問67
certification-simodake-work

平成24年度 秋期 ITパスポート試験 問67 解説 デッドロック

デッドロックの説明として,適切なものはどれか。

  1. ア コンピュータのプロセスが本来アクセスしてはならない情報に,故意あるいは偶発的にアクセスすることを禁止している状態
  2. イ コンピュータの利用開始時に行う利用者認証において,認証の失敗が一定回数以上になったときに,一定期間又はシステム管理者が解除するまで,当該利用者のアクセスが禁止された状態
  3. ウ 複数のプロセスが共通の資源を排他的に利用する場合に,お互いに相手のプロセスが占有している資源が解放されるのを待っている状態 ✓ 正答
  4. エ マルチプログラミング環境で,実行可能な状態にあるプロセスが,OSから割り当てられたCPU時間を使い切った状態

解説

選択肢の判断基準

デッドロックという言葉は、直訳すると「行き止まり」を意味します。IT用語としては、複数の作業(プロセス)が互いに相手の持ち物を要求し合い、誰も動けなくなる「膠着(こうちゃく)状態」を指します。このキーワードと「待ち続けて処理が進まない」という特徴が一致する選択肢を選びます。

デッドロックが起こる仕組み

コンピュータの世界では、複数のプログラムが同時に動くマルチタスク処理が行われています。このとき、プリンタやファイルのような「同時に複数の人が使うとデータが壊れる資源」を守るために、一度に一人しか使えないようにする「排他制御」という仕組みがあります。

デッドロックは、この排他制御が絡み合うことで発生します。例えば、以下のような状況です。

  1. プロセスAが資源Xを確保し、次に資源Yを求めている
  2. プロセスBが資源Yを確保し、次に資源Xを求めている

この状態になると、プロセスAはプロセスBが資源Yを離すのを待ち、プロセスBはプロセスAが資源Xを離すのを待つという「待ちの連鎖」が完成します。お互いに相手が終わるのを待っているため、永遠に処理が先に進みません。これがデッドロックです。

誤った選択肢の分析

試験本番で迷わないよう、他の選択肢が何を指しているかも整理しておきましょう。

・ア:これは「アクセス制御」や「認可」の話です。本来アクセス権がない領域への侵入を防ぐ仕組みです。 ・イ:これは「アカウントロック」の説明です。パスワードを何度も間違えた際、不正アクセスを防ぐために一時的に利用を停止するセキュリティ機能です。 ・エ:これは「タイムスライス」や「プリエンプション」に関連する用語です。CPUの処理時間が終わって中断されるのは、むしろマルチタスクを円滑に進めるための制御であり、デッドロックとは全く別の話です。

実務やシステム開発での位置付け

デッドロックは、OSの設計だけでなく、データベース管理システム(DBMS)でも非常に重要な概念です。例えば、2人のユーザーが同時に同じデータを更新しようとした際に、データベース側でこの現象が起きることがあります。

実務では、デッドロックを完全に防ぐことは難しいため、発生した際に自動的にどちらか一方を強制終了させて残りを進めるといった「検出と解消」の仕組みが組み込まれています。システム開発の現場では、処理の順番を整理することでデッドロックが起きにくい設計にするなどの工夫が求められます。この問題は、OSやデータベースがいかにして複雑な処理を矛盾なく管理しているかという、ITの基礎的な制御技術を理解しているかを問うています。

参考リンク

学習の記録にははてなブックマーク!

気づいたこと・覚えたことをコメントにメモしよう