ITパスポート 平成24年度 秋期 特別措置試験 問80
データベース
排他制御に関する問題
ある在庫管理システムは,複数の入力を同時並行して処理し,在庫数を更新しているが,排他制御は行っていない。ある時点での在庫数が100であったとき,入力された二つの入力 A,B に応じて,図に示す処理が ① → ② → ③ → ④ の順序で実行された場合,処理④が終了した時点の在庫数は幾つになるか。
〔図(書き起こし)〕在庫管理システムの中に2つの処理内容が在り,どちらも“在庫数”を読み書きする。
・入力A の処理内容 … ①“在庫数”を読み込み,入庫数の50を加える。/④結果を“在庫数”に書き込む。
・入力B の処理内容 … ②“在庫数”を読み込み,出庫数の30を引く。/③結果を“在庫数”に書き込む。
- ア 70
- イ 100
- ウ 120
- エ 150
答えと解説
✓ これが正解エ 150
解説
後から書き戻した側の値が、先に書いた側の値を上書きします。
同じ値を二つの処理が同時に読み書きする場面です。守りの仕組みを置いていないので、互いを待たせません。最初の処理が在庫の値を読み込み、読んだ値の百に五十を足して百五十を手元に持ちます。ところが書き戻す前に、もう一方が同じ値を読みます。読んだ値はまだ百のままで、そこから三十を引きます。先に書き戻すのはその七十のほうで、最後に、手元に百五十を持っていた側が書き戻します。だから七十は上書きされ、残るのは百五十になります。この数を挙げた選択肢が正解で、片方の更新が消えています。原因は、読んだ時点で古い値をつかんでいたことです。守りの仕組みが無いと、後から書いた側だけが残ります。シラバスも、同時実行制御と排他制御を並べて挙げています。
ほかの選択肢の解説
- ア 70:七十という値を挙げた選択肢は、引く側だけが残ったと考えた形です。確かに七十はいったん書き戻されますが、その後にもう一方が書き戻すので、最後に上書きされます。書き戻す順が逆です。
- イ 100:百という値を挙げた選択肢は、足した分と引いた分が打ち消し合う形に見えます。ところが二つの処理は同じ古い値を読んでいて、打ち消し合うのは順に処理した場合です。同時に読んだことが原因で、前提が違います。
- ウ 120:百二十という値を挙げた選択肢は、足して引いた結果を正しく積んだ値で、守りの仕組みがあればこの値になります。ところが設問は置いていないと断っているので、あるべき値ではあっても、設問の答えではありません。
関連用語
- 排他制御同じデータを同時に更新しても、矛盾が起きないようにする仕組みです。
出典:平成24年度 秋期 ITパスポート試験(特別措置試験) 問80(改変:原典の図表をテキストに書き起こした)
解説は当サイト独自のもので、IPA(独立行政法人情報処理推進機構)とは関係ありません。
関連問題
- 令和元年度 秋期 (特別措置試験) 問64:
排他制御の 目的 (排他制御) - 令和6年度 問74:
トランザクション 処理に 関する 記述 (排他制御) - 令和5年度 問66:
コミットの 説明 (排他制御) - 令和2年度 10月 (特別措置試験) 問64:
DBMSに 関する 問題 (排他制御) - 令和元年度 秋期 (特別措置試験) 問87:
関係 データベースに 関する 問題 (排他制御)
同じ分野の問題
誤りを見つけたら報告する