オペレーティングシステム(全131問中48問目)

タイムクウォンタムが2秒のラウンドロビン方式で処理されるタイムシェアリングシステムにおいて,プロセス1~3が逐次生成されるとき,プロセス2が終了するのはプロセス2の生成時刻から何秒後か。ここで,各プロセスはCPU処理だけで構成され,OSのオーバーヘッドは考慮しないものとする。また,新しいプロセスの生成と中断されたプロセスの再開が同時に生じた場合には,新しく生成されたプロセスを優先するものとする。
19.png

出典:平成28年秋期 問19

  • 12
  • 14
  • 16
  • 17
正解 問題へ
分野:テクノロジ系
中分類:ソフトウェア
小分類:オペレーティングシステム
解説
ラウンドロビン方式のタスクスケジューリングでは、CPUで実行されるプロセスと共に実行待ち行列の状態も考える必要があります。
19a.png
「プロセス2の中断」と「プロセス3の生成」が同時に生じる6秒時点の部分だけ処理の流れを補足しておきます。

[5~6秒の間]
プロセス2が実行され、プロセス1は待ち行列の先頭に存在する。

[6秒時点]
① プロセス2の実行時間がタイムクォンタムに達したため、プロセス2が待ち行列の最後尾に移される。
② プロセス3が生成される。

[実行プロセスの決定]
設問には「新しいプロセスの生成と中断されたプロセスの再開が同時に生じた場合には,新しく生成されたプロセスを優先するものとする」という条件があり、プロセス3の生成とプロセス1の再開が同時に生じる6秒時点はちょうどこの条件に合致する。このため新しく発生した「プロセス3」にCPU使用権が割り当てられることになる

プロセス2の生成は開始から3秒後、終了は開始から17秒後なので、その差である14秒が生成から終了までに要した時間になります。したがって「イ」が正解です。


ラウンドロビンでは実行待ち行列をキュー構造(FIFO)で管理するため、普通に考えれば生成されたばかりのプロセス3は一旦待ち行列の最後尾に配置され、先頭のプロセス1にCPU使用権が与えられるとも考えられます。しかし、この設問では待ち行列の存在が明示されているわけではなく、さらに出題者がわざわざ特定の条件をつけて実行順を指定をしていることから、設問の文章をそのまま解釈してプロセス3を実行するとしました。

Pagetop