NStepSCAN
在最短寻道时间优先(SSTF)、扫描算法(SCAN)和循环扫描算法(CSCAN)中,都可能出现磁臂停留在某处不动的情况,例如,有一个或几个进程对某一磁道有较高的访问频率,这些进程反复请求对某一磁道的I/O操作,从而垄断了整个磁盘设备。我们把这现象称为“磁臂黏着”,在高密度磁盘上容易出现这种情况。
N步SCAN算法是将磁盘请求队列分为若干个长度为N的子队列,磁盘调度将按FCFS算法依次处理这些子队列,而每处理一个子队列时,又是按照SCAN算法,当一个队列处理完后,再处理其他队列。当正在处理某子队列时,如果又出现新的磁盘I/O请求,则将其放入其他队列中,则可避免出现磁臂黏着现象。当N取很大时,N步扫描法会退化成SCAN算法,当N=1时,会退化成FCFS。
FSCAN算法
FSCAN算法将磁盘请求队列分成两个子队列,一个是由当前所有请求磁盘I/O形成的队列,由磁盘调度按SCAN算法进行处理。另一个是在扫描期间,将新出现的所有请求I/O磁盘的进程放入等待处理的请求队列中。
所有新的请求会推迟到下一次扫描时处理。