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

テクノロジOS・ソフトウェア

この問題は2025(R7)秋 応用情報技術者 午前に出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。

本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。

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

解答・解説を読む

正解: 選択肢

デッドロックとは、複数のタスクが互いに他方のタスクが確保している資源の解放を待ち合い、どちらの処理も進まなくなってしまう状態のことです。
二つのタスクが二つの資源を排他的に使用する場合、両者が異なる順序で資源を要求するとデッドロックが発生しやすくなります。
これを防ぐための有効な対策は、すべてのタスクで資源を獲得する順序を統一することです。

各選択肢の解説

  • ア:一方のタスクの優先度を高くする。
    優先度を高くしても、低優先度のタスクが先に資源を確保して途中で割り込まれた場合などにデッドロックが発生する可能性があります。
  • イ:資源獲得の順序を両方のタスクで同じにする。
    正解です。資源獲得の順序を統一することで、複数のタスクが互いの資源を待ち合う「環状待ち」を防ぐことができます。
  • ウ:資源獲得の順序を両方のタスクで逆にする。
    逆順で資源を獲得しようとすると、タスクAが資源1を、タスクBが資源2を同時に確保した直後に、互いの資源を要求することになり、まさにデッドロックを引き起こす原因となります。
  • エ:両方のタスクの優先度を同じにする。
    優先度を同じにしても、資源確保の順序やタイミングの競合は解決されないため、デッドロックを防ぐことはできません。