令和6年度 春期 ITストラテジスト試験 システムアーキテクト試験 ネットワークスペシャリスト試験 ITサービスマネージャ試験 情報処理安全確保支援士試験 午前I 問題【共通】 問6

テクノロジOS・ソフトウェア

この問題は2024(R6)春 高度試験共通 午前Iに出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。

本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。

三つの資源 X〜Z を占有して処理を行う四つのプロセス A〜D がある。各プロセスは処理の進行に伴い,表中の数値の順に資源を占有し,実行終了時に三つの資源を一括して解放する。プロセス A と同時にもう一つプロセスを動かした場合に,デッドロックを起こす可能性があるプロセスはどれか。

プロセス 資源 X 資源 Y 資源 Z
A 1 2 3
B 1 2 3
C 2 3 1
D 3 2 1
資源の占有順序
図の説明テキスト

プロセスA〜Dが資源X〜Zを占有する順序を示した表

解答・解説を読む

正解: 選択肢

デッドロックの発生条件:
複数のプロセスが互いに相手の持っている資源を要求し合い、待機状態から抜け出せなくなる状態(循環待ち)。

プロセス AA の資源要求順:XYZX \rightarrow Y \rightarrow Z
同時実行時の各プロセスとの関係を検証する。

  • プロセス AA とプロセス BB の場合
    要求順序が同じ(XYZX \rightarrow Y \rightarrow Z)。
    先に資源 XX を確保したプロセスがそのまま処理を進められるため、循環待ちは発生しない。
  • プロセス AA とプロセス CC の場合
    AA の要求順:XYZX \rightarrow Y \rightarrow Z
    CC の要求順:ZXYZ \rightarrow X \rightarrow Y
    例えば、AA が資源 XX を確保し、CC が資源 ZZ を確保したとする。
    次に AA は資源 YY を確保し、資源 ZZ を要求するが、CC が占有しているため待機する。
    一方、CC は資源 XX を要求するが、AA が占有しているため待機する。
    互いに相手の資源を待つ状態(循環待ち)となり、デッドロックが発生する可能性がある。
  • プロセス AA とプロセス DD の場合
    AA の要求順:XYZX \rightarrow Y \rightarrow Z
    DD の要求順:ZYXZ \rightarrow Y \rightarrow X
    例えば、AA が資源 XX を確保し、DD が資源 ZZ を確保したとする。
    次に AA は資源 YY を要求し、DD も資源 YY を要求する。
    もし AA が資源 YY を確保できた場合、次に資源 ZZ を要求するが DD が占有中のため待機。DD は資源 YY を要求するが AA が占有中のため待機。
    互いに相手の資源を待つ状態となり、デッドロックが発生する可能性がある。

以上より、プロセス AA と同時に動かした場合にデッドロックを起こす可能性があるのは CCDD であるため、「CCDD」が正解となる。

各選択肢の解説

  • ア(BBCCDD: プロセス BBAA と同じ順序で資源を要求するため、デッドロックは発生しない。誤り。
  • イ(CCDD: 正解。プロセス AACCAADD の組み合わせでは、互いに相手の保持する資源を要求して循環待ちとなるため、デッドロックが発生する可能性がある。
  • ウ(CCだけ): プロセス DD もデッドロックが発生する可能性があるため誤り。
  • エ(DDだけ): プロセス CC もデッドロックが発生する可能性があるため誤り。