ITパスポート 平成25年度 秋期 特別措置試験 問67
データベース
排他制御に関する問題
あるトランザクション処理は,①共有領域から値を読み取り,②読み取った値に数値を加算し,③結果を共有領域に書き込む手順からなっている。複数のトランザクションを並列に矛盾なく処理するためには,トランザクション処理のどの時点で共有領域をロックし,どの時点でロックを解除するのが適切か。
〔図1 トランザクション処理の手順と時点〕(原典の図を書き起こしたものです。上から下へ時間が流れます)
| 順 | 内容 |
|---|---|
| — | 時点(a) |
| ① | 共有領域から値を読み取り |
| — | 時点(b) |
| ② | 読み取った値に数値を加算 |
| — | 時点(c) |
| ③ | 結果を共有領域に書き込む |
| — | 時点(d) |
〔表 ロックと解除の時点の組合せ〕
| 共有領域の | 共有領域の | |
|---|---|---|
| ア | 時点(a) | 時点(c) |
| イ | 時点(a) | 時点(d) |
| ウ | 時点(b) | 時点(c) |
| エ | 時点(b) | 時点(d) |
- ア ロック=時点(a),解除=時点(c)
- イ ロック=時点(a),解除=時点(d)
- ウ ロック=時点(b),解除=時点(c)
- エ ロック=時点(b),解除=時点(d)
答えと解説
✓ これが正解イ ロック=時点(a),解除=時点(d)
解説
その間に他人が触ったら困るところ、で囲いを決めます。
この処理は、読み、足し、書き戻す三つの手順です。二つ目の計算は、一つ目で読んだ値をもとにしています。読んでから書くまでに他人が書き換えると、計算の元が古くなります。囲いは、読む前から書いた後までを覆う必要があります。読んだ後に囲うと、二人が同じ古い値を読んでしまいます。二人とも同じ値を足すので、片方の更新が消えてしまいます。書く前に囲いを解いても、同じことが起こります。解いた瞬間に、もう一方が古い値を読むからです。よって、最初の時点で囲い、最後の時点で解くのが正しい形です。排他制御の物差しは、読んだ値が書くまで変わらないと言えるかです。囲いの範囲は、その間に他人が触ったら困るところで決めます。ただし囲いを広げるほど、他の処理は待たされます。必要なだけ広く、それ以上は広げないのが原則です。
ほかの選択肢の解説
- ア ロック=時点(a),解除=時点(c):最初の時点で囲い、計算を終えたところで解くとしています。囲い始めは正しいので、半分は合っています。しかし書き戻す前に解くので、そこで割り込まれます。計算までを守る形を問われたなら、この組み合わせです。後ろが足りません。
- ウ ロック=時点(b),解除=時点(c):読んだ後に囲い、書く前に解くとしています。始めも終わりも、どちらも内側に寄っています。読むところも書くところも、囲いの外に出てしまいます。最も狭い囲いを問われたなら、この組み合わせです。二か所ともまずい形です。
- エ ロック=時点(b),解除=時点(d):読んだ後に囲い、最後の時点で解くとしています。終わりは正しいので、こちらも半分は合っています。しかし読むところが囲いの外に残ってしまいます。書き戻しだけを守る形を問われたなら、この組み合わせです。前が足りません。
関連用語
- 排他制御同じデータを同時に更新しても、矛盾が起きないようにする仕組みです。
- トランザクションデータベースへの一連の処理をひとまとめにした単位のこと。
- 組合せいくつかの中から、向きや順を区別せずに何個かを選ぶ選び方の数です。
出典:平成25年度 秋期 ITパスポート試験(特別措置試験) 問67(改変:原典の図表をテキストに書き起こした)
解説は当サイト独自のもので、IPA(独立行政法人情報処理推進機構)とは関係ありません。
関連問題
- 令和8年度 問56:
チェックポイントの 説明 (トランザクション) - 令和7年度 問61:
トランザクションに 関する 記述 (トランザクション) - 令和6年度 問74:
トランザクション 処理に 関する 記述 (排他制御) - 令和5年度 問66:
コミットの 説明 (排他制御) - 令和2年度 10月 (特別措置試験) 問64:
DBMSに 関する 問題 (排他制御)
同じ分野の問題
誤りを見つけたら報告する