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

排他制御とは?ITパスポート試験 2013年 (平成25年 秋期) 問67を解説

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

問題文

あるトランザクション処理は,①共有領域から値を読み取り,②読み取った値に数値を加算し,③結果を共有領域に書き込む手順からなっている。複数のトランザクションを並列に矛盾なく処理するためには,トランザクション処理のどの時点で共有領域をロックし,どの時点でロックを解除するのが適切か。 時間順: 時点(a) ① 共有領域から値を読み取り 時点(b) ② 読み取った値に数値を加算 時点(c) ③ 結果を共有領域に書き込む 時点(d)

この問題の出題ポイント

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

選択肢

  1. ロック:時点(a), 解除:時点(c)
  2. ロック:時点(a), 解除:時点(d)正解
  3. ロック:時点(b), 解除:時点(c)
  4. ロック:時点(b), 解除:時点(d)

正解

: ロック:時点(a), 解除:時点(d)

解説

共有資源を読み取って加工し書き戻す一連の処理は,他のトランザクションが間に割り込むと矛盾(Lost Update問題等)が生じます。これを防ぐため,読み取り前にロックを取得し,書き込み完了後にロックを解除する範囲が必要です。よってロックは時点(a)で取得し,解除は時点(d)です。データベースの2相ロック(2PL:Two-Phase Locking)の基本概念で,排他制御の原則です。範囲を狭めると不整合が発生するため,処理全体を排他制御で囲む必要があり,これがトランザクションのACID特性の一部を支えます。

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

  • ロック解除を時点(c,書き込み完了直後)にすると,書き込みからコミットまでの微小時間に他処理が読みに来る可能性があり,完全な整合性確保には不十分。読み取りから書き込み完了まで全体を囲む必要があるため誤り。

  • イ(正解)

    正解。読み取り前(時点a)にロックし,書き込み完了後(時点d)に解除する範囲が正しい。トランザクション全体を排他制御で囲み,Lost Update問題を防ぐのが2相ロックの基本パターン。

  • 読み取り後(時点b)にロックを取得すると,その間の読み取り値が他処理の変更を反映していない不整合データになる可能性があり誤り。読み取り前にロックが必要で,順序が逆。

  • 読み取り後(時点b)のロックでは,読み取り段階で他処理が値を変更している可能性があり不整合を防げないため誤り。読み取り含めて排他が必要で,読み取り後のロックでは手遅れ。

解き方の整理

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

関連用語

関連問題

前後の問題

2013年 (平成25年 秋期) の関連する問題

復習を続ける

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