SkillStack
テクノロジ系17 / 80問

応用情報技術者試験 令和6年度 春期 午前 問17

三つの資源 X ~ Z を占有して処理を行う四つのプロセス A ~ D がある。各プロセスは処理の進行に伴い、表中の数値の順に資源を占有し、実行終了時に三つの資源を一括して解放する。プロセス A と同時にもう一つプロセスを動かした場合に、デッドロックを起こす可能性があるプロセスはどれか。

応用情報技術者試験 令和6年度 春期 午前 問17の図表

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

正解と解説を見る

【正解】イ

図表から、資源の占有順序は、AとBがX→Y→Z、CがZ→X→Y、DがZ→Y→Xです。デッドロックは、複数のプロセスが資源を保持したまま、互いに相手の資源の解放を待つ「循環待ち」が生じると発生します。

AとCでは、AがXとYを占有し、CがZを占有した状態を考えます。Aは次のZを待ち、Cは次のXを待つため、互いに先へ進めずデッドロックになります。AとDでは、AがXを占有し、DがZとYを占有すると、AはYを待ち、DはXを待つので、やはりデッドロックになります。したがって、可能性があるのはCとDです。

アは誤りです。Bを含めている点が不適切です。AとBはどちらもX→Y→Zの順なので、一方が最初のXを取得すると、他方はXの取得前に待機します。Xを取得した側はY、Zと処理を進めて全資源を解放でき、循環待ちは生じません。

ウは誤りです。Cだけでなく、Dとの組合せでもXとYを互いに待つ状態が発生します。

エは誤りです。Dだけでなく、Cとの組合せでもXとZを互いに待つ状態が発生します。

【ポイント】 ・デッドロックの判定では、各プロセスの資源取得順序を矢印で表すと分かりやすくなります。 ・同じ順序で資源を取得するプロセス同士では、通常、循環待ちは発生しません。 ・資源を一括解放する条件では、待機中も既に取得した資源を保持し続ける点が重要です。

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

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

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