磁盘访问时间
磁盘访问时间=寻道时间Ts+旋转延迟时间+传输时间
寻道时间:磁臂(磁头)移动到指定磁道上所经历的时间
旋转延迟时间:指定扇区移动到磁头下面所经历的时间,1/(2r)
传输时间:把数据从磁盘读出或向磁盘写入数据所经历的时间,b/(rN)
先来先服务FCFS
按顺序处理请求;公平对待所有进程;在有很多进程的情况下,接近随即调度的性能。
最短寻道时间优先SSTF
选择从磁臂当前位置需要移动最少的I/O请求;总是选择最短的寻道时间
扫描(SCAN)算法
磁臂在一个方向上移动,满足所有未完成的请求,直到磁臂到达该方向上最后的磁道,调换方向;有时被称为elevator algorithm
循环扫描(CSCAN)算法
限制了仅在一个方向上扫描,当最后一个磁道也被访问过了后,磁臂返回到磁盘的另外一端再进行扫描
CLOOK
CSCAN的改进版,磁臂到达该方向上的最后一个请求处,然后立即反转。
NStepSCAN
在SSTF、SCAN、CSCAN几种调度算法中,都可能出现磁臂停留在某处不动的情况。例如进程反复请求对某一磁道的I/O操作,我把这一现象称为磁臂粘着。
将磁盘请求队列分成若干个长度为N的子队列,磁盘调度将按FCFS算法依次处理这些子队列,而每处理一个队列时又是按SCAN算法,对一个队列处理完后,再处理其他队列。
当正在处理某子队列时,如果又出现新的磁盘I/O请求,便将新请求进程放入其他队列,这样就可以避免出现粘着现象。
FSCAN
实际上是N步SCAN的简化,即FSCAN只将磁盘请求队列分成两个子队列。
一个是由当前所有请求磁盘I/O的进程形成的队列,由磁盘调度按SCAN算法进行处理。在处理某队列期间,将新出现的所有请求磁盘I/O的进程,放入另一个等待处理的请求队列。这样,所有的新请求都将推迟到下一次扫描时处理。