磁盘存储器
磁盘存储器由磁盘驱动器、磁盘控制器与盘片三个部分构成
磁盘的存储单元,自上而下分为
- 盘面 -- 磁盘的记录面,一个磁盘由多个盘面构成,每一个盘面有配套的读写磁头,盘面间共轴转动
- 扇区 -- 盘面的扇形区域,盘面根据角度均分为若干个扇形区域,扇区中间有一定的间隙,称为扇区间隙
- 磁道 -- 根据半径区分的,磁头能访问的存储区域。由于磁道的存储密度相同,磁道间的编址空间与存储空间随着半径递增。或者降低外层磁道信息线密度以保证磁道间一致性。
存储区域内存在相关信息
- 记录面数 -- 磁头数 = 盘面数
- 柱面数 -- 单个记录面上的磁道数,即盘面沿着半径方向被分割成多少个部分
- 扇区数 -- 单个记录面上的扇区数,即盘面沿着旋转方向被分割成多少个部分
最早的磁盘是IBM推出的温彻斯特磁盘(温盘)
磁记录原理
磁头和磁性记录相对移动时,电磁转换以实现数据的读写操作
磁盘的管理
磁盘的初始化
磁盘的初始化分为低级格式化与高级格式化
低级格式化将磁盘分为若干个扇区,扇区分为头部、尾部和数据部分,并使用CRC字段校验。低级格式化只是物理片段的划分,所以也叫物理格式化。
高级格式化则是在分区上建立文件系统,初始化根目录等操作。因此也称为逻辑格式化。
磁盘的容量也分为非格式化容量与格式化容量。非格式化容量是磁盘的理论存储上限,磁盘的磁记录表面可用的磁化单元总量;格式化容量是格式化后的实际可用存储容量。因此 非格式化容量 > 格式化容量
磁盘的地址编码方式
|柱面(磁道)号|盘面(磁头)号|扇区号|
磁盘阵列
RAID是将多个物理磁盘统一组合为一个逻辑磁盘的方式,数据在多个物理盘间交叉分割存储并并行访问,以获得更好的存储性能与安全性。
磁盘的文件系统
将磁盘进行分区,每一个分区的起始位置和大小记录在MBR中,而后是引导块进行OS的文件块加载进行自举。
BIOS存储在ROM中,进行在硬件自检后加载引导块以启动操作系统。
磁盘的调度算法
磁盘读写时间由三个部分构成
- 寻道时间
- 旋转延迟时间
- 数据传输时间
寻道时间由跨越磁道时间和磁头臂启动时间构成
平均寻道时间是最大寻道时间的一半
旋转延迟时间为目标扇区旋转到磁头下的耗时,假设盘面转速为,平均旋转延迟时间为
数据传输时间为读写 字节所需的时间。如果每条磁道存储字节,则平均数据传输时间为
总平均存取时间为
磁盘的存取时间中,寻道时间是最主要的时间开销部分,因此主要目标是降低寻道时间的开销。
响应时间还需要考虑排队延迟和控制器时间的开销
磁盘调度算法
FCFS算法
最简单且最公平的算法,但是大量进程竞争磁盘时,磁头会频繁长距离移动导致效率低下
最短寻道时间优先(SSTF)
基于贪心算法,每一次都寻找最短时间开销的磁道请求。
SSTF可能在一个磁道区域来回移动导致较远的磁道出现"饥饿"现象
SCAN算法
根据当前的移动方向向最远处磁道移动,到达最远处后反向到达最内侧磁道。
SCAN算法也称为电梯算法。它对最新扫描过的扇区不公平,需要更大的耗时才会返回该区域,因此局部性不如FCFS和SSTF。
C-SCAN算法
C-SCAN算法在到达磁盘最外侧边缘时,直接返回最内侧,返回过程不执行服务。当磁头从最内侧移动到最外侧时才进行服务。
LOOK/C-LOOK 调度
基于SCAN/C-SCAN改良,不到达磁道物理边缘,而只到达当前方向上的最远请求位置后就反向。
NStepSCAN & FSCAN 算法
由于SSTF/SCAN/C-SCAN 算法会出现磁道黏着现象。假设有进程始终在访问某个磁道,那么磁头就只会在当前磁道工作,导致其他磁道进程饥饿
NStepSCAN将任务队列划分为若干长度为N的子队列,队列间FCFS,队列内SCAN。新请求放入新的队列当中,不放入正在执行的队列中。
FSCAN将NStepSCAN简化为 的形式,即维护当前服务队列和新请求的队列两个部分,将当前扫描过程中新增的请求全放入新请求队列中,降低了实现开销。
减少延迟时间的算法
- 交替编号 -- 盘面内奇偶分离编号,减少执行时间导致错过扇区的长延迟
- 错位命名 -- 盘面间错位编号,减少旋转延迟
提高磁盘IO速度的方法
- 改进文件目录结构与目录以降低目录查找时间
- 选择号的文件存储结构
- 提高磁盘IO速度,如高速缓存、提前写、延迟读、虚拟盘、RAID等方式
SSD
SSD 是基于Flash技术的存储设备,是E^2PROM的变体。
SSD的读写操作以页为单位进行,擦除操作以块单位进行。
SSD 的随机写速度较慢且擦写寿命较低,擦除的用时也比较长。因此提出了磨损均衡算法:
- 动态磨损均衡 -- 写入数据时优先擦写访问少的块,将负载分散在不同块中
- 静态磨损均衡 -- 控制器定期定期进行高磨损块的数据迁移,高磨损块以只读为主,低磨损块更多承担擦写任务,以提升平均寿命
静态磨损均衡的实际性能好于动态磨损均衡
