三つの資源 X〜Z を占有して処理を行う四つのプロセス A〜D がある。各プロセスは表の数値順に資源を占有し,終了時に三つを一括解放する。プロセス A と同時にもう一つプロセスを動かした場合に,デッドロックを起こす可能性があるプロセスはどれか。 資源の占有順序(資源X/Y/Z の占有順) A:X=1, Y=2, Z=3(X→Y→Z) B:X=1, Y=2, Z=3(X→Y→Z) C:X=2, Y=3, Z=1(Z→X→Y) D:X=3, Y=2, Z=1(Z→Y→X)

テクノロジ系・一部改変

ア B,C,D

なぜ違う: B は A と同じ X→Y→Z 順なので、順序起因の循環待ちは起こさない。

イ C,D
ウ C だけ

なぜ違う: D も獲得順序が異なり可能性がある。

エ D だけ

なぜ違う: C も獲得順序が異なり可能性がある。

正解: イ

要点: 資源獲得順序がA・B(X→Y→Z)と異なるC・Dが循環待ちを生み得る。

デッドロックは資源の獲得順序が揃っていれば起きない。A・B は X→Y→Z の順。C は Z→X→Y、D は Z→Y→X と順序が異なるため、他プロセスとの間で循環待ちが生じデッドロックを起こす可能性がある。よって C と D。

この問題に出てくる用語

関連キーワード: デッドロック・資源獲得順序・排他制御

同じ回の前後の問題

テクノロジ系の他の問題

アプリで弱点分析つきの演習ができます

App Store

応用情報技術者の学習アプリ(応用情報トレ)

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