基本情報技術者試験 ap-2022r04a-a 午前 問16: 二つのタスクが共用する二つの資源を排他的に使用するとき,デッドロックが発生するおそれがある。このデッドロックの発生を防ぐ方法はどれか。

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

問題本文

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

選択肢

  • .一方のタスクの優先度を高くする。
  • .資源獲得の順序を両方のタスクで同じにする。
  • .資源獲得の順序を両方のタスクで逆にする。
  • .両方のタスクの優先度を同じにする。

正解

. 資源獲得の順序を両方のタスクで同じにする。

解説

2つのタスクが2つの資源を奪い合うときに生じるデッドロックの防止策を問う問題。デッドロックは、タスクAが資源1→資源2の順、タスクBが資源2→資源1の順というように、互いが相手の保持する資源を待ち合う循環待ちが生じると発生する。資源を獲得する順序を全タスクで同じにすれば循環待ちが起こらず、デッドロックを防げるので、正解はイである。

選択肢ごとの解説

  • .一方の優先度を高くしても、資源を獲得する順序が逆のままなら循環待ちは解消されず、デッドロックを防げないため誤り。
  • .正しい。両タスクが同じ順序で資源を獲得すれば、互いに相手の資源を待ち合う循環が生じずデッドロックを防止できる。
  • .獲得順序を逆にすると、まさに循環待ちが起こりやすくなりデッドロックを誘発するため、防止策として誤り。
  • .優先度を同じにしても資源獲得順序が逆であれば循環待ちは残り、デッドロックは防げないため誤り。

ap-2022r04a-a過去問一覧へ戻る・問16

基本情報技術者試験 の iOS アプリ版

アプリ版なら、よりスムーズに動作し、
スワイプで問題遷移ができます。

基本情報技術者試験 合格.dev を App Store でダウンロード