内容提要
本文介绍了磁盘结构及调度算法。磁盘由多个盘面、磁道和扇区组成,读写时间受旋转时间和寻道时间影响。主要调度算法包括:1. 先来先服务(FCFS),简单但效率低;2. 最短寻道时间优先(SSTF),提高效率但可能导致饥饿;3. 电梯算法,避免饥饿,按一个方向调度;4. 循环电梯算法,优化响应频率;5. LOOK与C-LOOK算法,进一步优化电梯算法。
延伸解读
寻道时间为何是优化重点
文章指出,读写磁盘块的时间由旋转时间、寻道时间和数据传输时间组成,其中寻道时间最长。因此,磁盘调度算法的主要目标是缩短平均寻道时间,即优化请求的处理顺序。这解释了为什么不同调度策略的性能差异主要体现在磁头移动的总距离上,而非旋转或传输环节。
从FCFS到SSTF:效率与公平的权衡
FCFS按请求到达顺序调度,实现简单且公平,但未优化寻道,平均寻道时间可能很长。SSTF优先处理离当前磁头最近的请求,显著减少寻道距离,但可能导致远处请求长期得不到响应,即饥饿现象。文章通过具体算例展示了SSTF相比FCFS在磁头移动距离上的大幅改进,同时也点明了其公平性缺陷。
电梯算法如何避免饥饿
电梯算法规定磁头只能单向移动,访问沿途所有未完成请求,直到该方向尽头再反向。这避免了SSTF中磁头在小区域内来回移动导致的饥饿问题。但文章也指出,中间磁道因双向经过而获得更高响应频率,造成各磁道响应机会不均,类似电梯中间楼层乘客更容易搭乘的现象。
循环电梯与LOOK的改进思路
循环电梯算法让磁头始终朝同一方向扫描,返回时直接复位到另一端且不处理请求,使各磁道响应频率更均匀。LOOK和C-LOOK则进一步优化:磁头只需移动到该方向最远的请求位置即可反向,无需到达磁盘物理端点,从而减少不必要的磁头移动。这些改进在保持无饥饿特性的同时,提升了调度效率。
Q&A
磁盘的基本结构是什么?
磁盘由多个盘面、磁道和扇区组成,扇区是最小的物理储存单位。
什么是先来先服务(FCFS)算法?
FCFS算法按照磁盘请求的顺序进行调度,简单但效率低,可能导致较长的平均寻道时间。
最短寻道时间优先(SSTF)算法的优缺点是什么?
SSTF算法提高了效率,但可能导致饥饿现象,因为新请求可能一直优先于等待的请求。
电梯算法是如何工作的?
电梯算法规定磁头只能在一个方向上移动,访问所有未完成的请求,直到到达该方向的最后磁道,然后改变方向。
循环电梯算法与电梯算法有什么区别?
循环电梯算法优化了电梯算法,使得各个位置的磁道响应频率更均匀,磁头在返回时不处理请求。
LOOK与C-LOOK算法的优化思路是什么?
LOOK算法在每个方向上仅移动到最远请求位置再反向,而C-LOOK算法则在反向移动时不响应请求。