パスポイ

ある在庫管理システムは,複数の入力を同時並行して処理し,在庫数を更新しているが… ITパスポート 平成24年度秋期80

テクノロジ系

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

平成24年度秋期 問80の図
  • 70
  • 100
  • 120
  • 150
正解と解説を見る

正解

150

このシステムは排他制御(ロック)を行っていないため、複数の処理がほぼ同時に同じ在庫数(100)を読み込み、互いの更新結果を反映しないまま独自の計算結果を書き込んでしまう。その結果、先に書き込まれた処理の更新が後から書き込まれた処理によって上書きされて消えてしまう「更新の消失(ロストアップデート)」が発生し、①〜④の順で処理すると最終的な在庫数は150になる。排他制御があれば一方の処理が完了するまで他方を待たせられ、両方の増減が正しく反映されるが、この例ではそれができていない点が問題である。70や100、120は、両方の更新が正しく反映された場合や別の上書きのされ方を仮定した場合に生じる値であり、実際の処理順序とは一致しない。

出典:平成24年度 秋期 ITパスポート試験 問80

問題文および選択肢は独立行政法人情報処理推進機構(IPA)が公開する試験問題に基づいています。著作権はIPAに帰属します。解説は当サイトが独自に作成したものです。

解いて競うと、毎月1位にAmazonギフト券5,000円分

無料登録すると過去問演習のスコアが月間ランキングに記録されます。1回10問・スマホでサクッと。