磁盘调度算法的数值分析

2025年5月31日 | 阅读3分钟

问题:考虑一个有200个磁道的磁盘,队列中不同进程的随机请求按顺序排列

55, 58, 39, 18, 90, 160, 150, 38, 184

初始磁头在100。使用FIFO、SSTF、SCAN和C-SCAN算法计算平均寻道长度。

解决方案

OS Numerical on Disk Scheduling Algorithms

1. FCFS(先来先服务)

  • 请求按照它们到达的顺序进行服务。
  • 磁头移动没有优化,导致寻道时间长。
  • 磁道总行程:498
  • 平均寻道长度

4989=55.3\frac{498}{9} = 55.39498=55.3

2. SSTF(最短寻道时间优先)

  • 最接近当前请求的请求首先得到服务,从而最大限度地减少即时寻道时间。
  • 通过减少不必要的磁头移动,提供比FCFS更好的性能。
  • 磁道总行程:247.5
  • 平均寻道长度:27.5

3. SCAN(电梯算法)

  • 磁头向一个方向移动,服务所有请求,然后反向移动。
  • 避免饥饿并确保更均匀的服务。
  • 磁道总行程:250.2
  • 平均寻道长度:27.8

4. C-SCAN(循环SCAN)

  • 磁头只向一个方向移动,到达末端后返回起始位置,而不反向服务。
  • 提供更均匀的等待时间,但寻道时间略高于SCAN。
  • 磁道总行程:320.4
  • 平均寻道长度:35.6

问题2. 磁盘上有200个磁道(0到199)。上一个请求在磁道50,磁盘磁头现在在磁道53。以下是按接收顺序排列的待处理请求队列:[38 122 14 124 98 183 37 65 64]。利用下列磁盘调度算法确定磁头总移动量。

FCFS代表先来先服务。

SSTF代表最短寻道时间优先

电梯算法

SCAN

LOOK

C-Scan

C-LOOK

解决方案

让我们计算每种算法的磁头总移动量

1. FCFS

序列:53 → 98 → 183 → 37 → 122 → 14 → 124 → 65 → 67
磁头总移动量 =
|53-98| + |98-183| + |183-37| + |37-122| + |122-14| + |14-124| + |124-65| + |65-67|
= 45 + 85 + 146 + 85 + 108 + 110 + 59 + 2 = 640 磁道

2. SSTF

选择距离当前磁头最近的请求。

序列:53 → 65 → 67 → 37 → 14 → 98 → 122 → 124 → 183
总移动量 =
|53-65| + |65-67| + |67-37| + |37-14| + |14-98| + |98-122| + |122-124| + |124-183|
= 12 + 2 + 30 + 23 + 84 + 24 + 2 + 59 = 236 磁道

3. SCAN(假设最初向0移动):

序列:53 → 37 → 14 → 0 → 65 → 67 → 98 → 122 → 124 → 183
总移动量 =
|53-37| + |37-14| + |14-0| + |0-65| + |65-67| + |67-98| + |98-122| + |122-124| + |124-183|
= 16 + 23 + 14 + 65 + 2 + 31 + 24 + 2 + 59 = 236 磁道

4. LOOK(只移动到所需的最远点)

序列:53 → 37 → 14 → 65 → 67 → 98 → 122 → 124 → 183
总移动量 =
|53-37| + |37-14| + |14-65| + |65-67| + |67-98| + |98-122| + |122-124| + |124-183|
= 16 + 23 + 51 + 2 + 31 + 24 + 2 + 59 = 208 磁道

5. C-SCAN(假设向更高的磁道移动)

序列:53 → 65 → 67 → 98 → 122 → 124 → 183 → 199 → 0 → 14 → 37
总移动量 =
|53-65| + |65-67| + |67-98| + |98-122| + |122-124| + |124-183| + |183-199| + |199-0| + |0-14| + |14-37|
= 12 + 2 + 31 + 24 + 2 + 59 + 16 + 199 + 14 + 23 = 382 磁道

6. C-LOOK

序列:53 → 65 → 67 → 98 → 122 → 124 → 183 → 14 → 37
总移动量 =
|53-65| + |65-67| + |67-98| + |98-122| + |122-124| + |124-183| + |183-14| + |14-37|
= 12 + 2 + 31 + 24 + 2 + 59 + 169 + 23 = 322 磁道