平成20年度 技術士第一次試験問題【専門科目】
【16】情報工学部門
W−11
2つの資源A、Bがあり、ともに排他的にアクセスする必要がある。そのため、
それぞれの資源に対応した排他ロックa、b を用いるものとする。2つのプロセス
X、Yが、それぞれ次の順序で実行している場合、@〜Dの実行順序のうち、
デッドロックが起きるものはどれか。なお、選択肢の矢印は、時間的な処理の
推移を意味する。

   プロセスX             プロセスY
 ↓X1: ロックaを確保    ↓Y1: ロックbを確保
 ↓X2: ロックbを確保    ↓Y2: ロックaを確保
 ↓X3: 資源A、Bにアクセス ↓Y3: 資源 A、Bにアクセス
 ↓X4: ロックbを解放    ↓Y4: ロックaを解放
 ↓X5: ロックaを解放    ↓Y5: ロックbを解放


 @ X1→Y1→Y2→X2
 A X1→X2→Y1→Y2
 B X1→X2→Y1→X3→Y2
 C X1→X2→X3→Y1→Y2
 D X1→X2→X3→X4→Y1



【正解】 @

@
X1: Aを確保
Y1: Bを確保
Y2: Aを確保しようとして解除待ち。 
X2: Bを確保しようとして解除待ち。
 ⇒
Y2とX2でデッドロックが発生する。

A
X1: Aを確保
X2: Bを確保
Y1: Bを確保しようとして解除待ち
⇒ Y2はY1が終了するまで実行されない。

B
X1: Aを確保
X2: Bを確保
Y1: Bを確保しようとして解除待ち
X3: 資源A、Bにアクセス
 ⇒Y2はY1が終了するまで実行されない。

C
X1: Aを確保
X2: Bを確保
X3: 資源A、Bにアクセス
Y1: Bを確保しようとして解除待ち
 ⇒Y2はY1が終了するまで実行されない。

D
X1: Aを確保
X2: Bを確保
X3: 資源A、Bにアクセス
X4: 資源Bを解放
Y1: Bを確保
 ここまでスムーズに処理される。


EXCELのマクロのご相談なら ファーストマクロ 



W−10 目次 W−12
ファーストマクロ TOPページ