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

令和7年度 秋期 午前 問18

ソフトウェア

このデッドロックの発生を防ぐ方法

二つのタスクが共用する二つの資源を排他的に使用するとき,デッドロックが発生するおそれがある。このデッドロックの発生を防ぐ方法はどれか。

答えと解説を見る

✓ これが正解イ資源獲得の順序を両方のタスクで同じにする。

解説

資源を取る順番を両方でそろえるのが定石です。

この設問は、二つのタスクが共用する二つの資源を排他的に使用するときに起こりうるデッドロックを、どのようにすれば発生させずに済むかを尋ねています。ですから見分けの軸は、資源の取り方を変えて循環待ちの輪を作らないようにする方策になっているかという一点だけです。資源を X と Y と呼ぶと、片方が X を握って Y を待ち、もう片方が Y を握って X を待つ形になると、互いに相手が握っているものを待って進めなくなります。これがデッドロックの姿です。そこで両方のタスクが X を取ってから Y を取るというように順番をそろえておくと、先に X を取れたほうが Y も取って処理を終え、返した後にもう一方が進めるようになります。輪ができないので待ちの循環が生じません。したがって発生を防ぐ方法は、資源獲得の順序を両方のタスクで同じにする、というものです。

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

出典:令和7年度 秋期 応用情報技術者試験 午前 問18

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