基本情報技術者試験 過去問解説

ロックとは?基本情報技術者試験 令和元年度 秋期 午前 問29を解説

基本情報技術者試験 令和元年度 秋期 午前 問29は、ロックに関する理解を問う問題です。検索から入っても、問題文、選択肢、正解、解説、各選択肢がなぜ違うかをこのページだけで確認できます。

問題文

2相ロッキングプロトコルに従ってロックを獲得するトランザクション A, B を図のように同時実行した場合に,デッドロックが発生しないデータ処理順序はどれか。ここで,read と update の位置はアプリケーションプログラムでの命令発行時点を表す。また,データ W への read は共有ロックを要求し,データ X, Y, Z への update は各データへの専有ロックを要求する。 A: read W → update X → update Y → update Z B: ①→②→③→④
2相ロックトランザクションA,Bの並行実行図。A:read W→update X→update Y→update Z、Bは①〜④の処理順を選択。

この問題の出題ポイント

  • ロックの定義だけでなく、問題文中の条件がどの選択肢に当てはまるかを確認する。
  • 関連タグ: ロック、トランザクション、プロトコル。

選択肢

  1. ①read W, ②update Y, ③update X, ④update Z
  2. ①read W, ②update Y, ③update Z, ④update X
  3. ①update X, ②read W, ③update Y, ④update Z正解
  4. ①update Y, ②update Z, ③update X, ④read W

正解

: ①update X, ②read W, ③update Y, ④update Z

解説

デッドロック回避には A・B が同じ順序でロックを取得することが鍵。Aが X→Y→Z の順なので Bも X(または Wのみ共有)を先に取得する順序ならデッドロックしない。ウは X 先取得で A は X 待ちになり、B が完了後 A が進む。

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

  • A は X→Y、B は Y→X の順でロック獲得を試み相互待ちでデッドロック。

  • A は X→Y→Z、B は Y→Z→X で循環待ちでデッドロック。

  • ウ(正解)

    B が X→W→Y→Z で進む間、A は W で読みロック待ち→B完了後にA進行。デッドロックなし=正解。

  • A は X→Y→Z、B は Y→Z→X→W で X と Y の循環待ちでデッドロック。

解き方の整理

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

関連用語

関連問題

前後の問題

令和元年度 秋期 午前 の関連する問題

復習を続ける

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