データDを更新する二つの処理A,Bが,①→③→②→④のタイミングで実行された場合,Dの値は幾らになるか。ここで,Dの初期値は2とする。 [図: 実行タイミング] 処理A: ① Dを読み込み,3倍する。 ② ①の結果を,Dに書き込む。 処理B: ③ Dを読み込み,5を加える。 ④ ③の結果を,Dに書き込む。
イ. 7
正解はイ。並行処理での競合更新の典型問題。初期値D=2。①処理AがDを読み込み(2)3倍して内部に保持(6)→③処理BがDを読み込み(まだ2)5加えて内部に保持(7)→②処理Aが6をDに書き込み(D=6)→④処理Bが7をDに書き込み(D=7)。最終値=7。後の書き込みが勝つ(ロストアップデート問題)。排他制御の必要性を示す問題.
ITパスポート 2009年 (平成21年 春期) の過去問一覧へ戻る・問82