第1種情報処理技術者試験 1999年度 = 平成11年度 午前 問21

 次のケースのうち、デッドロックが起こるものはどれか。

ア タスクXが資源Aと資源Bを確保した後に、タスクYが資源Aと資源Bを共有した。
イ タスクXが資源Aを確保し、タスクYが資源Bを確保した後に、タスクYが資源Aを要求し、タスクXが資源Bを要求した。
ウ タスクXが資源Aを確保し、タスクYが資源Bを確保した後に、タスクYが資源Cを要求し、タスクXが資源Bを要求した。
エ タスクXが資源Aを確保し、タスクYが資源Bを確保した後に、タスクZが資源Aと資源Bを要求した。

解答



解説

 デッドロックdead lock)とは、複数のプロセスが互いに次にアクセスする資源にロックをかけてしまい、永久に待ちの状態に陥ることです。一例を以下の図に示します。


 タスクXが資源AとBを先に占有するので、それらが解放されるまでタスクYは待ち状態となるので、デッドロックは発生しません。

 上記の図のようになり、デッドロックが発生します。

 タスクXは、資源Aを要求した時点で、タスクYが資源Bを占有していると終了するまで待たされるが、解放されると処理が進行しますので、デッドロックは発生しません。

 タスクZは、タスクXが資源Aを解放するまで、タスクYが資源Bを解放するまで待たされるが、デッドロックは発生しません。


BohYoh.comトップページへ