実行可能なプロセスが複数あるとき、OSは実行順を決めます。同じ入力で3方式の待ち時間を比べましょう。
4プロセスの実行順を示すガントチャート
| プロセス | 到着時刻 | 実行時間 | 待ち時間 |
|---|
1. 方式を選択
2. 実行順を再生
平均待ち時間(小さいほど短い)
表の時刻や時間を変更すると再計算します。再生するとCPUの使用順が表示されます。
次に誰を選ぶかが異なる
FCFSは到着順に完了まで実行します。長い処理が先頭だと、後続の短い処理も待たされます。
SJFは到着済みの短い仕事を先に実行します。平均待ち時間を減らせますが、所要時間の予測が必要で、長い仕事が飢餓状態になる場合もあります。
ラウンドロビンは一定時間ずつ実行して列の末尾へ戻します。公平に機会を与えますが、割当時間が短すぎると切替コストが増えます。
待ち時間の計算
実行可能な状態でCPUを待った時間の合計です。
待ち時間=終了時刻−到着時刻−実行時間