- 概述
- . 磁盘设备可包括一或多个物理盘片 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