【問190】情報・サイバーセキュリティ管理士 練習問題|排他制御とデッドロック
コンピュータの基礎 問15/25難易度C(難しい)
問題文
データベースの排他制御において発生するデッドロックの説明はどれか。
- 1.更新前の値を記録しておき、障害時に処理前の状態へ引き戻す仕組み
- 2.参照だけを行う処理に共有ロックを与え、同時の読取りを許す仕組み
- 3.複数の処理が互いのロック解放を待ち合い、処理が進まなくなる状態
- 4.ロックの範囲を表全体へ広げ、同時実行の効率を高めようとする方式
解説
正解は3。排他制御は、複数のトランザクションが同じデータを同時に更新して矛盾が生じることを防ぐ仕組みで、ロックによって実現する。デッドロックとは、トランザクションAが確保した資源の解放をトランザクションBが待ち、同時にBが確保した資源の解放をAが待つというように、互いに相手のロック解放を待ち合って永久に処理が進まなくなる状態をいう。資源にアクセスする順序をあらかじめ統一することが有効な予防策であり、発生時はDBMSが一方をロールバックして解消する。1は誤り。更新前の値を記録して障害時に戻すのはロールバックとログの説明である。2は誤り。参照時に共有ロックを与えるのは、デッドロックではなくロックの種類の説明である。4は誤り。ロックの範囲を表全体に広げると同時実行性はかえって下がる。本試験では、デッドロックの原因と回避策が問われる。