编程知识 cdmana.com

操作系统复习——第十二章 大容量存储器结构

一个典型的坏扇区事务处理可能如下:

·操作系统试图访问逻辑块87。

·控制器计算ECC的值,发现该块是坏的,它将此结果通知操作系统。

·下次操作系统重启时,可以运行一个特殊程序以告诉SCSI控制器用备用块替代坏块。

·之后,每当系统试图访问逻辑块87时,这一请求就转换成控制器所替代的扇区的地址。

  • 12.6 交换空间管理
  • 12.7 RAID结构(磁盘冗余阵列)
    • 一个系统拥有了大量磁盘,它就有机会改善数据读写速度(因为磁盘操作可并行进行)。而且,这种设置也使系统有机会改善数据存储的可靠性,因为可在多个磁盘上存储冗余信息。因此,一个磁盘损坏并不会导致数据丢失。这里的多种磁盘组织技术,通常统称为磁盘冗余阵列(RAID)技术,通常用于提高性能和可靠性。
    • 可靠性问题的解决方法是引入冗余
    • 复制每个磁盘 镜像技术 mirroring
    • 条带化 striping 采用多个磁盘,通过将数据分散在多个磁盘上,也可以改善传输率。最简单形式是,数据分条。 (通过并行处理改善性能,但不能提高可靠性)
    • RAID级别
    • 镜像提供高可靠性,但昂贵,分散(条带化)提供了高数据传输率,但并未改善可靠性。
  • 12.8稳定存储实现
    • 稳定存储:存储在稳定存储上的数据是永远不会丢失的。为了实现这种存储,需要在多个具有独立出错模式的存储设备(通常为磁盘)上复制所需信息。
    • 磁盘写 可能有三种情况:成功完成,部分差错,完全查错。
  • 这种控制器所引起的重定向可能会使操作系统的磁盘调度算法无效。为此,绝大多数磁盘在格式化时为每个柱面都留了少量的备用块,还保留了一个备用柱面。当坏块需要重新映射时,控制器就尽可能使用同一柱面的备用扇区。
  • 作为扇区备用的另一方案,有的控制器采用扇区滑动(sector slipping)来替换坏扇区。这里有一个例子:假定逻辑块17变坏,而第一个可用的备用块在扇区202之后。那么,扇区滑动就将所有从17~202的扇区向下滑动一个扇区,即扇区202复制到备用扇区,201到202,200到201等,直到扇区18复制到扇区19。这样滑动扇区使得扇区18为空,这样可将扇区17映射到其中。
  • 12.1 大容量存储器结构简介
    • 11.1.1磁盘
      • 读写头“飞行”于每个磁盘片的表面之上。磁头与磁臂(disk arm)相连,磁臂能将所有磁头作为一个整体而一起移动。磁盘片的表面被逻辑地划分成圆形磁道(track),磁道再进一步划分为扇区(sector)。位于同一磁臂位置的磁道集合形成了柱面(cylinder)。每个磁盘驱动器有数千个同心柱面,每个磁道可能包括数百个扇区。常用磁盘驱动器的存储容量是按GB来计算的。
      • 当磁盘在使用时,驱动器马达会高速旋转磁盘。大多数驱动器每秒可转60~200圈。磁盘速度有两部分。传输速率(transfer rate)是在驱动器和计算机之间的数据传输速率。定位时间(positioning time),有时称为随机访问时间(random access time),由寻道时间(seek time)(移动磁臂到所要的柱面所需时间)和旋转等待时间(rotational latency)(等待所要的扇区旋转到磁臂下所需时间)组成。典型磁盘能以每秒数兆字节的速率传输,寻道时间和旋转等待时间为数毫秒。
      • 由于磁头飞行于极薄(数微米)的空气层上,所以磁头有与磁盘表面接触的危险。虽然磁盘片上涂了一层薄的保护层,但是磁头还是可能损坏磁盘表面,这种现象称为磁头碰撞(head crash)。磁头碰撞不能修复,此时整个磁盘必须替换。
    • 11.1.2 磁带
  • 12.2 磁盘结构
    • 现代磁盘驱动器可以看做一个一维的逻辑块的数组,逻辑块是最小的传输单位。逻辑块的大小通常为512B,虽然有的磁盘可以通过低级格式化来选择不同逻辑块大小,如1024B,
    • 通过映射,至少从理论上能将逻辑块号转换为由磁盘内的柱面号、柱面内的磁道号、磁道内的扇区号所组成的老式磁盘地址。事实上,执行这种转换并不容易,这有两个理由。第一,绝大多数磁盘都有一些缺陷扇区,因此映射必须用磁盘上的其他空闲扇区来替代这些缺陷扇区。第二,对有些磁盘,每个磁道的扇区数并不是常量。
  • 12.3 磁盘附属
    • 计算机访问磁盘存储有两种方式。一种方式是通过I/O端口(或主机附属存储(host-attached storage)),小系统常采用这种方式。另一方式是通过分布式文件系统的远程主机,这称为网络附属存储(network-attached storage)。
    • 12.3.1 主机附属存储
      • 通过本地I/O端口访问的存储。 典型台式机采用I/O总线结构
      • SCSI是个总线结构。
    • 网络附属存储 RPC 远程过程调用。
    • 存储区域网络 SAN
  • 12.4 磁盘调度
    • 操作系统的任务之一就是有效地使用硬件。对磁盘驱动器来说,满足这一要求意味着要有较快的访问速度和较宽的磁盘带宽。访问时间包括两个主要部分:寻道时间和旋转延迟。寻道时间是磁臂将磁头移动到包含目标扇区的柱面的时间。旋转延迟是磁盘需要将目标扇区转动到磁头下的时间。磁盘带宽是所传递的总的字节数除以从服务请求开始到最后传递结束时的总时间。可以通过使用适当的访问顺序来调度磁盘I/O请求,提高访问速度和带宽。
    • 11.4.1 FCFS 调度
      • 先来先服务
    • 12.4.2 SSTF调度shortest-seek-time-first
      • 最短寻道时间优先算法 在将磁头移到远处以处理其他请求之前,先处理靠近当前磁头位置的请求可能较为合理。SSTF算法选择距当前磁头位置由最短寻道时间的请求来处理。由于寻道时间随着磁头所经过的柱面数而增加,SSTF选择与当前磁头位置最近的待处理请求。
    • 12.4.3 SCAN调度
      • scan扫描算法 对于SCAN算法,磁臂从磁盘的一端向另一端移动,同时当磁头移过每个柱面时,处理位于该柱面上的服务请求。当到达另一端时,磁头改变移动方向,处理继续。磁头在磁盘上来回扫描。 有时称为电梯算法。
    • 12.4.4 C-SCAN调度
      • C-SCAN(circular SCAN,C-SCAN)调度是SCAN调度的变种,主要提供一个更为均匀的等待时间。与SCAN一样,C-SCAN将磁头从磁盘一端移到磁盘的另一端,随着移动不断地处理请求。不过,当磁头移到另一端时,它会马上返回到磁盘开始,返回时并不处理请求。C-SCAN调度算法基本上将柱面当做一个环链,以将最后的柱面和第一个柱面相连。
    • 12.4.5 LOOK调度
      • 正如以上所述,SCAN和C-SCAN使磁头在整个磁盘宽度内进行移动。事实上,这两个算法都不是这么实现的。通常,磁头只移动到一个方向上最远的请求为止。接着,它马上回头,而不是继续到磁盘的尽头。这种形式的SCAN和C-SCAN称为LOOK和C-LOOK调度,这是因为它们在朝一个方向移动会看(look)是否有请求。
    • SSTF优于FCFS SCAN和C-SCAN对于磁盘负荷较大的系统会执行的更好,这是因为它不可能产生饿死问题。
  • 12.5 磁盘管理
    • 磁盘初始化,磁盘引导 坏块恢复。
    • 12.5.1 磁盘格式化
      • 在磁盘能存储数据之前,它必须分成扇区以便磁盘控制器读和写。这个过程称为低级格式化(或物理格式化)
      • ECC纠错代码 error-correcting code
      • 1、 低级格式化
      • 2、 分区 将磁盘分成由一个或多个柱面组成的分区
      • 3、 逻辑格式化(创建文件系统)。操作系统将初始的文件系统数据结构存储到磁盘上。这些数据结构包括空闲和已分配的空间(FAT或inode)和一个初始为空的目录。
    • 12.5.2 引导块
      • 对绝大多数计算机,自举程序保存在只读存储器(ROM)中。这一位置较为方便,由于ROM不需要初始化且位于固定位置,这便于处理器在打开电源或重启时开始执行。
      • 绝大多数系统只在启动ROM中保留一个很小的自举加载程序,其作用是进一步从磁盘上调入更为完整的自举程序。这一更为完整的自举程序可以容易地进行修改:新版本可写到磁盘上。这个完整的自举程序保存在磁盘的启动块上,启动块位于磁盘的固定位置。拥有启动分区的磁盘称为启动磁盘(boot disk),或系统磁盘(system disk)。
      • 开机步骤:
      • 首先加电 引导 然后运行系统ROM上的代码,开始启动 然后从MBR(master boot record 主引导记录)中读取引导代码。MBR中包含一个硬盘分区列表和一个说明系统引导分区的标志。
      • 系统确定引导分区,读取该分区第一个扇区(即所谓的引导扇区(boot sector))并继续余下的启动过程,包括加载各种子系统和系统服务。
    • 12.5.3 坏块
      • 其控制器维护一个磁盘坏块链表。该链表在出厂前进行低级格式化时就已经初始化了,并在磁盘整个使用过程中不断更新。低级格式化将一些块放在一边作为备用,操作系统看不到这些块。控制器可以用备用块来逻辑地替代坏块。这种方案称为扇区备用(sector sparing)或转寄(forwarding)。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

版权声明
本文为[种花家的奋斗兔]所创,转载请带上原文链接,感谢
https://cloud.tencent.com/developer/article/1747166

Scroll to Top