ディスクスケジューリング
同じ要求でも、ヘッドの動かし方を変えると総シーク距離が変わる ── FCFS / SSTF / SCAN / C-SCAN を見比べます。
アルゴリズムを選ぶ(軌跡と総移動が即座に変わります)
53
8
内側へ ↑
アルゴリズム
—
総シーク距離(トラック)
—
処理済み / 全要求
—
平均シーク(/要求)
—
ディスク上のヘッド位置
ヘッドの軌跡(縦=トラック番号, 横=時間)
ハードディスクは、読み書きヘッドを目的のトラックまで物理的に動かす必要があり、その移動時間(シーク時間)がアクセスの大きなコストです。
たくさんの読み書き要求が同時に並んでいるとき、どの順番でヘッドを動かすかで「ヘッドが移動する総トラック数(総シーク距離)」が大きく変わります。
FCFS(来た順)・SSTF(今いちばん近い要求へ)・SCAN(端まで往復=エレベータ)・C-SCAN(一方向に走り、端で先頭へ戻ってまた一方向)を切り替えて、軌跡と総移動を見比べましょう。
たくさんの読み書き要求が同時に並んでいるとき、どの順番でヘッドを動かすかで「ヘッドが移動する総トラック数(総シーク距離)」が大きく変わります。
FCFS(来た順)・SSTF(今いちばん近い要求へ)・SCAN(端まで往復=エレベータ)・C-SCAN(一方向に走り、端で先頭へ戻ってまた一方向)を切り替えて、軌跡と総移動を見比べましょう。
いま何が起きている?
ここがポイント
- 総シーク距離 = 連続する処理位置の差の絶対値の合計。順番だけで決まり、要求の集合は同じでも値が変わる。
- FCFS は公平だが非効率。遠近を無視して来た順に動くので、ヘッドが行ったり来たりしやすい。
- SSTF は局所最適で総移動は小さくなりやすいが、飢餓(starvation)が起きる ── 遠い要求が後回しにされ続けることがある。
- SCAN / C-SCAN(エレベータ法)は端まで一方向に走るので公平で、待ち時間のばらつきが小さい。C-SCAN は端で先頭へ戻ることで応答時間を均一化する。