問題本文
デッドロックの説明として,適切なものはどれか。
選択肢
- ア.コンピュータのプロセスが本来アクセスしてはならない情報に,故意あるいは偶発的にアクセスすることを禁止している状態
- イ.コンピュータの利用開始時に行う利用者認証において,認証の失敗が一定回数以上になったときに,一定期間又はシステム管理者が解除するまで,当該利用者のアクセスが禁止された状態
- ウ.複数のプロセスが共通の資源を排他的に利用する場合に,お互いに相手のプロセスが占有している資源が解放されるのを待っている状態
- エ.マルチプログラミング環境で,実行可能な状態にあるプロセスが,OSから割り当てられたCPU時間を使い切った状態
正解
ウ. 複数のプロセスが共通の資源を排他的に利用する場合に,お互いに相手のプロセスが占有している資源が解放されるのを待っている状態
解説
正解はウ.デッドロック(deadlock)は複数のプロセスが互いに相手が占有している資源(ロック)の解放を待ち合って永久に処理が進まなくなる状態.データベースの排他制御でA→Bの順とB→Aの順で資源を確保しようとする2つのトランザクションが互いに待つケースが典型.4条件(相互排他・保持と待機・横取り不可・循環待機)が同時に成立すると発生.アクセス制御・アカウントロックアウト・タイムスライス超過とは概念が異なるため明確に区別する.解消にはタイムアウトやデッドロック検出・ロールバックで対応.選択肢間の対比を意識して用語整理を行うのが得点のポイント.
選択肢ごとの解説
- ア.プロセスが本来アクセスしてはならない情報への故意または偶発のアクセスを禁止しているのはアクセス制御(認可)の説明.セキュリティの仕組みであり,プロセス同士が資源を待ち合うデッドロックとは概念が異なる別の用語.用語の定義を取り違えやすい紛らわしい選択肢.
- イ.認証失敗が一定回数以上でアクセスが禁止されるのはアカウントロックアウト(アカウントロック)の説明.ブルートフォース攻撃対策のセキュリティ機能でデッドロックとは別概念.認証失敗の累積による一時停止の仕組み.対象や目的が設問の条件と異なるため不適切.
- ウ.正解.複数のプロセスが共通の資源を排他的に利用する際に,お互いに相手のプロセスが占有している資源が解放されるのを待ち合う状態がデッドロックの定義.DBやOSで発生する代表的な並行処理の問題で頻出する.頻出論点なので押さえておく重要事項.用語の定義と典型的な使われ方を押さえる.
- エ.実行可能状態のプロセスがOSから割り当てられたCPU時間(タイムスライス・クォンタム)を使い切った状態は『タイムスライス満了』.OSのスケジューリング動作で次プロセスに切替えるための制御でデッドロックとは異なる.別概念であり設問の答えにはならない選択肢.
ITパスポート 2012年 (平成24年 秋期) の過去問一覧へ戻る・問67