修了試験 2016-01-24実施分 基本情報技術者試験 問29
DBMSにおけるデッドロックの説明として,適切なものはどれか。
正答4
解説
正解は4です。 デッドロックとは、複数のトランザクションが、互いに相手のロックしている資源の解放を待ち合い、どちらも処理を進められなくなる状態です。 例えば、TがデータAをロックしてBを待ち、UがBをロックしてAを待つと、両者は待ち続けます。 DBMSは待ちグラフなどでデッドロックを検出し、一方のトランザクションをロールバックして解消します。 【選択肢別解説】 1:× 2相ロックで、第1相でロックを獲得してから第2相で解除するまでの状態は、ロックを保持している期間にすぎません。 互いに待ち合う状態ではないので、デッドロックではありません。 2:× 専有ロック同士が競合して片方が待つのは、通常のロック待ちです。 もう一方が処理を終えてロックを解除すれば待ちは解消するので、デッドロックではありません。 3:× アクセス中の資源を他のトランザクションから使えないようにするのは、排他制御(ロック)の説明です。 デッドロックは、排他制御の結果として起こり得る問題です。 4:○ 複数のトランザクションが互いに相手のロックしている資源を要求して待ち状態となり、実行できなくなる状態がデッドロックです。 そのため正しいです。 【ポイント】 デッドロックは、資源をロックする順序を全トランザクションで統一することで防止できます。 2相ロックは直列化可能性を保証しますが、デッドロックは防げない点も押さえておきましょう。まとめて解く
修了試験 2016-01-24実施分を通しで解く(80問)→