応用情報技術者平成28年秋期 午前19
タイムクウォンタムが2秒のラウンドロビン方式で処理されるタイムシェアリングシステムにおいて,プロセス1~3が逐次生成されるとき,プロセス2が終了するのはプロセス2の生成時刻から何秒後か。ここで,各プロセスはCPU処理だけで構成され,OSのオーバヘッドは考慮しないものとする。また,新しいプロセスの生成と中断されたプロセスの再開が同時に生じた場合には,新しく生成されたプロセスを優先するものとする。
1、ラウンドロビンは、
実行可能状態となった順に従ってタスクに一定のCPU時間(タイムクウォンタム)を与えていくタスクスケジューリング方式です。一定時間内に処理が終わらなかったタスクは、実行可能状態の待ち行列の最後尾に移され、CPU使用権が与えられる順番を待つことになります。
・ラウンドロビン (英: Round-Robin) とは、様々な場面で用いられるが、大抵の場合において「何かの役割・出番をたくさんの物事・人員で交替しあう」というような意味で用いる。 例えば、ラウンドロビンパーティとは参加者各自の習慣で小さなパーティを一つずつ参加者がまわって歩くようなパーティのやり方をさす。
例:DNSラウンドロビン
DNSの負荷分散機能です。具体的には、以下のように同じホスト名に対して複数のAレコードを設定することで、アクセスを複数のコンピュータに(単純に順繰りに)振り分けます。
www IN A 200.x.y.1
www IN A 200.x.y.2
www IN A 200.x.y.3
2、ラウンドロビン方式のタスクスケジューリングでは、
CPUで実行されるプロセスと共に実行待ち行列の状態も考える必要があります。
ラウンドロビンでは実行待ち行列をキュー構造(FIFO)で管理するため、普通に考えれば生成されたばかりのプロセス3は一旦待ち行列の最後尾に配置され、先頭のプロセス1にCPU使用権が与えられるとも考えられます。
しかし、質問にこの条件を注意してくださいね:
「新しいプロセスの生成と中断されたプロセスの再開が同時に生じた場合には,新しく生成されたプロセスを優先するものとする。」
参照:
https://qiita.com/lymansouka2017/items/af488494ad2abe8d3a28