技術を楽しもう!

IT(ネットワーク)業界を中心に、仕事や趣味等、色々な技術を記録します。

基本情報対策を友人にレクチャー(第4回)②

https://www.pakutaso.com/shared/img/thumb/airbGFVS3638_TP_V.jpg

今回は平成29年秋 午後 問2:ソフトウェアの問題です。 プロセスの排他制御が題材ですね。

レクチャーを実施するに至った経緯は下記を参照ください。 www.it-enjoy.com

H29秋 午後 問2

f:id:takashi-tobey:20200312130143p:plain
H29秋午後問2-1

f:id:takashi-tobey:20200312130201p:plain
H29秋午後問2-2

f:id:takashi-tobey:20200312130214p:plain
H29秋午後問2-3

f:id:takashi-tobey:20200312130226p:plain
H29秋午後問2-4

設問1

難なく正解していました。 読み込みと書き込みを分けて考えるのがポイントですね。 あとは共有データの100から30増やしたり、50減らしたりすれば良いです。

設問2

空欄a, b

問題文の条件は下記のとおりですが、どうも腑に落ちないです。

セマフォ変数の値 共有データの状態
0 いずれかのプロセスに確保されている
1 解放されている

彼はセマフォ変数が「1」のときに「確保されている」と思い込んでおり、 逆の回答をして不正解になりました。

ちなみに私も同じように思って間違えました。 「1」のときに確保されている方が自然なような気がしますが、 一般的な実装なのでしょうかね。

設問3

デッドロックって何ですかね・・・?」

身近な例が思いつかなかったので、以下のように説明しました。 この状況が発生する選択肢が正解です。

  • お腹が空いた人がAさんとBさんの2人と、2種類のカップヌードルがある
  • Aさんはシーフード味が欲しい
  • Bさんはカレー味が欲しい
  • しかし、お互いに好みとは逆の味を確保してしまった
  • でもお腹が空いているので、自分が確保したカップヌードルは手放さない
  • 結果、何も進まない

しょうもない例でしたが、正解してもらえたので良かったです。

回答

設問1 「ウ」
設問2 a: 「ウ」b: 「エ」
設問3 「エ」