磁盘结构

盘面(Platter):一个磁盘有多个盘面;

磁道(Track):盘面上的圆形带状区域,一个盘面可以有多个磁道;

扇区(Track Sector):磁道上的一个弧段,一个磁道可以有多个扇区,它是最小 的物理储存单位,目前主要有 512 bytes 与 4 K 两种大小;

磁头(Head):与盘面非常接近,能够将盘面上的磁场转换为电信号(读),或者 将电信号转换为盘面的磁场(写);

制动手臂(Actuator arm):用于在磁道之间移动磁头;

主轴(Spindle):使整个盘面转动。

 

磁盘调度算法

读写一个磁盘块的时间的影响因素有:

旋转时间

寻道时间

实际的数据传输时间

其中寻道时间最长因此磁盘调度的主要目标就是使磁盘的平均寻道时间最短

先来先服务(FCFS)

按照磁盘请求的顺序进行调度

优点是公平和简单,缺点啥也没优化,平均寻道时间长

最短寻道时间优先(SSTF)

优先调度与当前磁头所在磁道距离最近的磁道。

虽然平均寻道时间比较低,但是不够公平。如果新到达的磁道请求总是比一个在等待的磁道请求近,那么在等待的磁道请求会一直等待下去,也就是出现饥饿现象。具体来说,两端的磁道请求更容易出现饥饿现象。

 

电梯算法(SCAN)

电梯总是保持一个方向运行,直到该方向上没有请求为止。然后改变运行方向。

电梯算法(扫描算法)和电梯的运行过程类似,总是按一个方向来进行磁盘调度,

直到该方向上没有未完成的磁盘请求,然后改变方向。

因为考虑到了移动方向,所以解决了SSTF饥饿问题。