2019年12月19日

令和元年度秋期 基本情報技術者試験問題 問29

問29

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

令和元年度秋期 基本情報技術者試験問題 問29

   ┌────┬────┬────┬────┐
   │  @  │  A  │  B  │  C  │
 ┌─┼────┼────┼────┼────┤
 │ア│ readW │updateY│updateX│updateZ│
 ├─┼────┼────┼────┼────┤
 │イ│ readW │updateY│updateZ│updateX│
 ├─┼────┼────┼────┼────┤
 │ウ│updateX│ readW │updateY│updateZ│
 ├─┼────┼────┼────┼────┤
 │エ│updateY│updateZ│updateX│ readW │
 └─┴────┴────┴────┴────┘






正解


解説

デッドロックは、例えば、今、処理Aが資源Xを使っていて、次に資源Yを使おうとしている一方で、処理Bは資源Yを使っていて、次に資源Xを使おうとしている時、処理Aも処理Bも互いに相手の資源解除を待ち続けていて、固まってしまったようになる現象のことである。

問題の場合、データを専有ロックした後は、トランザクションが終了するまで開放しないということが前提となる。

ア A:readW → updateX、B:readW → updateY の処理の後、AはデータYを専有ロックしようとしている一方で、BはデータXを専有ロックしようとしている時、デッドロックが発生する。

イ A:readW → updateX、B:readW → updateY → updateZ の処理の後、AはデータYを専有ロックしようとしている一方で、BはデータXを専有ロックしようとしている時、デッドロックが発生する。

ウ 正しい。専有するデータの順番を同じにするとデッドロックを避けることができる。

エ A:readW → updateX、B:updateY → updateZ の処理の後、AはデータYを専有ロックしようとしている一方で、BはデータXを専有ロックしようとしている時、デッドロックが発生する。

posted by ファーストマクロ at 21:52| Comment(0) | R01秋基本情報技術者
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: