ソフトウェア開発技術者試験 |
2011年度 = 平成23年度・秋期 |
午前 |
問20 |
三つの資源X~Zを占有して処理を行う四つのプロセスA~Dがある。各プロセスは処理の進行に伴い、表中の数値の順に資源を占有し、実行終了後に三つの資源を一括して解放する。プロセスAとデッドロックの関係を起こす可能性のあるプロセスはどれか。
プロセス名 | 資源の占有順序
|
資源X | 資源Y | 資源Z
|
プロセスA | 1 | 2 | 3
|
プロセスB | 1 | 2 | 3
|
プロセスC | 2 | 3 | 1
|
プロセスD | 3 | 2 | 1
|
ア B,C,D
| イ C,D
| ウ Cだけ
| エ Dだけ
|
イ
デッドロック(dead lock)とは、複数のプロセスが互いに次にアクセスする資源にロックをかけてしまい、永久に待ちの状態に陥ることです。一例を以下の図に示します。
占有する資源確保の順序を同一にすれば、デッドロックは発生しません。したがって、プロセスBは、プロセスAとデッドロック状態になることはありません。