ソフトウェア

基本情報技術者試験デッドロックの回避手法である銀行家アルゴリズムの考え方

テクノロジ系ソフトウェア難易度:hard
デッドロックの回避手法である銀行家アルゴリズムの考え方として最も適切なものはどれか。
デッドロックの発生後に資源割当てグラフを定期的に調べて循環の有無を見つけ出し、循環していたプロセスの片方を強制終了して資源を取り上げ解消する
資源を割り当てる前に、その割当て後も全プロセスが完了できる安全な状態かを判定し、安全な場合だけ割り当てる
全資源にあらかじめ通し番号を付け、番号の昇順でのみ確保させて循環待ちを禁止する
各プロセスに資源を一切共有させず、必要分を起動時に専有させて待機を生じさせない
正解
イ.資源を割り当てる前に、その割当て後も全プロセスが完了できる安全な状態かを判定し、安全な場合だけ割り当てる

銀行家アルゴリズムは各プロセスの最大要求量を事前に把握し、ある割当てを行っても全プロセスを完了できる安全な実行順序が存在するかを検査する。安全な場合のみ割り当てるためデッドロックを回避でき正しい。

?選択肢ごとの解説

ア ×発生後に循環を検出し強制終了するのはデッドロック検出と回復の手法であり、発生前に防ぐ回避(銀行家アルゴリズム)とは段階が異なる。
イ ○銀行家アルゴリズムは各プロセスの最大要求量を事前に把握し、ある割当てを行っても全プロセスを完了できる安全な実行順序が存在するかを検査する。安全な場合のみ割り当てるためデッドロックを回避でき正しい。
ウ ×資源に番号を付け昇順確保で循環待ちを禁止するのは予防(prevention)の手法であり、安全状態を逐次判定する銀行家アルゴリズムとは方式が異なる。
エ ×起動時に必要分を一括専有させるのも予防の一種(保持と待機の否定)で、割当てごとに安全性を判定する回避の考え方ではない。
この問題の「深掘り・誤答の完全解説・覚え方」は、登録すると読めます。

基本情報技術者試験は全4,036問。公開しているのはその一部で、登録すると残りも一問ごとにAI解説つきで解けます。SRS暗記カード・全真模試・弱点診断まで。

登録は1分・クレジットカード不要。無料のまま練習・暗記カード・模試まで使えます。

作成・校閲:ukamiru編集部 · 基本情報技術者試験 過去問 · fe-a3-0220

【基本情報技術者試験】デッドロックの回避手法である銀行家アルゴリズムの考え方|正解「資源を割り当てる前に、その割…」|ukamiru 過去問