2相ロッキングにおけるデッドロックを回避する処理順序

ウの順序ではBがXを確保した後Wを共有ロックでき、Aとの循環待ちが生じないためウです。 ウではBが最初にXを専有し、AはX待ちになります。しかしBのW読出しはAの共有ロックと両立するので、BはY、Zまで進んで完了でき、ロック解放後にAも再開できます。 AはWの共有ロックを得た後、Xの専有ロックを要求する。 ウではBが先にXを専有するが、次のW共有ロックはAの共有ロックと両立する。 BがY、Zまで完了してロックを解放できるので循環待ちにならず、ウが正しい。

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

問題画像
出典令和元年度 秋期 基本情報技術者試験 午前 問29

選択肢

①

②

③

④

ア

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