表は、トランザクション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の解放待ちになります。 |
【キーワード】
・ロック