過去問ハブ🔥 0日
OS・ネットワーク・データベースプロセス管理・スケジューリング・デッドロック難易度 標準4 / 50

大きさ N の有限バッファを用いる生産者・消費者問題を、空き領域の数を表すセマフォ empty と、格納済みデータの数を表すセマフォ full で解く。初期値の組合せとして適切なものはどれか。

選択肢をタップすると、その場で答え合わせできます

正解と解説を見る

正解 Bempty は N、full は 0

解説

正解は「empty は N、full は 0」です。最初はバッファが空なので、空き領域は N 個、格納済みのデータは0個です。生産者はデータを入れる前に P(empty) で空きを確保し、入れた後に V(full) で格納数を増やします。消費者は P(full) でデータがあるのを確かめてから取り出し、V(empty) で空きを増やします。こうして、満杯なら生産者が、空なら消費者が待たされます。「empty は 0、full は N」は最初から満杯の場合です。「empty は N、full は N」では、空のバッファから消費者が取り出そうとしてしまいます。「empty は 1、full は 1」は N を反映していません。バッファ操作自体の相互排除には、別に初期値1のセマフォを用います。

  • #セマフォ
  • #生産者・消費者問題

この調子でOS・ネットワーク・データベースを続けて解く

▶ この科目の連続演習へ進む(10問)

この問題の分野を深く学ぶなら

PR情報工学・理系基礎の教科書を探す

詳細を見る

OS・ネットワーク・データベースの問題一覧へ戻る

「プロセス管理・スケジューリング・デッドロック」の関連問題