目录
常用的磁盘调度算法有先来先服务、最短寻道时间优先、扫描算法和单向扫描调度算法等。
先来先服务(FCFS)
先来先服务是最简单的磁盘调度算法,它根据进程请求访问磁盘的先后次序进行调度。但由于未对寻道进行优化,致使平均寻道时间可能较长。
最短寻道时间优先(SSTF)
要求其访问的磁道与当前磁头所在的磁道距离最近,使得每次的寻道时间最短,但这种调度算法却不能保证平均寻道时间最短。
扫描算法 (SCAN)
SCAN 算法不仅考虑到欲访问的磁道与当前磁道的距离,更优先考虑的是磁头的当前移动方向。例如,当磁头正在由里向外移动时, SCAN 算法所选择的下一个访问对象应是其欲访问的磁道,既在当前磁道之外,又是距离最近的。又称为电梯调度算法。
单向扫描调度算法( CSCAN )
CSCAN 算法是对扫描调度算法进行了改进。 SCAN 算法存在的问题:当磁头刚从向外移动过某一磁道时,恰有一进程请求访问此磁道,这时该进程必须等待,待磁头从里向外,然后再从外向里扫描完所有要访问的磁道后,才处理该进程的请求,致使该进程的请求被严重地推迟。为了减少这种延迟, CSCAN 算法规定磁头只做单向移动。
旋转调度算法:
系统应该选择延迟时间最短的进程对磁盘的扇区进行访问。
当有若干等待进程请求访问磁盘上的信息时,旋转调度应该考虑以下情况:
1,进程请求访问的是同一磁道上的不同编号的扇区;
2,进程请求访问的是不同磁道上的不同编号的扇区;
3,进程请求访问的是不同磁道上具有相同编号的扇区。
对于1,2,总是让首先到达读写磁头位置下的扇区先进行传送操作;对于3,可以任选一个读写磁头位置下的扇区进行传送操作。