CPUスケジューリング:方式でガントが変わる
同じプロセスでも、選ぶスケジューリング方式で実行順序(ガントチャート)と平均待ち時間が変わることを体感します。
スケジューリング方式
2
各プロセスの到着時刻・実行時間・優先度(数値が小さいほど高優先度)
方式
—
平均待ち時間
—
平均ターンアラウンド
—
総実行時間(完了)
—
プロセス別の結果
ガントチャート(CPU が実行したプロセスの時系列)
CPU は一度に 1 つのプロセスしか実行できません。複数のプロセスが待っているとき、どれを次に動かすかを決めるのが
CPU スケジューリングです。
実行の様子を時間軸に並べた帯がガントチャート。プロセスが完了するまでの時間がターンアラウンド時間(= 完了時刻 − 到着時刻)、 そのうち CPU を使えず待たされた時間が待ち時間(= ターンアラウンド − 実行時間)です。
方式を切り替えると、同じプロセス集合でも順序が変わり、平均待ち時間が変わることを確かめましょう。短いジョブを先に回す SJF は平均待ち時間を小さくしやすいのが定番の発見です。
実行の様子を時間軸に並べた帯がガントチャート。プロセスが完了するまでの時間がターンアラウンド時間(= 完了時刻 − 到着時刻)、 そのうち CPU を使えず待たされた時間が待ち時間(= ターンアラウンド − 実行時間)です。
方式を切り替えると、同じプロセス集合でも順序が変わり、平均待ち時間が変わることを確かめましょう。短いジョブを先に回す SJF は平均待ち時間を小さくしやすいのが定番の発見です。
いま何が起きている?
ここがポイント
- 順序が結果を変える ── プロセスは同じでも、実行順が変われば平均待ち時間・ターンアラウンドが変わる。
- SJF は平均待ち時間が最小 ── 短いジョブを先に処理すると、後ろで待つ全員の待ち時間が縮む(ただし実行時間の予測が必要)。
- FCFS は公平だが詰まる ── 長いジョブが先頭にいると後続が全員待たされる(コンボイ効果)。
- RR は応答性、クォンタム次第 ── 小さいと切替が頻繁で公平・高応答、大きいと FCFS に近づく。プリエンプティブ方式は途中で横取りが起きる。