基本情報技術者試験 基本情報技術者試験 令和元年度 秋期 午前 午前 問29: 2相ロッキングプロトコルに従ってロックを獲得するトランザクション A, B を図のように同時実行した場合に,デッドロックが発生しないデータ処理順序はどれか。ここ

基本情報技術者試験 令和元年度 秋期 午前
Q 2929 / 80
に従ってロックを獲得する 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は①〜④の処理順を選択。
この問の正解率:45.74%(599件)
この問題の本文・選択肢・正解・解説(展開)

問題本文

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

選択肢

  • .①read W, ②update Y, ③update X, ④update Z
  • .①read W, ②update Y, ③update Z, ④update X
  • .①update X, ②read W, ③update Y, ④update Z
  • .①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 の循環待ちでデッドロック。

基本情報技術者試験 令和元年度 秋期 午前過去問一覧へ戻る・問29