ITパスポート試験 過去問解説

排他制御とは?ITパスポート試験 2009年 (平成21年 春期) 問82を解説

ITパスポート試験 2009年 (平成21年 春期) 問82は、排他制御に関する理解を問う問題です。検索から入っても、問題文、選択肢、正解、解説、各選択肢がなぜ違うかをこのページだけで確認できます。

問題文

データDを更新する二つの処理A,Bが,①→③→②→④のタイミングで実行された場合,Dの値は幾らになるか。ここで,Dの初期値は2とする。 [図: 実行タイミング] 処理A: ① Dを読み込み,3倍する。 ② ①の結果を,Dに書き込む。 処理B: ③ Dを読み込み,5を加える。 ④ ③の結果を,Dに書き込む。

この問題の出題ポイント

  • 排他制御の定義だけでなく、問題文中の条件がどの選択肢に当てはまるかを確認する。
  • テクノロジ系分野では、用語の目的・主体・責任範囲の違いが選択肢で問われやすい。
  • 関連タグ: 排他制御、図表問題。

選択肢

  1. 6
  2. 7正解
  3. 11
  4. 21

正解

: 7

解説

正解はイ。並行処理での競合更新の典型問題。初期値D=2。①処理AがDを読み込み(2)3倍して内部に保持(6)→③処理BがDを読み込み(まだ2)5加えて内部に保持(7)→②処理Aが6をDに書き込み(D=6)→④処理Bが7をDに書き込み(D=7)。最終値=7。後の書き込みが勝つ(ロストアップデート問題)。排他制御の必要性を示す問題.

なぜ他の選択肢が違うのか

  • 処理Aだけが完了した場合の値(2×3=6)。実際は処理Bが処理Aの書き込み後に独自に計算した結果を書き込むため,処理Aの結果は上書きされ最終値ではない(ロストアップデートの被害側).

  • イ(正解)

    正解。①でA読込2→6,③でB読込2(まだA未書込)→2+5=7,②でA書込6,④でB書込7。最終D=7。処理Aの結果が処理Bに上書きされる(ロストアップデート).

  • 両処理が直列に動いて累積した値(2×3+5=11または2+5を3倍などの計算ミス)。並行処理でDを読み直さず累積するとこうなるが本問は読込が独立.

  • (2+5)×3=21の計算ミス。並行処理ではAとBが独立に元の値2を読み込んで処理するため,累積関数のような計算にはならない.

解き方の整理

排他制御の問題では、選択肢のキーワードだけで判断せず、問題文が示す条件と正解選択肢の説明が一致しているかを見ます。誤答選択肢は、似た用語を混ぜる、主体を入れ替える、目的や範囲を広げすぎる、という形で作られることが多いため、選択肢別解説まで確認しておくと復習効率が上がります。

関連用語

関連問題

前後の問題

2009年 (平成21年 春期) の関連する問題

復習を続ける

間違えた問題、苦手タグ、模試履歴を保存して復習する導線を用意しています。広告なしPro、弱点分析、復習リマインダーは段階的に提供予定です。