Look 调度

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

它在某种程度上类似于 SCAN 调度算法,不同之处在于,在此调度算法中,磁盘臂在没有其他方向请求时停止向内(或向外)移动。该算法试图克服 SCAN 算法的开销,SCAN 算法会强制磁盘臂朝一个方向移动到末端,而不考虑该方向是否存在任何请求。

算法

  • 按升序对所有输入/输出请求进行排序。
  • 磁头将沿指定方向移动,并在该方向上提供服务。
  • 在它移动的方向上,磁头单独响应每个请求。
  • 在满足该方向的所有请求之前,磁头将继续沿该方向移动。
  • 如果最后一个请求已满足,磁头的方向将改变。在反转方向时,所有未完成的请求都将被满足。

示例

考虑一个具有 100 个磁道的磁盘的以下磁盘请求序列:

98, 137, 122, 183, 14, 133, 65, 78

磁头指针从 54 开始并向左移动。使用 LOOK 调度计算磁头移动的柱面数。


OS Look Scheduling

移动的柱面数 = 40 + 51 + 13 + +20 + 24 + 11 + 4 + 46 = 209

好处

  • 由于 LOOK 算法最大限度地减少了开销,因此其性能优于 SCAN 方法。
  • 当负载较低时,可以使用它。
  • 因此不会发生饥饿现象。
  • 它将提供较小的等待时间和响应时间差异。

缺点

  • 在高负载下不建议使用 LOOK 算法。
  • 对于磁头刚刚访问过的柱面,这会导致较长的等待时间。

C-Look 调度

C-Look 算法在某种程度上类似于 C-SCAN 算法。在此算法中,磁盘臂向外移动,处理请求,直到达到最高请求柱面,然后它跳转到最低请求柱面,而不处理任何请求,然后它再次开始向外移动,处理剩余的请求。

它与 C-SCAN 算法的不同之处在于,C-SCAN 强制磁盘臂移动到最后一个柱面,而不考虑该柱面是否有要服务的请求。

算法

  • 按升序对所有输入/输出请求进行排序。
  • 它以与磁头初始移动相同的方向提供服务,该方向是指定的。
  • 在它移动的方向上,磁头单独响应每个请求。
  • 在满足该方向的所有请求之前,磁头将继续沿同一方向移动。
  • 如果方向指向大量值,当方向反转时,将不会处理位于磁头指针之前的未决请求。相反,磁盘臂将直接移向初始请求,然后掉头并向前移动以服务剩余的请求。
  • 无论方向如何变化,当方向指向较少值时,过程将保持不变。

示例

考虑一个具有 100 个磁道的磁盘的以下磁盘请求序列:

98, 137, 122, 183, 14, 133, 65, 78

磁头指针从 54 开始并向左移动。使用 C LOOK 调度计算磁头移动的柱面数。


OS Look Scheduling1

移动的柱面数 = 11 + 13 + 20 + 24 + 11 + 4 + 46 + 169 = 298

好处

  • 与 LOOK 和 C-SCAN 相比,它提供了更一致的等待时间。
  • 它比 C-SCAN 更有效。

缺点

  • 计算开销增加。
  • 在高负载下不建议使用 LOOK 算法。

LOOK 和 C-LOOK 磁盘调度算法的区别如下:

LOOK 磁盘调度算法C-LOOK 调度算法
LOOK 中的磁头能够在两个方向上服务请求。C-LOOK 算法的磁头只能在一个方向上服务查询。
其性能低于 C-LOOK。在所有磁盘调度算法中,C-LOOK 算法性能最佳。
在上面的 LOOK 算法示例中,磁头从 53 开始,按正确的顺序服务每个请求,直到到达一端的最后一个请求。之后,它会在反转方向后,以左移方向处理剩余的请求。在上面的示例中,C-LOOK 算法的磁头从 53 位置开始,按正确的顺序服务每个请求,直到到达一端的最后一个请求。之后,它会立即移至剩余的请求,并仅以正确的方向处理它们。
C-LOOK 算法比该算法处理请求更好。使用 C-LOOK 算法比 LOOK 算法可以更有效地处理请求。
LOOK 具有较低的响应时间方差和更好的吞吐量。C-LOOK 提供一致的响应时间和等待时间。

实际意义

操作系统依赖 LOOK 和 C-LOOK 等磁盘调度算法,尤其是在数据存储在硬盘等旋转介质上的环境中。尽管现代系统中 SSD 的使用日益广泛,它们不依赖寻道时间,但有效请求调度的理论对于网络数据包作业队列和云存储系统仍然适用。这些算法使情况得到改善。

  • 处理请求的顺序决定了平均寻道时间。
  • 在更少的时间内服务更多请求称为系统吞吐量。
  • 响应时间的持续性对于实时应用程序和面向用户的系统至关重要。

总结

本教程详细解释了算法及其各种变体的用法,每种算法都有不同的目的。在本教程中,我们重点介绍了磁盘调度算法,这些算法通常分为六类。接下来,我们讨论了 Look 和 C-Look 调度算法之间的区别。

常见问题

为什么使用磁盘调度算法?

磁盘调度技术是必要的,因为一个进程可以发出多个 I/O 请求,并且可以同时运行多个进程。一个过程的请求可能来自不同磁道上的不同扇区。因此,寻道时间可能会进一步增加。这些算法通过组织进程发出的查询来帮助减少寻道时间。

C-look 是如何工作的?

LOOK 和 SCAN 算法被结合起来创建 C-LOOK 算法。使用此方法,磁头在从第一个请求到最后一个请求的反向移动时,服务中间的所有请求。

哪个磁盘调度算法最好?

最流行的请求调度技术是 SSTF 或 LOOK 算法。限制磁盘磁头移动次数是此算法和大多数其他磁盘调度算法的主要目标,因为它会减少寻道时间。为此,我们需要大量的磁盘带宽和快速的访问时间。

哪种磁盘调度方法会发生饥饿?

SSTF 磁盘调度技术更容易导致内圈或外圈请求的饥饿。

有哪些类型的磁盘调度?

磁盘调度的各种算法是

  • FCFS 调度算法。
  • SSTF(最短寻道时间优先)算法。
  • SCAN 调度。
  • C-SCAN 调度。