磁盘是可以被多个进程共享的设备,当有多个进程都请求访问磁盘时,应采用一种适当的调度算法,
以使各进程对磁盘的平均访问时间(主要是寻道时间)最短。下面介绍几种磁盘调度算法。
1、先来先服务(FCFS)算法
FCFS算法是一种最简单的磁盘调度算法。该算法按进程请求访问磁盘的先后顺序进行调度。
该算法的特点是合理、简单。但未对寻道进行优化。
2、最短寻道时间优先(SSTF)算法
SSTF算法选择与当前磁头所在磁道距离最近的请求作为下一次服务的对象。该算法的寻道性能比FCFS算法好,
但不能保证平均寻道时间最短,并且可能会使某些进程的请求总被其他进程的请求抢占而长期得不到服务(这种现象称为“饥饿”)。
3、扫描算法(SCAN)或电梯调度算法
SCAN算法在磁头当前移动方向上选择与当前磁头所在磁道距离最近的请求作为下一次服务的对象。由于这种算法中磁头移动的规律
颇似电梯的运行,故也称为电梯调度算法。SCAN算法具有较好的寻道能力,又避免了“饥饿”现象,但其对两端磁道请求比较不公平
(通常两端请求都是最后得到服务)。
4、循环扫描(C-SCAN)算法
C-SCAN算法是对SCAN算法的改良,它规定磁头单向移动。