SSTF 与 LOOK 磁盘调度算法的区别

2025 年 4 月 28 日 | 阅读 5 分钟

操作系统对磁盘进行调度,以安排到达磁盘的 I/O 请求。磁盘调度也称为 I/O 调度。磁盘调度算法的目标是最大化吞吐量并最小化响应时间。这里有六种不同的磁盘调度算法,例如先来先服务 (FCFS)、最短寻道时间优先 (SSTF)、扫描 (Scan)、查找 (Look)、循环扫描 (C-Scan) 和循环查找 (C-look) 磁盘调度,通过在不同运行中比较它们的磁头移动。

什么是 SSTF 磁盘调度算法?

SSTF 代表“最短寻道时间优先”。该算法服务于最接近磁头或指针当前位置的任务请求。在这里,磁头的方向在确定总磁头移动方面起着至关重要的作用。如果请求之间发生平局,则磁头将服务于在其当前方向上遇到的请求。与 C-LOOK 不同,SSTF 算法在总寻道时间方面非常高效。

在 SSTF 中,寻道时间最短的请求会先执行。因此,队列中每个请求的寻道时间都会预先计算,并在根据计算出的寻道时间进行调度时执行。结果是,靠近磁盘臂的请求将首先执行。SSTF 肯定是对 FCFS 的改进,因为它减少了平均响应时间并增加了系统的吞吐量。

它是批处理系统的一个合理解决方案。有时,它不能保证公平性,因为使用这种调度,可能会出现饥饿。此策略通常不适用于交互式系统,并且会导致响应时间变化更大。

示例

在这种情况下,请求将根据下一个最短距离得到服务。

SSTF vs LOOK Disk Scheduling Algorithm

从 50 开始,下一个最短距离将是 62,而不是 34,因为它距离 62 只有 12 个磁道,距离 34 只有 16 个磁道。该过程将继续,直到所有进程都得到处理。例如,下一个情况是将从 62 移动到 64,而不是 34,因为它们之间只有 2 个磁道,而不是 18 个(如果走另一条路)。

虽然这似乎是更好的服务,因为它移动了所有 236 个磁道,但它并非最优。饥饿的发生几率很大,这是因为如果有很多请求彼此靠近,而其他请求将永远得不到处理,因为距离会一直更大。

优点

SSTF 磁盘调度算法的优点如下:

  • 与 FCFS 相比,它减少了总寻道时间。
  • 它提供了更高的吞吐量。
  • 它提供了更低的平均响应时间和等待时间。

缺点

SSTF 磁盘调度算法也存在以下缺点:

  • 查找最近请求会产生额外开销。
  • 远离磁头的请求可能会因 CPU 而饥饿。
  • 它导致响应时间和等待时间变化很大。
  • 频繁切换磁头方向会减慢算法的速度。

什么是 LOOK 磁盘调度算法?

LOOK 算法实际上是 SCAN 算法的改进版本。在该算法中,磁头从磁盘的一侧开始,朝着另一端移动,并服务于中间的所有请求。与 SCAN 不同,磁头不是一直移动到最后一个磁道,而是移动到最后一个请求,然后从那里改变方向。与 SSTF 不同,它不服务最接近磁头或指针当前位置的任务请求。

它类似于 SCAN 磁盘调度算法,不同之处在于,磁盘臂不会一直移动到磁盘末端,而是只移动到前面要服务的最后一个请求,然后仅从那里反转方向。因此,它避免了由于不必要的到达磁盘末端的遍历而产生的额外延迟。SCAN 算法和 LOOK 算法的主要区别在于:

  • SCAN 算法扫描磁盘的所有柱面,从一端到另一端,即使末端没有请求。
  • LOOK 算法扫描磁盘的所有柱面,从一端的第一个请求到另一端的最后一个请求。

示例

考虑一个有 200 个磁道(0-199)的磁盘,并且磁盘队列中有以下 I/O 请求:98、183、40、122、10、124 和 65。

读/写磁头的当前位置是 53,将向右移动。使用 LOOK 算法计算读/写磁头的总磁道移动次数。

SSTF vs LOOK Disk Scheduling Algorithm

LOOK 磁盘调度算法的优点

LOOK 磁盘调度算法的优点如下:

  • 当没有要服务的请求时,磁头不必一直移动到磁盘末端。
  • 与 SCAN 算法相比,它提供了更好的性能。
  • 它不会导致饥饿。
  • 它提供了较低的响应时间和等待时间方差。

LOOK 磁盘调度算法的缺点

LOOK 磁盘调度算法也有一些缺点,例如:

  • 查找末端请求会产生额外开销。
  • 它会导致刚刚被磁头访问过的柱面等待时间较长。

SSTF 与 LOOK 磁盘调度算法的区别

下面是 SSTF 和 LOOK 磁盘调度算法之间的区别。

SSTF 磁盘调度算法LOOK 磁盘调度算法
SSTF 磁盘调度算法的性能较差。LOOK 磁盘调度算法的性能优于 SSTF。
与 LOOK 磁盘调度算法相比,它减少了总寻道时间。LOOK 磁盘调度算法的总寻道时间增加了。
该算法提供了很高的平均响应时间和等待时间方差。它提供了较低的平均等待时间和响应时间方差。
如上例所示,磁头的方向在打破请求之间的平局方面起着重要作用。在 LOOK 磁盘调度算法中,当磁头服务完一个方向上的最后一个请求时,磁头的方向会反转。
在 SSTF 磁盘调度算法中,查找最近请求会产生额外开销。在此算法中,查找末端请求会产生额外开销。
在 SSTF 磁盘调度算法中,远离磁头的请求将遭受饥饿。LOOK 磁盘调度算法不会导致任何请求饥饿。
在 SSTF 磁盘调度算法中,请求的处理不如 LOOK 算法好。LOOK 磁盘调度算法比 SSTF 更有效地处理请求。
SSTF 调度比 FCFS 策略具有更高的吞吐量和更低的响应时间。此调度的主要优点是它仅执行足够大的扫描来服务所有请求。它通过避免不必要的寻道操作来提高效率,并提供高吞吐量。