第3問  平成29年秋期問2

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
がけっぷち受験さん  
(No.1)
  設問3についてですが、なぜ選択肢のイではデッドロックが生じないのかがわかりません。
誰か丁寧に教えてくださると助かります!
2022.11.04 21:51
nsさん 
FE シルバーマイスター
(No.2)
逆にお聞きしますが、どのような順で動作したらデッドロックが生じるとお考えですか?

例えば選択肢のエでは

p5        p6
y1確保
          y2確保
------------------
y2確保
          y1確保

のような順で動作すると---の部分でお互いが解放を待つ状態、すなわちデッドロックになってしまいます。
2022.11.05 00:17
jjon-comさん 
FE ゴールドマイスター
(No.3)
https://www.fe-siken.com/kakomon/29_aki/pm02.html

ではこう解説されています。

> デッドロックとは、共有資源を使用する2つ以上のプロセスが、
> 互いに相手プロセスの必要とする資源を排他的に使用していて、
> 互いのプロセスが相手の使用している資源の解放を待っている状態です。

[プロセスp5の共有データに対する確保と解放の順序] が
①y1の確保,②y2の確保,③y2の解放,④y1の解放  であり、

プロセスp6の共有データに対する確保と解放の順序 が
【選択肢イ】⑤y1の確保,⑥y2の確保,⑦y1の解放,⑧y2の解放  だとします。

①の後に⑤が実行された場合、
資源y1の解放を待っているのはプロセスp6の方だけであり、
プロセスp5は相手が使用中の資源の解放を待ってはいません。
つまり、
> 互いのプロセスが相手の使用している資源の解放を待っている状態
には該当しません。

リンク先の解説文はさらにこう続いています。

> デッドロックの発生する可能性があるのは、
> 2つのプロセスで互いに使用する資源の占有順序が「逆順」のときです。
> これを踏まえると、プロセスp5の資源占有順序「y1→y2」とは
> 逆の占有順序「y2→y1」になっている「エ」と「オ」に対象を絞れます。
2022.11.05 00:34
がけっぷち受験さん  
(No.4)
なるほど。
完全に読解力不足と、午前の内容もしっかりと理解できていないということでした。
お二人とも回答いただきありがとうございました
2022.11.05 10:13

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop