一、 大容量存储结构概述 (Overview of Mass Storage)
我们最常用的二级存储设备是磁盘 (Magnetic disks),其次是磁带 (Magnetic tape)。
1. 磁盘的物理结构与寻址
寻址时间 (Positioning time / Random-access time):这决定了磁盘有多快。它由两部分组成 :
寻道时间 (Seek time):将磁盘臂移动到目标柱面 (cylinder) 所需的时间。
旋转延迟 (Rotational latency):等待目标扇区 (sector) 旋转到磁头 (head) 下方所需的时间。
物理风险:如果磁头与磁盘表面发生物理接触,就会产生磁头碰撞 (Head crash),这是非常糟糕的致命故障 。
逻辑寻址:磁盘驱动器被视为由逻辑块 (Logical blocks) 组成的一维大数组(逻辑块是最小传输单位)。这个一维数组按顺序映射到磁盘的扇区上。
扇区 0 (Sector 0):是最外层柱面的第一个磁道上的第一个扇区 。
映射顺序:先遍历当前磁道,再遍历当前柱面的其他磁道,最后从最外层柱面向最内层柱面推进 。
2. 磁带 (Magnetic tape)
特点:早期的二级存储,容量大且相对永久,但访问时间很慢 。
性能:磁带的随机访问速度大约比磁盘慢 1000 倍 。一旦磁头定位到位,传输速率可与磁盘媲美 。
用途:主要用于数据备份、极少使用的数据归档,以及系统间的数据传输 。
二、 磁盘的连接方式 (Disk Attachment)
存储设备如何连上计算机?主要有三种架构:
主机直连 (Host-attached):通过 I/O 总线(如 SCSI、FC 等)直接相连。FC(光纤通道)是一种高速串行架构,是构建 SAN 的基础 。
网络附加存储 (NAS, Network-Attached Storage):
存储设备通过局域网/广域网(LAN/WAN)提供服务,而不是本地总线。
常用协议:NFS 和 CIFS。通过主机和存储设备之间的 RPCs(远程过程调用)实现。iSCSI 协议甚至能用 IP 网络来承载 SCSI 指令 。
存储区域网络 (SAN, Storage Area Network):
- 大型存储环境中的标配。允许多个主机连接到多个存储阵列,极其灵活 。
三、 磁盘调度算法 (Disk Scheduling) 🌟【本章绝对核心考点】
操作系统的目标是高效使用硬件——对于磁盘而言,就是要最小化寻道时间 (Seek time)。因为寻道时间与寻道距离成正比,所以我们本质上是在规划磁头的“行驶路线” 。
假设磁头当前在位置 53,请求队列为:98, 183, 37, 122, 14, 124, 65, 67
1. FCFS (先到先服务)
逻辑:谁先来就先服务谁。
特点:最公平,但磁头可能会像无头苍蝇一样在磁盘两端来回狂奔,效率极低(总移动距离极长) 。
2. SSTF (最短寻道时间优先, Shortest Seek Time First)
逻辑:每次都选择距离当前磁头位置最近的请求。
特点:它是 SJF(最短作业优先)在磁盘调度的翻版。优点是效率高;缺点是可能导致边缘请求饥饿 (Starvation)(如果不断有靠近当前位置的新请求,远处的请求永远得不到服务) 。
3. SCAN (电梯算法)
- 逻辑:磁头从磁盘的一端向另一端移动,沿途处理所有请求。到达另一端后,改变方向继续处理。就像现实中的电梯一样 。
4. C-SCAN (循环 SCAN)
逻辑:为了提供更均匀的等待时间,磁头依然从一端扫到另一端,但一旦到达另一端,它会立即空车返回起点,返程途中不处理任何请求 。
特点:将柱面视为一个循环列表 (circular list) 。
5. C-LOOK (循环 LOOK)
- 逻辑:是 C-SCAN 的优化版。磁头不会死板地非要走到磁盘的最绝对边缘。它在每个方向上只走到最远的一个请求位置,然后就立即掉头 。
💡 如何选择调度算法?
SSTF 是最通用且自然的选择,常作默认算法 。
SCAN / C-SCAN 在磁盘负载很重的系统中表现更好 。
磁盘调度算法应该被写成操作系统的一个独立模块,以便随时替换 。
四、 磁盘管理与交换空间 (Disk & Swap Management)
1. 磁盘初始化与管理
低级格式化 (Low-level/Physical formatting):将磁盘在物理层面划分为控制器可以读写的扇区 。
逻辑格式化 (Logical formatting):俗称“创建文件系统”,将磁盘分区,并写入操作系统的核心数据结构 。
引导块 (Boot block):用于初始化系统。自举程序 (Bootstrap loader) 存储在 ROM 中 。
坏块处理:使用诸如扇区备用 (sector sparing) 之类的方法来处理坏块 。
2. 交换空间管理 (Swap-Space Management)
作用:虚拟内存使用磁盘空间作为主存(内存)的扩展 。
位置:交换空间可以划分在常规文件系统中,但更常见的做法是把它放在一个单独的磁盘分区里(这样速度更快) 。
分配时机:不同系统策略不同。4.3BSD 在进程启动时分配;Solaris 2 只有在页面真正被挤出物理内存时才分配交换空间 。
五、 RAID 结构 (RAID Structure)
RAID(独立磁盘冗余阵列):通过使用多块磁盘并引入冗余 (redundancy) 来提高系统的可靠性和性能 。
核心技术:
条带化 (Disk striping):将多个磁盘作为一个存储单元来使用,提升读写并行速度 。
镜像/阴影 (Mirroring / Shadowing):为每个磁盘保留一个完全相同的副本,可靠性最高但成本最大 。
交错奇偶校验 (Block interleaved parity):通过计算校验数据来实现冗余,使用的空间比镜像少得多 。
常见级别(课件中列出了 6 个基础级别及组合) :
RAID 0:仅条带化,无冗余(速度极快,但坏一块盘数据全毁)。
RAID 1:纯镜像(最安全,但空间利用率仅50%)。
RAID 5:块交错分布式奇偶校验(兼顾速度与安全,企业最常用)。
RAID 0+1 / 1+0:结合了条带化和镜像的混合方案 。
六、 三级存储与性能考量 (Tertiary Storage & Performance)
1. 三级存储设备 (Tertiary Storage Devices)
其决定性特征就是低成本,通常使用可移动介质 (removable media) 。
可移动磁盘:如软盘、磁光盘。磁光盘(用激光加热辅助写入,抗碰撞能力强) 。
WORM 磁盘:即“一次写入,多次读取”。用激光在铝膜上烧孔,数据极度耐用可靠,无法被修改(适用于光盘、DVD等) 。
磁带库:通常配合机器手臂 (robotic tape changers) 使用,组成海量归档库 。注意:磁带是“仅追加 (append-only)”设备,在磁带中间更新一个块会擦除该块之后的所有内容 。
2. 操作系统支持:HSM (分层存储管理)
将存储层次结构扩展到了三级存储(磁带自动点唱机等) 。
运行逻辑:小且常用的文件留在磁盘上;大、旧、不活跃的文件被自动归档到磁带库中 。
3. 性能与成本权衡 (Performance Issues)
速度:衡量指标是带宽 (Bandwidth) 和 延迟 (Latency)。有效带宽 (Effective bandwidth) 要综合考虑 I/O 时间、寻道时间和介质切换时间 。
可靠性:固定磁盘 > 可移动磁盘;光学介质 > 磁性介质。磁盘磁头碰撞会毁掉数据,而磁带机故障通常不会伤害磁带本身 。
成本:只有当介质(如磁带盒)的数量远远多于驱动器数量时,三级存储才能真正节省成本(因为驱动器贵,介质便宜) 。
🚀 时代拓展:固态硬盘 vs 普通硬盘 (SSD vs HDD)
随着技术进步,固态硬盘成为了主流:
SSD (固态硬盘):由控制单元和固态存储单元(DRAM 或 FLASH 芯片)组成 。
性能碾压:SSD 没有机械磁头,因此随机读取极快,读延迟极小(直接消灭了寻道时间和旋转延迟) 。
缺点:价格相对传统机械硬盘更贵 。
复习提示:本章考试的“重灾区”是磁盘调度算法(给一个请求队列让你画路线算总距离) 以及 RAID 级别的特性对比。
如果您喜欢我的文章,可以考虑打赏以支持我继续创作.