##### 磁盘驱动程序基本知识

1. 磁盘臂调度算法，用以优化平均寻道时间

   读写磁盘块的时间由如下三个因素决定：寻道时间，旋转时延，传输时间。其中寻道时延比其它两个要大的多，所以减小寻道时间可以大大提高系统性能。

   - 先来先服务(FCFS)：磁盘驱动程序按顺序处理请求。难以优化寻道时间。
   - 最短寻道优先(SSF)：按柱面号索引磁盘请求，总是处理最近的柱面。平均寻道时间得到了优化，问题是柱面两端的极端区域较难到达。
   - 电梯算法(elevator algorithm)：按一个方向运行直到没有请求为止，然后换个方向运动。

2. 错误处理

   - 程序性错误：解决方法是结束当前磁盘请求。
   - 校验和错误：解决方法是重复操作几次，还不行就把块标记为**坏块**(bad block)。
   - 寻道错误：大多数磁盘控制器可以自动修复寻道错误。
   - 控制器错误：控制器芯片上有一个引脚可以强迫自己复位，磁盘驱动程序可以触发此信号来重置控制器。

3. 磁道缓存，用以加速磁盘访问

   就是一次旋转把整个磁盘的内容都读出来。如果控制器做了此事，磁盘驱动程序就不必再做了。