データDを更新する二つの処理A、Bが、①→③→②→④のタイミングで実行された場合、Dの値は幾らになるか。ここで、Dの初期値は2とする。

排他制御がないと後の書込みが先の更新を消してしまう

ITパスポート2009年度 春期82/データベース / トランザクション処理

処理Aと処理Bの実行タイミング図。処理A〔処理内容〕①Dを読み込み、3倍する。②①の結果を、Dに書き込む。処理B〔処理内容〕③Dを読み込み、5を加える。④③の結果を、Dに書き込む。実行順は①→③→②→④。
処理Aと処理Bの実行タイミング図。処理A〔処理内容〕①Dを読み込み、3倍する。②①の結果を、Dに書き込む。処理B〔処理内容〕③Dを読み込み、5を加える。④③の結果を、Dに書き込む。実行順は①→③→②→④。

選択肢

正解と解説

正解: 7

①で処理AがD=2を読み、3倍の6を計算する。次に③で処理Bも更新前のD=2を読み、5を加えて7を得る。②で処理Aが6を書き込むが、④で処理Bが自分の計算結果7を上書きするため、最終的なDは7となる。これは排他制御をしないと先の更新が失われる「更新の消失」の典型例である。

選択肢ごとの解説

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

同じ分野の他の問題

最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。