過去問ドリル

平成21年度 春期 ITパスポート試験 問82

テクノロジ/データベース

データ D を更新する二つの処理 A,B が,①→③→②→④のタイミングで実行された場合,D の値は幾らになるか。ここで,D の初期値は 2 とする。 処理 A:①D を読み込み,3 倍する。②①の結果を,D に書き込む。 処理 B:③D を読み込み,5 を加える。④③の結果を,D に書き込む。 (実行タイミングは①→③→②→④の順に,時間とともに進む。) (注:本サイトでは原問題の図を文字表記に変換しています)

出典:平成21年度 春期 ITパスポート試験 問82

正解:イ

解説

処理の順番どおりに追いかけます。①で A が D(=2)を読み込んで 3 倍し,6 を得ます。③で B が,まだ書き換えられていない D(=2)を読み込んで 5 を加え,7 を得ます。②で A が 6 を D に書き込み,④で B が 7 を D に書き込むので,最後の D は 7 になります。A の更新が B によって上書きされて失われており,このような問題を防ぐために排他制御が必要になります。

下線の用語は 用語集 で意味を確認できます。

選択肢ごとの解説

  • ア誤り。6 は②で A が書き込んだ値ですが,その後④で B が 7 を書き込むので,最終的な D の値にはなりません。
  • イ正しい。④の B の書き込み(7)が最後に行われるため,D は 7 になります。A が書き込んだ 6 は上書きされます。
  • ウ誤り。11 は D=6 に 5 を加えた値ですが,B は③の時点で更新前の D(=2)を読み込んでいるため,この値にはなりません。
  • エ誤り。21 は D=7 を 3 倍した値などで,このタイミングの実行では得られません。
ITパスポートの過去問を演習モードで解く