磁盘是可以提供给多个进程共享的设备,当同时多个设备要访问磁盘,应采用合适的算法使各进程对磁盘的访问时间最小。
先来看磁盘访问时间定义:
(1)寻道时间Ts
把磁臂(磁头)移动到指定磁道上所经历的时间。该时间是启动磁臂的时间s与磁头移动n条磁道所花费的时间之和。
(2)旋转延迟时间Tτ
指定扇区移动到磁头下面所经历的时间。对于硬盘,典型的旋转速度大多为5400r/min,每转需时11.1ms,平均旋转延迟时间Tτ为5.55ms。
(3)传输时间Tt
把数据从磁盘读出或向磁盘写入数据所经历的时间。Tt的大小与每次读/写的字节数b和旋转速度有关。
由于在磁盘访问时间中,寻道时间占得比例最大,因此磁盘调度的目标是使磁盘的寻道时间最小常用的磁盘调度算法有以下四种:
先来先服务算法(FCFS),
最短寻道时间优先算法(SSTF),
扫描算法(SCAN),
循环扫描算法(CSCAN)
例:假定某磁盘共有200个柱面,编号为0-199,