平成28年度 春期 応用情報技術者試験 午前 問28
テクノロジ/データベーストランザクションA(処理A1→処理A2の順に実行する)とトランザクションB(処理B1→処理B2の順に実行する)が,データベースの資源SとTに対し,次のように処理A1→処理B1→処理A2→処理B2の順で専有ロックを要求する場合,デッドロックが発生する資源の組合せはどれか。なお,ロックは処理開始時にかけ,トランザクション終了時に解除する。 (注:本サイトでは原問題の表を文字表記に変換しています)
出典:平成28年度 春期 応用情報技術者試験 午前 問28
- アA1=S,B1=S,A2=T,B2=T
- イA1=S,B1=T,A2=T,B2=S
- ウA1=T,B1=S,A2=T,B2=S
- エA1=T,B1=T,A2=S,B2=S
正解:イ
解説
処理順序A1→B1→A2→B2でデッドロックになるには,A2がB1の保持する資源を要求し,B2がA1の保持する資源を要求するという循環待ちが必要です。選択肢イ(A1=S,B1=T,A2=T,B2=S)はA2がB1の資源Tを,B2がA1の資源Sを要求する組合せとなり,循環待ちが成立してデッドロックが発生します。
選択肢ごとの解説
- ア誤り。A1=S,A2=Tと異なる資源を要求しており,B1=S,B2=Tも異なる資源のため,AとBが互いの資源を奪い合う循環待ちが発生しません。
- イ正しい。A2がB1の保持するTを,B2がA1の保持するSを要求するため,A・B間で資源の循環待ちが生じデッドロックになります。
- ウ誤り。A1とA2が両方ともTを要求しており,Aの中で同じ資源を連続要求する形になるため,B1・B2との循環待ちの構図になりません。
- エ誤り。A2とB2が両方ともSを要求する組合せであり,AとBがそれぞれ異なる資源を排他的に取り合う循環待ちの構造になりません。