技術士第一次試験 専門科目情報工学部門 R04
通常
試験時間: 00:00問題時間: 00:00
問題一覧
問題 10 / 35
出典: 令和4年度技術士第一次試験問題[専門科目情報工学部門] III-10オペレーティングシステム上で、 個の要素を持つバッファ(有限バッファ)を介して、複数の生産者と消費者が同期をとるプログラムを考える(生産者・消費者問題)。以下の 命令、 命令による計数セマフォを用いる。計数セマフォ は整数を値にとり、事象の発生を待つプロセスを登録するための待ち行列を とする。
| if then else 命令を実行したプロセスを に入れる fi; |
|
| if が空でない then からプロセス1つを取り出して実行可能にする else fi; |
生産者・消費者問題のプログラムで用いる計数セマフォ (生産者の相互排除)、(消費者の相互排除)、 と (「情報」の入ったバッファを制御する)を用意し、、 に初期化する。なお、 は 個の要素を持つバッファとし、、 は各々生産者が情報を入れる位置を示す値と、消費者が情報を取り出す位置を示す値を格納する。
| 生産者 | 消費者 |
|---|---|
| repeat 次の「情報」を生成する; ア; ; に情報を入れる; ; ; イ; until false; |
repeat ウ; ; から情報を取り出す; ; ; エ; 情報を処理する; until false; |
空欄 ア〜エ に入る値の組合せとして、最も適切なものはどれか。

①ア:P(e), イ:V(e), ウ:P(f), エ:V(f)
②ア:P(f), イ:V(f), ウ:P(e), エ:V(e)
③ア:P(e), イ:V(f), ウ:P(f), エ:V(e)
④ア:P(f), イ:V(e), ウ:P(e), エ:V(f)
⑤ア:P(e), イ:V(f), ウ:P(e), エ:V(f)
