表は、トランザクション1〜3が資源 A〜C にかけるロックの種別を表す。
また、資源へのロックはトランザクションの起動と同時にかけられる。
トランザクション1〜3のうち二つのトランザクションをほぼ同時に起動した場合の動きについて、適切な記述はどれか。
ここで、表中の“-”はロックなし、“S”は共有ロック、“X”は専有ロックを示す。
|
A |
B |
C |
1 |
S |
- |
X |
2 |
S |
X |
- |
3 |
X |
S |
- |
ア |
トランザクション1の後にトランザクション3を起動したとき、トランザクション3の資源待ちはない。 |
イ |
トランザクション2の後にトランザクション1を起動したとき、トランザクション1の資源待ちはない。 |
ウ |
トランザクション2の後にトランザクション3を起動したとき、トランザクション3の資源待ちはない。 |
エ |
トランザクション3の後にトランザクション1を起動したとき、トランザクション1の資源待ちはない。 |
答え イ
【解説】
ア |
トランザクション1の後にトランザクション3を起動すると、トランザクション3のはトランザクション1が共有ロックを行った資源Aの解放待ちになります。 |
イ |
トランザクション2の後にトランザクション1を起動すると、資源Aは共に共有ロックなのでトランザクション1の資源待ちはありません。 |
ウ |
トランザクション2の後にトランザクション3を起動すると、トランザクション3はトランザクション2が共有ロックを行った資源Aと専有ロックを行った資源Bの解放待ちになります。 |
エ |
トランザクション3の後にトランザクション1を起動すると、トランザクション1はトランザクション3が専有ロックを行った資源Aの解放待ちになります。 |
【キーワード】
・ロック
【キーワードの解説】
- ロック(lock)
複数の処理(トランザクション)が動作している環境で、複数の処理が同じデータ(資源)に同時にデータの書換えを行うと、データに不整合が生じるので、書き換えを行う前に他の処理からのアクセスを制限する処理をロックといいます。(排他処理)
もっと、「ロック」について調べてみよう。
戻る
一覧へ
次へ
|