最近开始学习操作系统原理这门课程,特将学习笔记整理成技术博客的形式发表,希望能给大家的操作系统学习带来帮助。同时盼望大家能对文章评论,大家一起多多交流,共同进步!
本文主要分以下几个方面:
- 磁盘的结构 Disk Stucture
- 磁盘的连接方式 Disk Attachment
- 磁盘的调度算法 Disk Scheduling
- 磁盘管理 Disk Management
- 交换空间的管理 Swap-Space Management
- 一种廉价的磁盘阵列 RAID Structure
大规模存储系统的结构:
磁盘:
- 传输速率:从外设到电脑的数据列传播时间
- 定位时间(随机访问时间) Positioning time(random-access time):
- 磁道定位时间 seek time - 移动磁臂 disk arm 到预期的磁道 cylinder
- 扇区定位时间 rotational latency - 旋转预期的扇区 cylinder 到磁头的底部
- 磁头碰撞:磁头与磁盘表面接触;目前一般采用非接触式读写
SATA:Serial Advanced Technology Attachment
磁盘的逻辑结构:是一维的连续逻辑块
一个扇区(sector)可能有多个逻辑块。
0号扇区是第一条磁道的第一块扇区。
恒定线速度:用于低速设备例如CD;
恒定角速度:用于高速设备例如硬盘。
磁盘调度 Disk Scheduling
访问时间主要包含寻找时间和旋转延时;需要最小化寻找时间,且寻找时间约等于寻找距离。
磁盘带宽:单位时间内传输的数据量。
磁盘I/O系统的访问请求包括:输入/输出,磁盘地址,内存地址,扇区号。
调度算法:
举例:Head Pointer:53 queue=98, 183, 37, 122, 14, 124, 65, 67
- FCFS First-Come-First-Serve 总共移动640道
- SSTF Shortest-Seek-Time-First 总共移动236道
-
- 选择从目前磁头访问时间最短的访问请求做为处理对象
- 类似CPU的SJF调度,可能会导致饥饿(starvation),引起磁头滞留在某一篇区域
3. SCAN(扫描),有时称电梯调度算法(elevator algorithm) 总共移动208道
-
- 磁臂从磁盘一端开始走
- 移动到另一端
- 在移动过程中处理服务请求
- 磁头的移动方向反转(到达另一端后)
4. C-SCAN(Circular Scan) 循环扫描
-
- 磁头从一端移动到另一端
- 在移动过程中处理请求
- 到达另一端后,直接返回磁盘的起始磁道
- 在返回过程中不做任何处理
5. C-LOOK:在访问的方向上走到最后一个请求就立即反转
如何选择:
- SSTF最常用
- SCAN和C-SCAN在大传输量情况下性能较好
- 性能好坏决定于请求模式
- SSTF或LOOK可作为默认算法
磁盘管理 Disk Management
Low-level/physical formatting 低级/物理格式化:将磁盘分成几个扇区,使得磁盘控制器可以读写
扇区结构包括:
- 头-包含扇区号
- 数据区
- 尾-包含ECC(错误校验码)
RAID Structure
Redundancy arrays of inexpensive disks 廉价磁盘冗余阵列
Redundancy arrays of independent disks 廉价磁盘冗余阵列
通过多磁盘冗余的方式提高可靠性和性能,RAID有七个等级:
- RAID0:交叉存取
- RAID1:镜像磁盘
- RAID2:海明码校验,将数据的海明码存放在恢复盘
- RAID3:带奇偶校验码的并行传递
- RAID4:带奇偶校验码的独立磁盘结构
- RAID5:分布式的奇偶校验的独立磁盘结构
- RAID6:两种存储的奇偶校验码的磁盘结构(P+Q redundancy) 例如:RAID0+1 or RAID1+0 两者不相同!!!