磁盘调度算法详解

  • 内容
  • 评论
  • 相关

操作系统的职责之一是有效使用硬件。对于磁盘驱动器,满足这个要求具有较快的访问速度和较宽的磁盘带宽。

对于磁盘,访问时间包括两个主要部分:

  • 寻道时间:是磁臂移动磁头到包含目标扇区的柱面的时间;
  • 旋转延迟:是磁盘旋转目标扇区到磁头下的额外时间;

磁盘带宽是传输字节的总数除以从服务请求开始到最后传递结束时的总时间。通过管理磁盘 I/O 请求的处理次序,可以改善访问时间和带宽。

每当进程需要进行磁盘 I/O 操作时,它就向操作系统发出一个系统调用。这个请求需要一些信息:

  • 这个操作是输入还是输出;
  • 传输的磁盘地址是什么;
  • 传输的内存地址是什么;
  • 传输的扇区数是多少;

如果所需的磁盘驱动器和控制器空闲,则立即处理请求。如果磁盘驱动器或控制器忙,则任何新的服务请求都会添加磁盘驱动器的待处理请求队列。对于具有多个进程的一个多道程序系统,磁盘队列可能有多个待处理的请求。因此,当一个请求完成时,操作系统可以选择哪个待处理的请求服务。

操作系统如何进行选择?有多个磁盘调度算法可以使用。

FCFS 调度

磁盘调度的最简单形式当然是先来先服务(FCFS)算法。虽然这种算法比较公平,但是它通常并不提供最快的服务。

例如,考虑一个磁盘队列,其 I/O 请求块的柱面的顺序如下:

98,183,37,122,14,124,65,67

如果磁头开始位于柱面 53,那么它首先从 53 移到 98,接着再到 183、37、122、14、124、65,最后到 67,磁头移动柱面的总数为 640。这种调度如图 1 所示。


FCFS磁盘调度
图 1 FCFS 磁盘调度

本文标题:磁盘调度算法详解

本文地址:http://www.hosteonscn.com/3644.html

评论

0条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注