二つのタスクが共用する二つの資源を排他的に使用するとき、デッドロックが発生するおそれがある。このデッドロックの発生を防ぐ方法はどれか。
資源の獲得順序を全タスクで統一すれば循環待ちが起きない
選択肢
- ア一方のタスクの優先度を高くする。
- イ資源獲得の順序を両方のタスクで同じにする。
- ウ資源獲得の順序を両方のタスクで逆にする。
- エ両方のタスクの優先度を同じにする。
正解と解説
正解:イ 資源獲得の順序を両方のタスクで同じにする。
デッドロックは、複数のタスクが資源を互いに保持したまま相手の資源を待つ循環待ちが生じたときに起こる。全てのタスクが同じ順序で資源を獲得するように決めておけば、この循環待ちが構造的に発生しなくなる。資源に順序番号を付けて昇順にしか獲得させない方法が代表的な対策である。
選択肢ごとの解説
- ア優先度を上げても、両者が異なる順序で資源を要求すれば循環待ちは起こりうる。
- イ正しい。獲得順序を統一すると循環待ちが成立せず、デッドロックを防げる。
- ウ逆順にすると互いに相手の持つ資源を待つ形になり、かえってデッドロックを招く。
- エ優先度をそろえても資源の要求順序は変わらないので、防止策にならない。
この問題は2回出題されています
- 2019年度 春期 問6(このページ)
- 2022年度 秋期 問6
同じ分野の他の問題
- 仮想記憶管理におけるページ置換えアルゴリズムとしてLRU方式を採用する。主記憶のページ枠が、4000, 5000, 60…2025年度 春期 問6
- 手続型言語のコンパイラがコード生成までに行う処理のうち、最後に行うものはどれか。2024年度 秋期 問7
- 仮想記憶方式において、セグメンテーション方式と比較した場合のページング方式の長所はどれか。2024年度 秋期 問6
- 三つの資源X〜Zを占有して処理を行う四つのプロセスA〜Dがある。各プロセスは処理の進行に伴い、表中の数値の順に資源を占有…2024年度 春期 問6
- プリエンプティブな優先度ベースのスケジューリングで実行する二つの周期タスクA及びBがある。タスクBが周期内に処理を完了で…2023年度 秋期 問6
最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。