大容量存储器的结构
大容量存储器结构简介
磁盘
- 常用磁盘片的直径为1.8~5.25英寸。
- 每个磁盘片的两面都涂着磁质材料。
- 相关概念:磁头、磁臂、磁道、扇区、柱面。
- 常用磁盘驱动器的容量是按照GB来算的。
- 大多数驱动器,磁盘每秒可转动60~200圈。
- 传输速率(每秒数兆)
- 定位时间(随机访问时间):寻道时间+旋转等待时间(毫秒)。
- 磁头碰撞:磁头接触到磁盘面而损坏磁盘。
磁带
访问速度慢常用于备份数据。
磁盘结构
- 现代磁盘驱动器可以看做一个一维的逻辑块的数组,逻辑块是最小的传输单位。逻辑块的大小通常为 512 B。
- 扇区0是最外面柱面的第一个磁道的第一个扇区。该映射是先按磁道内扇区顺序,再接柱面内磁道顺序,最后接从外到内的柱面顺序来排序的。
- 通过映射,至少从理论上能将逻辑块号转换为由磁盘内的柱面号、柱面内的磁道号、磁道内的扇区号所组成的老式磁盘地址。
- 事实上,执行这种转换并不容易,这有两个理由:
第一,绝大多数磁盘都有一些缺陷扇区,因此映射必须用磁盘上的其他空闲扇区来替代这些缺陷扇区。
第二,对有些磁盘,每个磁道的扇区数并不是常量。 - 常量线性速度:每个磁道的位密度是均匀的,从外到内时,每个磁道的扇区数也会减少。随着磁头由外移到内,驱动器会增加速度以保持磁头续写的数据速率恒定。
- 恒定圆角速度:磁盘转动速度可以保持不变,因此内磁道到外磁道的位密度要不断降低以保持数据率不变。这种方法被用在硬盘中。
磁盘附属
计算机访问磁盘存储有两种方式:
- 一种方式是通过I/O 端口(或主机附属存储 (hostattached storage) ) ,小系统常采用这种方式。
- 另一方式是通过分布式文件系统的远程主机,这称为网络附属存储 (network-attached storage) 。
磁盘调度
FCFS
按照请求到达顺序进行访问。
统计总的走过的柱面数,柱面数越多,所需时间越长。
缺点:花费时间太长
SSTF(最短寻道时间优先算法)
寻找离当前位置最近的磁道访问。
缺点:有可能位置较远的请求永远得不到响应。
SCAN(电梯算法)
磁臂从磁盘的一端向另一端移动,同时当磁头移过每个柱面时,处理位于该柱面上的服务请求。当到达另一端时,磁头改变移动方向,处理继续。磁头在磁盘上来回扫描。
缺点:假设磁盘服务请求均匀地分布在各个柱面上, -f面来研究一下当磁头移到磁盘一端并掉转方向时请求的分布情况。这时,紧靠磁头之前的请求只有少数,因为这些柱面上的请求刚刚处理过。而在磁盘的另一端的请求密度却最大。
C-SCAN(circular SCAN)
C-SCAN (circular SCAN, C-SCAN) 调度是 SCAN 调度的变种,主要提供一个更为均匀的等待时间。与 SCAN →样, C-SCAN 将磁头从磁盘一端移到磁盘的另一端,随着移动不断地处理请求。不过,当磁头移到另一端时,它会马上返回到磁盘开始,返回时并不处理请求(参见图 12.7)0 C-SCAN 调度算法基本上将柱面当做一个环链,以将最后的柱面和第一个柱面相连。
C-LOOK
正如以上所述, SCAN 和 C-SCAN 使磁头在整个磁盘宽度内进行移动。事实上,这两个算法都不是这么实现的。通常,磁头只移动到一个方向上最远的请求为止。接着,它马上回头,而不是继续到磁盘的尽头。这种形式的 SCAN 和 C-SCAN 称为 LOOK 和 C-LOOK调度,这是因为它们在朝一个方向移动会看 (look) 是否有请求 。
磁盘管理
磁盘格式化
在磁盘能存储数据之前,它必须分成扇区以便磁盘控制器能读和写,这个过程称为低级格式化(或物理格式化)
为了使用磁盘存储文件,操作系统还需要将自己的数据结构记录在磁盘上。这分为两步:
- 将磁盘分为一个或多个柱面组成的分区。
- 逻辑格式化(创建文件系统)。操作系统将初始的文件系统数据结构存储到磁盘上。这些数据结构包括空闲和已分配的空间(FAT或者inode)和一个初始为空的目录
为了提高效率,大多数操作系统将块集中到一大块,通常称作簇(cluster)。磁盘IO通过块完成,但是文件系统IO通过簇完成。
引导块
初始化自举程序初始化系统的各个方面,随后启动操作系统。
坏块
比较常见的磁盘问题是一个或多个扇区坏掉,绝大多数磁盘从工厂里出来时就有坏块。
对于复杂的磁盘,通常采用扇区备用(sector sparing)/ 转寄(forwarding):
- 磁盘的控制器维护一个磁盘坏块链表,该链表在低级格式化时已经初始化,并在磁盘整个使用过程中不断更新。
- 低级格式化时将一些块放在一边作为备用,操作系统看不到这些备用的块。控制器可以用备用块来逻辑地替代坏块。
交换空间管理
当物理内存的数量到达临界低点,进程(通常选择最不活跃的进程)从内存转移到交换空间以释放内存空间。
交换空间管理是操作系统的另一底层任务。虚拟内存使用磁盘空间作为内存的扩充。交换空间设计和实现的主要目的是为虚拟内存提供最佳吞吐量。
交换空间的使用
不同的操作系统有不同的使用方式,如:
- 保存整个进程映像
- 换页系统可能只用交换空间以存储换出内存的页
- 有的操作系统允许使用多个交换空间。
交换空间的位置
交换空间可以有两个位置:
- 在普通文件系统上创建
- 在一个独立的磁盘分区上进行