正答4
解説
正解は4です。
DBMS(DataBase Management System)におけるデッドロックの説明を選ぶ問題です。
デッドロックは、複数のトランザクションが互いに相手の資源の解放を待ち合い、どれも先に進めなくなる状態です。
【選択肢別解説】
1:× 2相ロックは、ロックをかける段階と解除する段階を分けて直列化可能性を保証する方式です。
その途中の状態はデッドロックではありません。
2:× 占有ロックどうしが競合して片方が待つのは、通常のロック待ちです。
相手がロックを解除すれば処理は進むので、デッドロックではありません。
3:× アクセス中の資源を他のトランザクションから使えないようにするのは、排他制御(ロック)そのものの説明です。
4:○ 複数のトランザクションが、互いに相手がロックしている資源を要求して待ち続け、実行できなくなる状態です。
これがデッドロックです。
【ポイント】
デッドロックが起きたら、DBMSはどれかのトランザクションを強制的に取り消して解消します。
資源をロックする順序をそろえると、デッドロックを防ぎやすくなります。