【基本・応用情報技術者】ラウンドロビン方式
スポンサーリンク
こんにちは。たろすです。
今回はスケジューリングの方式のひとつ、ラウンドロビン方式について説明をします。
スケジューリングの説明は以下の記事でしています。
https://talosta.hatenablog.com/entry/schedulingtalosta.hatenablog.com
ラウンドロビン方式
プロセスにCPUを割り当てられる時間(=タイムクォンタム)が決められており、タイムクォンタム分実行したら待ち行列の最後尾に並べる方式です。
ラウンドロビン方式は基本情報技術者試験や応用情報技術者試験でよく問われます。
なぜかというと、他の方式と比べると複雑だからです。
なので例題を解きながら詳しく見ていきましょう。
例題
問題
タイムクウォンタムが2秒のラウンドロビン方式で処理されるタイムシェアリングシステムにおいて,プロセス1~3が逐次生成されるとき,プロセス2が終了するのはプロセス2の生成時刻から何秒後か。ここで,各プロセスはCPU処理だけで構成され,OSのオーバヘッドは考慮しないものとする。また,新しいプロセスの生成と中断されたプロセスの再開が同時に生じた場合には,新しく生成されたプロセスを優先するものとする。
プロセス | 生成時刻 | 単独で処理された場合の時間 |
1 | 0秒後 | 5秒 |
2 | 3秒後 | 7秒 |
3 | 6秒後 | 5秒 |
ア.12
イ.14
ウ.16
エ.17
解説
まず最初に生成時刻が0秒後のプロセス1が実行されます。
タイムクォンタムは2秒なので2秒間だけ実行されます。
待ち行列:プロセス1
しかし、プロセス1がタイムクォンタムを使い切った時点で他のプロセスはまだ生成されていません。
したがって、もう一度プロセス1が実行されます。
プロセス1を実行している間にプロセス2も生成されます。
待ち行列:プロセス2、プロセス1
プロセス2が生成されて待ち行列の先頭に並んでいるため、次はプロセス2が実行されます。
さらに、プロセス2がタイムクォンタムを使い切ると同時にプロセス3が生成されます。
待ち行列:プロセス1、プロセス2(、プロセス3)
問題文に「新しいプロセスの生成と中断されたプロセスの再開が同時に生じた場合には,新しく生成されたプロセスを優先するものとする」
とあるので、次はプロセス3が実行され、タイムクォンタムを使い切ると待ち行列の最後尾に並びます。
待ち行列:プロセス1、プロセス2、プロセス3
続いて、待ち行列の先頭のプロセス1が実行されます。
ただし、プロセス1の残り時間は1秒なので、1秒だけ実行されます。
待ち行列:プロセス2、プロセス3
後はプロセス2とプロセス3を交互に繰り返していきます。
待ち行列:プロセス3、プロセス2
待ち行列:プロセス2、プロセス3
待ち行列:プロセス3、プロセス2
待ち行列:プロセス2
待ち行列:なし
プロセス2の生成時刻は3、終了時刻は17なので答えは「イ.14」になります。