操作系统学习笔记:大容量存储器的结构

一、大容量存储器结构简介 概述次级和三级存储器设备的物理结构

1、磁盘 大容量外存。

传输速率:驱动器和计算机之间的数据传输速率。 定位时间:随机访问时间,由寻道时间(移动磁臂到所要柱面所需时间)和旋转等待时间(等待所要的扇区旋转到磁臂下所需时间)组成。

磁盘驱动器通过一组称为I/O总线(IO bus)的线与计算机相连。有多种总线,如EIDE、ATA、SATA、USB、FC和SCSI。

由称为控制器的特殊处理器执行总线上的数据传输。分为主机控制器和磁盘控制器。主机控制器在计算机上,总线末端;磁盘控制器在磁盘内。计算机通过内存映射端口向主机控制器发送一个命令,主机控制器接着通过消息将命令传送给磁盘控制器,最后由磁盘控制器操纵磁盘驱动器硬件以执行命令。磁盘控制器通常有内置缓存。

2、磁带

二、磁盘结构 可以看做一个一维的逻辑块数组。逻辑块是最小的传输单位,通常为512B。可以通过低级格式化来设置逻辑块大小。 一维逻辑块数组按顺序映射到磁盘的扇区。扇区0是最外面柱面的第一个磁道的第一个扇区,如此由外到内排列。这样理论上能将逻辑块号转换为柱面号+磁道号+扇区号组成的老式磁盘地址。但这种转换实属不易,因为磁盘会有缺陷扇区,映射时必须用其他空闲扇区来顶替;其次是有些磁盘,每个磁道的扇区数并不是一样的。原因是离心远的磁道比较长,扇区数更多。为保持磁盘读写数据速率恒定,有两种方法:1是磁道位密度均匀,读写外磁道时,转速要比相对靠内的磁道快,此为常量线性速度(CLV);2是转速不变,但外磁道密度降低,此为恒定圆角速度(CAV)。

三、磁盘附属 计算机访问磁盘存储有两种方式,一是通过IO端口或主机附属存储,二是通过分布式文件系统的远程主机, 称为网络附属存储。 1、主机附属存储 通过本地IO端口访问。有多种技术:IDE、ATA、SATA、SCSI或FC。后2种常用在高端工作站和服务器。SCSI是个总线结构;FC是高速串行结构。 有多种存储设备可用于主机附属存储,包括硬盘、RAID阵列、CD、DVD和磁带。

2、网络附属存储 数据网络总远程访问的专用存储系统。客户机通过远程进程调用接口来访问NAS。远程进程调用(RPC)可通过IP网络的TCP或UDP来进行。存储单元通常用带有RPC接口软件的RAID阵列。

网络附加存储为局域网(靠,那云计算是咋回事?)上所有计算机提供了一个共享存储的方便方法。但效率及性能不如主机附加存储。 iSCSI是一种新的网络附加存储协议,使用IP网络协议来实现SCSI协议。

3、存储区域网络 存储区域网络(SAN)是服务器与存储单元之间的私有网络,采用存储协议而不是网络协议。优势在于灵活性,多个主机和存储阵列可以附加在同一SAN上,存储动态分配给主机。SAN能够让服务器集群共享同一存储,或者让存储阵列与多个主机直连。与存储阵列相比,SAN端口更多更低成本。

FC是一种最常见的SAN互联。而Infiniband是一种新兴的专门总线架构,在服务器和存储单元之间提供高速互联网络硬件和软件支持。

四、磁盘调度 访问磁盘的时间包括两个主要部分:寻道时间和旋转延迟。寻道时间是磁臂将磁头移动到包含目标扇区的柱面的时间,旋转延迟是磁盘需要将目标扇区转动到磁头下的时间。磁盘带宽是传输速率。可以通过调整访问顺序来调度磁盘IO,提高速度和带宽。

每当一个进程需要进行磁盘IO,就向操作系统发出一个系统调用。如果磁盘和控制器空闲,那么请求会马上处理,否则会到磁盘请求队列排队。这就牵涉到磁盘调度算法。

1、FCFS调度 先来先服务(FCFS)。公平,但不是最快的。因为磁头可能会疲于奔命,而无法顺路处理。

2、SSTF调度 最短寻道时间优先算法。磁头移动过程中,沿路处理请求。该算法可能导致一些请求永远得不到处理,因为请求源源不断涌来,远处的只能傻傻的等待。

3、SCAN调度 磁臂从一端向另一端移动,沿路处理请求。当到达另一端时,往回走,沿路处理,如此循环往复。又称为电梯算法。

4、C-SCAN调度 SCAN的变种。从磁头移到另一端时,沿路处理请求。到达另一端时,往回走,但并不处理,而是回到原先起点后再开始。

5、LOOK调度 SCAN和C-SCAN其实并不是从一端跑到另一端的终点,而是只移动到一个方向的最远请求点就往回走了。返回时也如是。称为LOOK和C-LOOK。

6、磁盘调度算法的选择 算法多多,如何选择? 磁盘服务请求很大程度上受文件分配方法影响。连续分配的文件请求点位置相近,而链接或索引文件物理分散,大量的磁头移动。 另外,磁盘调度不仅仅由磁盘控制器决定,也受操作系统控制。

五、磁盘管理 1、磁盘格式化 分为低级格式化和格式化。 低级格式化又称为物理格式化,作用是将新磁盘分成扇区以便磁盘控制器能读和写。每个扇区有相应的数据结构,会有扇区号码和纠错代码。如何划分扇区的大小是个问题。通常磁盘出厂时已被低格处理。 而我们自己进行的格式化,相应地称为逻辑格式化。是操作系统将文件系统写到磁盘上。在此之前,还应该进行分区,将磁盘分为一个或多个柱面组成的分区。 有的操作系统或数据库软件直接将某个分区不经过逻辑分区就使用,此为生磁盘,上面没有任务文件系统数据结构,只作为一个大顺序数组。 为了提高效率,大多数操作系统将块集中到一大块,称为簇。磁盘IO通过块完成,但文件系统IO通过簇完成。

2、引导块 计算机开机或重启时,需要运行一个初始化程序。它初始化系统的各个方面,从CPU寄存器到设备控制器和内存,接着启动操作系统。对大多数计算机而言,自举程序保存在主板的ROM中,但这只是自举程序的小部分,其作用是进一步从磁盘上调入更完整的自举程序。这部分完整程序保存在磁盘的启动块上,启动块位于磁盘的固定位置。拥有启动分区的磁盘称为启动磁盘或系统磁盘。

3、坏块 每个磁盘或多或少存在坏块。对这些块有多种处理方式。比如IDE控制器,逻辑格式化的时候,会在FAT条目中写上标记表示其不可用;SCSI磁盘维护一个坏块链表,使用过程中不断更新。控制器会用备用块来逻辑替代坏块。坏块链表和备用块在低格时就已存在。

旅行,不要害怕错过什么,

操作系统学习笔记:大容量存储器的结构

相关文章:

你感兴趣的文章:

标签云: