第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の順序ですからデッドロックは発生しません。


BohYoh.comトップページへ