ITパスポート試験 ITパスポート 2012年 (平成24年 秋期)80: ある在庫管理システムは,複数の入力を同時並行して処理し,在庫数を更新しているが,排他制御は行っていない。ある時点での在庫数が100であったとき,入力された二つの

ITパスポート 2012年 (平成24年 秋期)
Q 8080 / 100
ある在庫管理システムは,複数の入力を同時並行して処理し,在庫数を更新しているが,は行っていない。ある時点での在庫数が100であったとき,入力された二つの入力A,Bに応じて,図に示す処理が ① → ② → ③ → ④ の順序で実行された場合,処理④が終了した時点の在庫数は幾つになるか。 [処理内容] 入力A: ①"在庫数"を読み込み,入庫数の50を加える。 ④結果を"在庫数"に書き込む。 入力B: ②"在庫数"を読み込み,出庫数の30を引く。 ③結果を"在庫数"に書き込む。
この問の正解率:52.94%(1,277件)
この問題の本文・選択肢・正解・解説(展開)

問題本文

ある在庫管理システムは,複数の入力を同時並行して処理し,在庫数を更新しているが,排他制御は行っていない。ある時点での在庫数が100であったとき,入力された二つの入力A,Bに応じて,図に示す処理が ① → ② → ③ → ④ の順序で実行された場合,処理④が終了した時点の在庫数は幾つになるか。 [処理内容] 入力A: ①"在庫数"を読み込み,入庫数の50を加える。 ④結果を"在庫数"に書き込む。 入力B: ②"在庫数"を読み込み,出庫数の30を引く。 ③結果を"在庫数"に書き込む。

選択肢

  • .70
  • .100
  • .120
  • .150

正解

. 150

解説

正解はエ(150).排他制御なしの並行更新で,初期在庫100に対し入力A(入庫50加算)と入力B(出庫30減算)が①→②→③→④の順で実行された場合の最終結果を求める.①Aが在庫100を読込み(100+50=150を後で書込み予定),②Bが在庫100を読込み(100-30=70を後で書込み予定),③Bが70を書込み,④Aが150を書込み.結果は最後に書込んだAの150が残り,Bの更新は失われる(ロストアップデート).排他制御の必要性を示す典型問題で,並行処理時の不整合の代表例となる.周辺概念とセットで覚えると本問の正解選択肢が即座に判断できる.

選択肢ごとの解説

  • .70は処理順序が①→④→②→③のような場合や,最終的にBの書込みが残る順序になった場合の値.設問の①②③④の順序では最後に④Aが150を書込むため70は残らない計算となり,処理順序の解釈を誤った場合の値.設問の主題と異なる領域の概念で答えにならない.
  • .100は処理が何も行われない場合の初期在庫値.実際には①②③④の処理がすべて実行されるため初期値のままにはならず,何らかの書込み(150または70)が反映される.処理を完全にスキップした場合の値で実際の結果ではない.用語の定義を取り違えやすい紛らわしい選択肢.
  • .120は単純に在庫100+50-30=120と排他制御ありの場合の計算結果.排他制御ありなら順次処理で120が正解だが,設問は排他制御なしで①②③④の競合更新があるため120にはならない.整合的処理の値で実際の結果と異なる.対象や目的が設問の条件と異なるため不適切.
  • .正解.排他制御なしで①②③④の順で実行されると,最後に書込まれた④Aの値150が在庫に残る.ロストアップデート(更新喪失)の典型例で,排他制御なしだと出庫30の更新が失われ実際の在庫と帳簿在庫が乖離する.選択肢の特徴を理解すれば即答できる典型問題.

ITパスポート 2012年 (平成24年 秋期)過去問一覧へ戻る・問80