SkillStack
テクノロジ系18 / 80問

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

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

選択肢を押すと答え合わせができます。

正解と解説を見る

【正解】イ

デッドロックは、複数のタスクがそれぞれ異なる資源を保持しながら、相手が保持する資源を待ち続ける状態です。

イの「資源獲得の順序を両方のタスクで同じにする」が正解です。例えば、タスク1もタスク2も必ず「資源A→資源B」の順で獲得するようにすれば、循環待ちが発生しないため、デッドロックを防止できます。

アは誤りです。優先度を変えても、低優先度のタスクが資源を保持したまま高優先度のタスクが待機する状態(優先度逆転)が起こり得ます。デッドロックの根本的な防止策にはなりません。

ウは誤りです。資源獲得の順序を逆にすると、むしろデッドロックが発生しやすくなります。タスク1が資源Aを獲得し、タスク2が資源Bを獲得した状態で互いに相手の資源を待つことになります。

エは誤りです。両方のタスクの優先度を同じにしても、デッドロックの防止にはなりません。デッドロックは優先度に関係なく発生します。

【ポイント】 デッドロックの4条件は「相互排除」「保持と待機」「横取り不可」「循環待ち」です。いずれか一つでも成立しないようにすればデッドロックを防止できます。資源獲得順序の統一は「循環待ち」を防ぐ手法です。

出典:令和7年度 秋期 応用情報技術者試験 午前 問18
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。

この回の80問を、アプリで通しで解く

  • 本番と同じ問題数・制限時間で通し演習(模試モード)
  • 間違えた問題は自動で「復習すべき問題」に回る
  • 解説で分からない点はAIに質問できる
SkillStackで無料で始める