基本情報トップに戻る
練習問題難易度: 標準2019年度

基本情報技術者 過去問練習問題 第29問

問題

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

の図表

選択肢

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

正解

3. ①update X ②read W ③update Y ④update Z

詳しい解説を見る

解説

トランザクション A は read W → update X → update Y → update Z の順にロックを取得し、2 相ロックなのでコミットまで保持し続けます。デッドロックは、A と B が互いに相手の保持するロックを待ち合う循環待ちが起きると発生します。ア・イ・エの順序では、ある時点で A が Y を待ち B が X を待つ(あるいはその逆)という相互待ちが生じ、デッドロックになります。ウ(update X → read W → update Y → update Z)の場合は、B が先に X を確保して処理を進め、A が X を待つ間に B が完了してロックを解放するため循環待ちが起きず、デッドロックを回避できます。よってウが正解です。(出典: 令和元年度 秋期 基本情報技術者試験 午前 問29)

一問一答

科目A 180問+科目B 60問

練習問題の関連問題

この調子で演習を続けよう

スキマ資格では基本情報の全2398問を分野別・難易度別に体系的に学習できます。基本情報技術者は科目A(広く浅く)と科目B(プログラミング・アルゴリズム)の両輪での対策が必要です。