平成25年度 秋期 基本情報技術者試験 午前 問32
テクノロジ/データベース表は,トランザクション1~3が資源A~Cにかけるロックの種別を表す。また,資源へのロックはトランザクションの開始と同時にかけられる。トランザクション1~3のうち二つのトランザクションをほぼ同時に開始した場合の動きについて,適切な記述はどれか。ここで,表中の“-”はロックなし,“S”は共有ロック,“X”は専有ロックを示す。 トランザクション1:資源A=S,資源B=-,資源C=X トランザクション2:資源A=S,資源B=X,資源C=- トランザクション3:資源A=X,資源B=S,資源C=- (注:本サイトでは原問題の表を文字表記に変換しています)
出典:平成25年度 秋期 基本情報技術者試験 午前 問32
- アトランザクション1の後にトランザクション3を開始したとき,トランザクション3の資源待ちはない。
- イトランザクション2の後にトランザクション1を開始したとき,トランザクション1の資源待ちはない。
- ウトランザクション2の後にトランザクション3を開始したとき,トランザクション3の資源待ちはない。
- エトランザクション3の後にトランザクション1を開始したとき,トランザクション1の資源待ちはない。
正解:イ
解説
共有ロック(S)同士は両立しますが,専有ロック(X)は他のいかなるロックとも両立しません。トランザクション2(A=S,B=X)とトランザクション1(A=S,B=-,C=X)は,資源Aは両方ともS同士で両立し,資源B,Cはどちらか一方にしかロックがないため競合しません。したがって,トランザクション2の後にトランザクション1を開始しても資源待ちは発生しません。
選択肢ごとの解説
- ア誤り。資源Aについてトランザクション1はS,トランザクション3はXであり,SとXは両立しないため,トランザクション3は資源A待ちになります。
- イ正しい。トランザクション2とトランザクション1は,資源Aが共にSで両立し,資源B,Cもどちらか一方にしかロックがないため,資源待ちは発生しません。
- ウ誤り。資源Aについてトランザクション2はS,トランザクション3はXであり,SとXは両立しないため,トランザクション3は資源A待ちになります。
- エ誤り。資源Aについてトランザクション3はX,トランザクション1はSであり,SとXは両立しないため,トランザクション1は資源A待ちになります。