情報処理安全確保支援士試験 情報処理安全確保支援士試験 平成29年度春期 午前Ⅰ 問8: トランザクション A と B が,共通の資源であるテーブル a と b を表に示すように更新するとき,デッドロックとなるのはどの時点か。ここで,表中の ① ~
←情報処理安全確保支援士試験 平成29年度春期 午前Ⅰ
A と B が,共通の資源であるテーブル a と b を表に示すように更新するとき,デッドロックとなるのはどの時点か。ここで,表中の ① ~ ⑧ は処理の実行順序を示す。また,ロックはテーブルの更新直前にテーブル単位で行い,アンロックはトランザクション終了時に行うものとする。
| トランザクション A | トランザクション B |
|---|
| ↓ 時間 | ① トランザクション開始 | |
| | ② トランザクション開始 |
| ③ テーブル a 更新 | |
| | ④ テーブル b 更新 |
| ⑤ テーブル b 更新 | |
| | ⑥ テーブル a 更新 |
| ⑦ トランザクション終了 | |
| | ⑧ トランザクション終了 |
問題本文
トランザクション A と B が,共通の資源であるテーブル a と b を表に示すように更新するとき,デッドロックとなるのはどの時点か。ここで,表中の ① ~ ⑧ は処理の実行順序を示す。また,ロックはテーブルの更新直前にテーブル単位で行い,アンロックはトランザクション終了時に行うものとする。
解説
③でAがテーブルaをロック、④でBがbをロック。⑤でAがbを要求するがBが保持中で待機、⑥でBがaを要求するがAが保持中で待機し、互いに相手の解放を待つ循環待ちが完成する。デッドロック成立は⑥でエが正解。資源獲得順序を統一すれば循環待ちを断て、デッドロックを予防できる。
選択肢ごとの解説
- ア.③はAがaをロックするだけで競合は生じず、デッドロックではない。
- イ.④はBがbをロックする時点で、まだ待機状態は発生していないため誤り。
- ウ.⑤はAがbを待ち始めるが、Bはまだaを要求しておらず循環は未完成で誤り。
- エ.⑥でBがaを待ち、AもbをBに待たされ相互待機(循環待ち)が成立する正解。
情報処理安全確保支援士試験 平成29年度春期 午前Ⅰ の過去問一覧へ戻る・問8