DBMSにおけるデッドロックの説明として、適切なものはどれか。
ア |
2相ロックにおいて、第1相目でロックを行ってから第2相目でロックを解除するまでの状態のこと |
イ |
ある資源に対して専有ロックと専有ロックが競合し、片方のトランザクションが待ち状態になること |
ウ |
あるトランザクションがアクセス中の資源に対して、他のトランザクションからアクセスできないようにすること |
エ |
複数のトランザクションが、互いに相手のロックしている資源を要求して待ち状態となり、実行できなくなること |
答え エ
【解説】
ア |
2相ロックに関わらず、ロックをかけてからロックを解除するまでの間はロック中といいます。 |
イ |
2つのトランザクションで資源ロックが競合しロック解除待ちになるのは通常の処理です。 |
ウ |
資源へのアクセスの競合を避ける、資源ロックの説明です。 |
エ |
デッドロックの説明です。
デッドロックを防ぐためには、複数の資源に対しロックを行うすべてのトランザクションでロックを行う順番を統一する必要があります。 |
【キーワード】
・ロック
・デッドロック
【キーワードの解説】
- ロック(lock)
複数の処理(トランザクション)が動作している環境で、複数の処理が同じデータ(資源)に同時にデータの書換えを行うと、データに不整合が生じるので、書き換えを行う前に他の処理からのアクセスを制限する処理をロックといいます。(排他処理)
- デッドロック(deadlock)
複数の処理(トランザクション)で、互いに相手が占有している資源(データ)を占有(ロック)しようとして、処理が停止することです。
処理がA、B、資源がX、Yのときに、処理Aが資源Xを占有し、処理Bが資源Yを占有している状態で、処理Aが資源Yの占有待ちになり、処理Bが資源Xの占有待ちになると、処理AとBはデッドロック状態になります。
もっと、「デッドロック」について調べてみよう。
戻る
一覧へ
次へ
|