磁盘

Disc

概述
. 磁盘设备可包括一或多个物理盘片 disk
. 每个磁盘片分一个或两个存储面 surface
. 一个磁盘由多个同心圆组成,称为磁道 track
. 每个磁道可以划分为若干扇区 sector
. 每个扇区存放一定数量的数据,通常是512B;每个扇区又称磁盘块|盘块;扇区是可寻址的最小存储单元
. 磁道和扇区并不是紧密分布,而是彼此之间有一定的间隙:磁道间隙、扇区间隙
. 磁盘安装在磁盘驱动器中,其中最重要的部分就是磁头,靠磁头的移动实现数据的读取:磁头先定位到某个磁道,再定位到某个扇区
. 磁盘始终高速旋转,并不会因为读取数据而停下来;如果目标磁道或扇区错过了,必须等磁盘再旋转过来
. 多个磁盘垂直堆叠构成磁盘组
一次磁盘读写的时间 = 寻道时间 + 延迟时间 + 传输时间
寻道时间
. 寻找目标磁道
. 活动磁头读取数据之前,将磁头移动到目标磁道所需的时间
寻道时间 = 磁头臂启动时间 + 移动磁头时间
延迟时间
. 旋转到目标扇区,磁头定位到当前磁道的目标扇区所需的时间
. 磁头移动到某个磁道上后定住不动,需要磁盘旋转才能使得磁头读取对应磁道上的某个扇区,这个磁盘旋转的时间就是延时时间
. 磁盘转速15000r/min,相当于4ms/r
传输时间
. 从磁盘读出或向磁盘写入所需的时间
磁盘调度算法
先来先服务 FCFS - First Come First Served
. 磁头从当前磁道移动到第一个请求访问的磁道,之后按照提出请求的顺序依次访问
. 如果数据比较集中还可以;如果数据过于分散,导致寻道时间长,性能差
FCFS
被访问的下一个磁道 移动距离
55 45
58 3
39 19
18 21
90 72
160 70
150 10
38 112
184 146
平均寻道时间:55.3
最短寻找时间优先 SSTF - Shortest Seek Time First
. 磁头每次都从当前磁道移动到离最近发出请求访问的那个磁道。只能保证每次寻找的时间最短,但无法保证总的寻找时间最短,也就是无法达到所有请求访问时的寻找时间最短(局部最优,非总体最优)
. "饥饿"现象:如果后续的请求距离当前磁道比较近,将始终在附近相应请求;前面已经到达的较远的磁盘请求将长期得不到服务,处于饥饿 Starvation状态
SSTF
被访问的下一个磁道 移动距离
90 10
58 32
55 3
39 16
38 1
18 20
150 132
160 10
184 24
平均寻道时间:27.5
扫描算法 SCAN
. 也称单向扫描算法、电梯调度算法
. 磁头保持一个方向移动,自里向外或自外向里;如果当前移动方向上没有磁道可扫描,则 反向 扫描。确保所有的磁道请求都能被照顾到
SCAN
被访问的下一个磁道 移动距离
150 50
160 10
184 24
90 94
58 32
55 3
39 16
38 1
18 20
平均寻道时间:27.8
循环扫描算法 CSCAN - Circular SCAN
. 规定磁头单向移动
. 为了减少临近磁道延迟:当磁头刚从里向外移动而越过了某一磁道时,恰好又有一进程请求访问此磁道,则该进程必须等待
CSCAN
被访问的下一个磁道 移动距离
150 50
160 10
184 24
18 166
38 20
39 1
55 16
58 3
90 32
平均寻道时间:35.8