操作系统学习笔记(十二)-- 大容量存储系统

Posted on 2016-04-17 18:25  paulingzhou  阅读(375)  评论(0编辑  收藏  举报

最近开始学习操作系统原理这门课程,特将学习笔记整理成技术博客的形式发表,希望能给大家的操作系统学习带来帮助。同时盼望大家能对文章评论,大家一起多多交流,共同进步!

本文主要分以下几个方面:

  • 磁盘的结构 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

  1. FCFS First-Come-First-Serve 总共移动640道
  2. 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有七个等级:

  1. RAID0:交叉存取
  2. RAID1:镜像磁盘
  3. RAID2:海明码校验,将数据的海明码存放在恢复盘
  4. RAID3:带奇偶校验码的并行传递
  5. RAID4:带奇偶校验码的独立磁盘结构
  6. RAID5:分布式的奇偶校验的独立磁盘结构
  7. RAID6:两种存储的奇偶校验码的磁盘结构(P+Q redundancy) 例如:RAID0+1 or RAID1+0 两者不相同!!!