最終更新日:2026年10月5日
fe fe-technology computer-system
まず結論
ディスクスケジューリングは、磁気ディスクへの複数のアクセス要求を、ヘッドの移動がなるべく少なくなるように処理する順序を決める仕組みです。
FE科目Aでは、方式名だけでなく、「次にヘッドがどこへ動くか」で切り分けると分かりやすくなります。
| 方式 | 次に処理する要求 | 判断の合図 |
|---|---|---|
| FCFS | 到着した順 | 要求順をそのまま処理 |
| SSTF | 現在位置から最も近い要求 | 一番近いシリンダ |
| SCAN | 現在の方向にある要求を順番に処理 | 一方向に進み、必要なところで折り返す |
直感的な説明
SCAN方式は、エレベータをイメージすると理解しやすい方式です。
上へ進んでいる途中なら、上方向の要求を順番に処理します。上方向に処理すべき要求がなくなったら、方向を変えて下へ進みます。
例えば、現在位置が100で、要求が次のようにあるとします。
120, 90, 70, 80, 140, 110, 60
現在はシリンダ番号が増える方向へ移動しているなら、今回の条件では次の順になります。
ポイントは、問題文に要求の並べ替えができるとあれば、最初に書かれた要求順のまま処理する必要はないことです。
定義・仕組み
なぜ順番を変えるのか
磁気ディスクでは、目的のトラックへヘッドを移動する時間が必要です。
要求順のままヘッドを何度も往復させるより、近い要求や同じ方向の要求をまとめて処理した方が、ヘッド移動を減らせる場合があります。
ディスクスケジューリングは、このアクセス順を決める考え方です。
FCFS
FCFS(First Come First Served)は、要求が到着した順番に処理する方式です。
要求:120 → 90 → 70 → 140
↓
その順番のまま処理
考え方は単純ですが、ヘッドが大きく往復する場合があります。
SSTF
SSTF(Shortest Seek Time First)は、現在位置から最も近い要求を優先する方式です。
例えば現在位置が100なら、90と140では90の方が近いので、90を先に処理します。
SSTFの合図は 「今いる場所から一番近い」 です。
ただし、遠い位置への要求が長く待たされる可能性があります。
SCAN
SCAN方式は、ヘッドを一方向へ動かしながら、その方向にある要求をシリンダ番号順に処理し、条件を満たしたところで方向を反転する方式です。
エレベータの動きに似ているため、エレベータ方式と説明されることもあります。
ここで注意したいのは、どこで折り返すかは問題文の条件を読むことです。
今回のように、
現在の方向に要求がないとき、ヘッドの移動方向を変える
という条件なら、物理的なディスクの端まで行く必要はありません。最後の要求位置で折り返します。
総移動シリンダ数の求め方
先ほどの例を計算します。
現在位置:100
増加方向の最後の要求:140
減少方向の最後の要求:60
同じ方向に進んでいる途中の差を一つずつ足す必要はありません。
増加方向は、
100 → 140 = 40
折り返した後は、
140 → 60 = 80
したがって、
40 + 80 = 120
総移動シリンダ数は120です。
このように、方向転換が1回なら、
現在位置 → 今の方向の端 → 反対方向の端
と見ると計算を短くできます。
科目Aでどう出る?
問題文を読んだら、まず次の順で確認します。
- 現在のヘッド位置はどこか
- 現在の移動方向はどちらか
- その方向にある要求を番号順に並べる
- どの条件で方向転換するかを確認する
- 最後に移動距離を計算する
特に、要求が
120, 90, 70, 80, 140, 110, 60
とバラバラに書かれていても、SCAN方式ならこの並びに引っ張られないことが重要です。
どんな場面で使う?
ディスクスケジューリングは、複数のディスクアクセス要求があるときに、磁気ディスクのヘッド移動を効率化する考え方です。
現在のSSDでは磁気ディスクのような機械的なヘッド移動はありません。したがってFEでは、HDDなどの磁気ディスクを前提にした仕組みとして考えると整理しやすくなります。
よくある混同
「要求された順番」で処理する?
それはFCFSの考え方です。
SCAN方式では、問題文の条件に従って要求を並べ替えます。
「一番近い要求」を選ぶ?
それはSSTFです。
SCANは、近さだけでなく現在の移動方向が重要です。
必ずディスクの端まで行く?
問題文の条件を確認します。
「現在の方向に要求がなくなったら方向転換」と指定されていれば、その条件に従います。SCANという名前だけから折返し位置を決めないことが大切です。
SCANとSSTFは同じ?
違います。
FCFS → 到着順
SSTF → 今いる位置から近い順
SCAN → 今の移動方向を優先
この3行で切り分けると、選択肢をかなり絞れます。
まとめ
FE試験では、方式名を丸暗記するより、「ヘッドが次にどこへ動くか」で判断します。
- FCFS:要求された順
- SSTF:現在位置から最も近い要求
- SCAN:現在の方向に進みながら順番に処理し、条件に従って折り返す
SCANの移動量を求める問題では、方向転換が1回なら、
現在位置 → 今の方向の端 → 反対方向の端
と図にすると計算しやすくなります。