過去問解きまくり研究所 ホーム

令和2年度 10月 午前 問17

ソフトウェア

デッドロックに関する問題

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

〔資源の占有順序〕

答えと解説を見る

✓ これが正解イC,D

解説

資源を取る順序が違うプロセスと組むと発生し得ます。

デッドロックは、複数のプロセスが互いに相手の持っている資源を待ち続けて先に進めなくなる状態です。設問はプロセス A ともう一つを組み合わせたときの発生し得るかを問うており、ですから、A が資源を取る順序と、組む相手の順序が食い違っているかどうかで見分けます。全プロセスが同じ順序で資源を取るなら、先に取り始めた側が全てを取り終えて解放するまで他方は同じ資源で待つだけで、片側が完走するので循環待ちには至りません。しかし取る順序が違うと、A が先に取ったものを相手が欲しがり、相手が先に取ったものを A が欲しがる、という循環が起こり得ます。A は X、Y、Z の順に取り、B は同じ順、C は Z、X、Y の順、D は Z、Y、X の順です。順の違う相手として組みうるのは C と D で、これらは A と組んだときに循環待ちが成立し得ます。

ほかの選択肢はなぜ違うのか

出典:令和2年度 10月 応用情報技術者試験 午前 問17

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)