今回は平成29年秋 午後 問2:ソフトウェアの問題です。 プロセスの排他制御が題材ですね。
レクチャーを実施するに至った経緯は下記を参照ください。 www.it-enjoy.com
H29秋 午後 問2
設問1
難なく正解していました。 読み込みと書き込みを分けて考えるのがポイントですね。 あとは共有データの100から30増やしたり、50減らしたりすれば良いです。
設問2
空欄a, b
問題文の条件は下記のとおりですが、どうも腑に落ちないです。
セマフォ変数の値 | 共有データの状態 |
---|---|
0 | いずれかのプロセスに確保されている |
1 | 解放されている |
彼はセマフォ変数が「1」のときに「確保されている」と思い込んでおり、 逆の回答をして不正解になりました。
ちなみに私も同じように思って間違えました。 「1」のときに確保されている方が自然なような気がしますが、 一般的な実装なのでしょうかね。
設問3
「デッドロックって何ですかね・・・?」
身近な例が思いつかなかったので、以下のように説明しました。 この状況が発生する選択肢が正解です。
- お腹が空いた人がAさんとBさんの2人と、2種類のカップヌードルがある
- Aさんはシーフード味が欲しい
- Bさんはカレー味が欲しい
- しかし、お互いに好みとは逆の味を確保してしまった
- でもお腹が空いているので、自分が確保したカップヌードルは手放さない
- 結果、何も進まない
しょうもない例でしたが、正解してもらえたので良かったです。
回答
設問1 「ウ」
設問2 a: 「ウ」b: 「エ」
設問3 「エ」