最終更新日:2026年7月23日
fe fe-technology computer-system
まず結論
SCAN方式とは、磁気ディスクのヘッドを一方向に動かし、その方向にある入出力要求を順番に処理してから反転するディスクスケジューリング方式です。
基本情報技術者試験では、次の順番で考えると解きやすくなります。
現在位置を確認
↓
現在の移動方向を確認
↓
その方向の要求をシリンダ番号順に処理
↓
要求がなくなったら反転
↓
移動距離を合計
待ち行列に並んだ順番ではなく、現在位置と移動方向を基準に処理順を決めるのがポイントです。
直感的な説明
SCAN方式は、エレベータの動きにたとえると分かりやすいです。
エレベータが上方向へ進んでいるときは、途中の階の呼出しに順番に応えます。
上方向の呼出しがなくなったら、今度は下方向へ進みます。
上方向へ進む
→ 途中の要求を順番に処理
→ 上側の要求がなくなる
→ 下方向へ反転
磁気ディスクでも同じように、ヘッドが現在進んでいる方向の要求をまとめて処理します。
そのため、近い要求が反対側にあっても、現在の移動方向を優先します。
定義・仕組み
磁気ディスクでは、目的のデータがあるシリンダまでヘッドを移動させる必要があります。
複数の入出力要求があるとき、どの順番で処理するかによってヘッドの総移動距離が変わります。
この処理順を決める仕組みを、ディスクスケジューリングと呼びます。
SCAN方式の基本
SCAN方式では、次のように動きます。
- 現在のヘッド位置を確認する
- 現在の移動方向を確認する
- その方向にある要求をシリンダ番号順に処理する
- その方向に要求がなくなったら反転する
- 反対方向の要求を順番に処理する
例えば、現在位置が 100 で、増加方向へ移動しているとします。
要求が次の場合です。
60, 70, 80, 90, 110, 120, 140
処理順は次のようになります。
100
→ 110
→ 120
→ 140
→ 90
→ 80
→ 70
→ 60
このテーマは、基本情報技術者試験の「コンピュータ構成要素」「記憶装置」「入出力装置」と関係する内容です。公式の出題範囲やシラバスは、IPA:基本情報技術者試験から確認できます。
科目Aでどう出る?
科目Aでは、現在のヘッド位置、移動方向、待ち行列が与えられ、総移動シリンダ数を求める問題が出ます。
解き方の手順
まず、現在位置を境に要求を2つに分けます。
現在位置より大きい要求
現在位置より小さい要求
現在位置が 100 の場合、次のように分かれます。
大きい側:110, 120, 140
小さい側:90, 80, 70, 60
増加方向へ進んでいるなら、大きい側を昇順で処理します。
110 → 120 → 140
その後、方向を反転して小さい側を降順で処理します。
90 → 80 → 70 → 60
ヘッド移動距離の求め方
1件ずつ差を足しても求められます。
100 → 110 = 10
110 → 120 = 10
120 → 140 = 20
140 → 90 = 50
90 → 80 = 10
80 → 70 = 10
70 → 60 = 10
合計は次のとおりです。
10 + 10 + 20 + 50 + 10 + 10 + 10 = 120
ただし、試験では端点を使うと速く計算できます。
現在位置100 → 最大値140
= 40
最大値140 → 最小値60
= 80
合計
= 40 + 80
= 120
試験中の判断手順
1. 現在位置を確認する
2. 進行方向を確認する
3. 現在位置より大きい側と小さい側に分ける
4. 進行方向側を番号順に処理する
5. 反転後の順番を決める
6. 移動距離を合計する
どんな場面で使う?
SCAN方式は、多数のディスク入出力要求を効率よく処理し、ヘッドの無駄な往復を減らすために使われます。
待ち行列の順に処理するだけでは、ヘッドが大きく行き来することがあります。
120 → 60 → 140 → 70
このような順番では、移動距離が大きくなりやすくなります。
SCAN方式では、一方向の要求をまとめて処理するため、ヘッドの往復を抑えやすくなります。
よくある誤解・混同
待ち行列の順番どおりに処理する
誤りです。
待ち行列の順番どおりに処理する方式はFCFSです。
到着順に処理
→ FCFS
現在方向を優先
→ SCAN
一番近い要求から処理する
誤りです。
現在位置から最も近い要求を優先する方式はSSTFです。
近い要求を優先
→ SSTF
一方向へ進んでから反転
→ SCAN
SCAN方式は必ず物理的な端まで移動する
問題文の定義を確認する必要があります。
一般的な説明では、SCANはディスク端まで移動してから反転し、LOOKは要求のある最後の位置で反転すると整理されることがあります。
一方、試験問題では、
現在方向に要求がなくなったら反転する
と定義される場合があります。
この場合は、ディスクの物理的な端ではなく、その方向の最後の要求位置で反転すると判断します。
一般用語の暗記
よりも
問題文で示された条件を優先
SCAN・LOOK・FCFS・SSTFの違い
| 方式 | 処理順の基準 |
|---|---|
| FCFS | 到着順 |
| SSTF | 現在位置から最も近い要求 |
| SCAN | 一方向へ進み、端または指定条件で反転 |
| LOOK | 一方向の最後の要求位置で反転 |
FE試験では、方式名だけでなく、問題文に書かれた動作条件を確認することが大切です。
まとめ(試験直前用)
- SCAN方式は、現在方向の要求を順番に処理してから反転する
- 待ち行列の順番ではなく、現在位置と移動方向を見る
- 現在位置より大きい側と小さい側に分ける
- 増加方向なら大きい側を昇順、反転後は小さい側を降順で処理する
- 移動距離は1件ずつ足しても、端点の差でまとめてもよい
- 到着順はFCFS、最短距離優先はSSTF
- SCANとLOOKの区別は、問題文の反転条件を確認する