§1 磁盘管理
C1 磁盘
1)存储区:
-
扇区:盘片分为多个扇形区域。实际上每个磁道扇区数不是常量
-
磁道:盘片上同心圆
-
柱面:不同盘片,相同磁道组成圆柱
-
每盘片2个盘面,各有一个磁头
-
容量 = 盘片数 × 面/盘 × 磁道数 × 扇区/磁道 × B/扇区
由于存在坏道、存在校验盘等,实际容量更小
2)磁盘一维映射:磁盘驱动器将磁盘视为一维逻辑数组,逻辑块是最小单位
- 读取一个扇区需要:柱面,磁头,扇区三个参数
- 建立映射:扇区0为最外柱面第一个磁头,按磁道内扇区顺序,再按从上到下盘面顺序顺序,最后按由外到内柱面顺序
3)性能:磁盘延迟 = 寻道+旋转+传输
-
寻道时间:磁臂移动到目标磁道
-
旋转延迟:平均旋转延迟
-
传输时间:
寻道时间是主要的影响因素
4)提升IO速度:
-
高速缓存
-
缓存形式:
- 独立缓存(固定大小)
- 虚拟内存(弹性大小)
-
数据交付形式:
- 直接交付(需要复制开销)
- 指针交付(内存管理复杂)
-
置换算法:LRU
-
周期性写回:周期性将修改过的内容写入磁盘
-
-
预读取,延迟写回
-
虚拟磁盘:利用内存空间仿真磁盘
C2 磁盘调度算法
1)先来先服务(FCFS):按请求到达顺序
- 优点:简单公平
- 缺点:寻道时间多
2)最短寻道时间(SSTF):优先选择距磁头最近的访问请求(寻道优先)
- 优点:改善平均服务时间
- 缺点:产生饥饿现象
3)扫描算法(SCAN):磁头按一个方向移动,移动过程中对遇到的请求进行服务,直到步进到最内/外侧磁道调转扫描方向
- 优点:考虑了磁头运动方向
- 缺点:两侧磁道访问频率仍少于中间磁带
4)循环扫描算法(C_SCAN):改进扫描,当到达最后一个柱面立即返回0柱面
- 优点:对两端磁道更加公平
5)其它:
-
磁臂黏着:几个进程反复请求某一磁道而垄断了磁盘设备
-
N-Step-SCAN:请求队列分为长度为N的子队列,队列间FCFS,队列内SCAN
- N很大:SCAN N=1 FCFS
-
FSCAN:2-Step-SCAN
- 每次新进入的请求进入另一队列,当前队列SCAN完成后再交换队列
C3 闪存
1)NOR技术-Intel
- 地址线多容量大
- 一次寻址,速度快
- 成本高
2)NAND技术-东芝
- 地址 = 块号+页号+页内字节号
- 一次访问三次寻址,随机访问慢
3)闪存:
- 低功耗、大容量、速度快
- 允许再零下45到零上85摄氏度下工作;允许环境剧烈震动
- 有限次擦写
C4 磁盘可靠性
1)廉价冗余磁盘阵列RAID
:利用多个独立硬盘(物理硬盘)按不同方式组成硬盘组(逻辑硬盘),提供比单个硬盘更高的存储性能(并行)和提供数据冗余保证可靠性
- 优点:低成本,功耗小,速度快,可容错
- 数据并行交叉存取:数据分成多个数据段(条带)存在多个磁盘
- 优点:并行存取
- 缺点:可靠性有问题、不同IO请求需要排队
- 镜像:拷贝数据
- 可靠
- 占用存储空间
- 校验:
- 可靠性、快速恢复
- 存储开销和运算开销
2)RAID分级:7个级别(0-6),还有组合级别
RAID | 组成 | 特定 |
---|---|---|
0 | 条带化 | 提高IO速度,无冗余校验 |
1 | 镜像 | 有效容量只有一半,可靠 |
1+0 | 先镜像后分块 | 可靠性更高 |
0+1 | 先分块后镜像 | |
2 | 按位条带化,海明码 | 并行存取 |
3 | 按位条带化,奇偶校验 | 读写要访问所有盘,其中一个是校验盘。恢复时间长 |
4 | 数据块交叉,奇偶校验,独立存校验 | 随机读快,随机写慢 |
5 | 数据块交叉,奇偶校验,分布式存校验 | |
6 | 数据块交叉,奇偶校验,分布式存校验 | 写入访问1个数据盘和2个冗余盘。可容忍双盘出错 |
3)检验码:利用异或运算
- 奇偶校验码:奇数为例P = a0 ⊕ a1 … ⊕ an
- 海明码:纠正信息字单个错误,最少码距为3
- 码距:编码系统中两个合法字间不同的二进制位数
- 码距越大纠错能力越强,但是冗余越大,即编码效率降低