平成24年度秋期 ITパスポート 問80 解説
ある在庫管理システムは,複数の入力を同時並行して処理し,在庫数を更新しているが,排他制御は行っていない。ある時点での在庫数が100であったとき,入力された二つの入力A,Bに応じて,図に示す処理が①→②→③→④の順序で実行された場合,処理④が終了した時点の在庫数は幾つになるか。

- ア70
- イ100
- ウ120
- エ150
答えを見る
正解 エ150
要点排他制御なしだと後の書込みで先の更新が消える
解説
処理を順に追います。
- ①入力Aが在庫数100を読み込み,50を加えて150(まだ書き込まない)
- ②入力Bが在庫数100を読み込み,30を引いて70
- ③入力Bが70を書き込む → 在庫数70
- ④入力Aが150を書き込む → 在庫数150
よって処理④終了時の在庫数は150でエです。本来は100+50−30=120になるべきですが,排他制御がないため入力Bの更新が失われます(ロストアップデート)。
ア(70)は③時点の値,ウ(120)は排他制御を行った場合の正しい値です。