第1種情報処理技術者試験
2000年度 = 平成12年度
午前
問26
二つのプロセスA、Bが二つのファイルX、Yを、共に排他的に確保して更新する場合を考える。それぞれのプロセスにおけるファイルの要求及び解放の順序が次のとおりであるとすると、デッドロックが発生するものはどれか。ここで、最初の要求は同時に行われるが、以降の要求順序は保証されないものとする。また、同じファイルが同時に要求された場合は、プロセスAが優先されるものとする。
ア
プロセスA
プロセスB
Xの要求
Xの要求
Yの要求
Yの要求
Xの解放
Xの解放
Yの解放
Yの解放
イ
プロセスA
プロセスB
Xの要求
Yの要求
Xの解放
Yの解放
Yの要求
Xの要求
Yの解放
Xの解放
ウ
プロセスA
プロセスB
Xの要求
Yの要求
Yの要求
Xの要求
Xの解放
Xの解放
Yの解放
Yの解放
エ
プロセスA
プロセスB
Xの要求
Yの要求
Yの要求
Yの解放
Yの解放
Xの要求
Xの解放
Xの解放
解答
ウ
解説
デッドロック(dead lock)
とは、複数のプロセスが互いに次にアクセスする資源にロックをかけてしまい、永久に待ちの状態に陥ることです。一例を以下の図に示します。
ウは、プロセスAがX→X、プロセスBがY→Xとなっていますので、デッドロックが発生します。
ア、イ、エは、XとYの要求順序が、両プロセスともにX→Yの順序ですからデッドロックは発生しません。