1、操作系统概念,第十四章:大容量存储器结构,2,本章主要内容,磁盘结构 磁盘调度 磁盘管理 交换空间管理 RAID结构 第三级存储结构,3,14.1 磁盘结构,现代磁盘驱动器可以看做一个一维的逻辑块的数组,逻辑块是最小的传输单位 一维逻辑块数组按顺序映射到磁盘的扇区。 扇区0是最外面柱面的第一个磁道第一个扇区。 该映射是先按磁道内扇区顺序,再按柱面内磁道顺序,再按从外到内的柱面顺序来排序的。,4,温彻斯特盘,5,事实上,执行逻辑块号到老式磁盘地址的转换并不容易,这有两个理由: 绝大多数磁盘都有一些缺陷扇区,因此映射必须用磁盘上的其他空闲扇区来替代这些缺陷扇区。 对于有些磁盘,每个磁道的扇区数并不
2、是常量。 常量线性速度(constant linear velocity) 磁道的位密度 恒定圆角速度(constant angular velocity, CAV),6,14.2 磁盘调度,OS的任务之一就是有效地使用硬件。对磁盘驱动器,满足这一要求意味着要有较快的访问速度和较宽的磁盘带宽。 磁盘带宽:所传递的总字节数除以从服务请求开始到最后传递结束时的总时间。 访问时间有以下两个主要部分 寻道时间:磁臂将磁头移动到包含目标扇区的柱面的时间。 旋转延迟:磁盘需要将目标扇区转动到磁头下的时间。 最小化寻道时间 寻道时间可以用寻道距离来表示,7,有几种算法可以调度磁盘请求 假定有以下磁盘请求(磁
3、道编号从0199) 98, 183, 37, 122, 14, 124, 65, 67 当前磁头位置为53,8,FCFS,9,SSTF(最短寻道时间优先算法),从当前磁头位置选择最短寻道时间的请求 SSTF(shortest-seek-time-first)基本上是一种最短作业优先(SJF)调度,与SJF调度一样,它可能导致某些请求的饥饿。,10,SSTF,11,SCAN调度,磁臂从磁盘的一端向另一端移动,同时当磁头移过每个柱面时,处理位于该柱面上的服务请求。当到达另一端时,磁头改变移动方向,处理继续。磁头在磁盘上来回扫描。 有时也叫做“电梯”算法,12,13,C-SCAN,是SCAN调度的变
4、种,主要提供一个更为均匀的等待时间。 与SCAN一样,CSCAN将磁头从磁盘一端移到磁盘的另一端,随着移动而不断地处理请求。不过,当磁头移到另一端时,它会马上返回到磁盘开始,返回时并不处理请求。 CSCAN调度算法基本上将柱面当做一个环链,以将最后柱面和第一柱面相连。,14,C-SCAN(续),15,LOOK调度与C-LOOK调度,事实上,SCAN与CSCAN算法都不是那样实现的。通常,磁头只移动到一个方向上最远的请求为止。接着,它马上回头,而不是继续到磁盘的尽头。这种形式的SCAN和C-SCAN称为LOOK和C-LOOK调度。,16,C-LOOK,17,磁盘调度算法的选择,SSTF较为普通且
5、很有吸引力 SCAN和C-SCAN对磁盘负荷较大的系统会执行得更好,这是因为它不可能产生饥饿问题。 对于任何调度算法,性能依赖于请求的类型与数量 磁盘服务请求很大程度上受文件分配方法所影响 磁盘调度算法应作为一个操作系统的独立模块,这样如果有必要,它可以替换成另一个不同的算法。 SSTF或LOOK是比较合理的缺省算法。,18,其它问题,操作系统比较难以调度来改善旋转等待,这是因为现代磁盘并不透露逻辑块的物理位置。 事实上OS对请求服务顺序还有其他限制,如: 按需分页比I/O的优先级高 有时写操作比读操作更重要,19,14.3 磁盘管理,低级格式化或物理格式化 将磁盘分成磁盘控制器能读与写的扇区
6、 每个扇区的数据结构通常由头、数据区域和尾部组成。头部和尾部包含了一些磁盘控制器所使用的信息,如扇区号码和纠错代码(error-correcting code, ECC) 为了让磁盘能够存储文件,OS还必须在磁盘上记录上一定的数据结构 分区 逻辑格式化(创建文件系统) 引导块 绝大多数系统只在启动ROM中保留一个很小的自举装入程序,其作用是进一步从磁盘上调入更为完整的自举程序(保存在磁盘的启动块上)。,20,MS-DOS磁盘布局,21,坏块,磁盘容易出问题。经常遇到的问题是:一个或多个扇区坏掉。 对于简单磁盘如使用IDE控制器的磁盘,坏扇区可手工处理。 Format Chkdsk 更为复杂的磁
7、盘,如用于高端计算机、绝大多数工作站和服务器上的SCSI磁盘,对坏块的处理更为聪明 扇区备用或转寄,22,14.4 交换空间管理,交换空间概念 虚拟内存使用磁盘空间作为主存的扩展(会严重影响系统性能) 交换空间的使用 Swap:保存整个进程映像,包括代码段和数据段 Switch:存储换出内存的页 交换空间太小容易造成死机现象 交换空间的位置 交换空间在普通文件系统上加以创建。通常是文件系统内的一个简单大件(如Windows)。这种方式实现简单但效率较低。(外部碎片) 交换空间创建在独立的磁盘分区上(如Unix/Linux)。(内部碎片) 有些OS较为灵活,可以由系统管理员来选择使用以上哪种方式
8、。 交换空间管理 4.3 BSD在进程启动的时候分配交换空间,用来保存文本段(代码段)和数据段 内核使用交换映射来跟踪交换空间的使用 Solaris 2当页被强制换出内存的时候分配交换空间。,23,4.3 BSD系统的代码段交换表,24,4.3 BSD数据段的交换表,25,14.5 RAID结构,RAID (Redundant Array of Independent Disks) 多个磁盘通过冗余实现可靠性 通过冗余改善可靠性 假设单个磁盘出错的概率为,则n个磁盘出错的概率为/n。如果只存储数据的一个拷贝,只要n个磁盘中的一个磁盘出错,数据就出现错误。因此n个磁盘的出错率大于1个磁盘的出错率
9、。 可靠性问题的解决方法是引入冗余。 镜像 通过并行处理改善性能 数据分散:通过在多个磁盘上分散数据,能够改善传输率。 位级分散 块级分散,26,RAID级别,27,RAID 0 + 1 和 1 + 0,28,14.8 第三级存储结构,第三级存储设备 可移动磁盘 软盘 磁光盘(激光与磁场同时作用于盘面上的磁性材料) 光盘:相位变化盘(CD-RW、DVD-RW),读写盘(read-write disk)、一次写多次读的盘(Write-once, read-many-times, WORM, 如CD-R和DVD-R)、一次写盘(如CD-ROM、DVD) 磁带 容量大,但随机访问要比磁盘寻道时间慢很
10、多 未来技术 全息照相存储器 另一种热门研究的存储技术是基于微电子机械系统,29,操作系统作业,操作系统的两个主要任务是管理物理设备和为应用程序提供一个虚拟机器的抽象。 对于磁盘,OS提供了两种抽象 生设备(raw device) 文件系统 应用接口 对磁盘,基本操作为read、write、seek 对磁带,则没有seek, 有locate操作 绝大多数磁带驱动器有一个read position操作以返回磁头所处的逻辑块号 绝大多数磁带驱动器,写一块具有副作用:即会删除写位置之后的所有内容。,30,文件命名 有些类型的可移动介质已经标准化,以致于所有计算机按同样方式进行使用。如CD,音乐CD具
11、有统一格式,可为任何驱动器所使用。,31,层次存储管理 自动光盘塔(robotic jukebox):切换磁带或光盘驱动器内有可移动盘,而无需人工干预 层次存储系统扩展了存储层次,使其不但包括内存和外存还包括可移动存储。 虽然虚拟内存系统可直接扩展到第三层次存储器,但是事实上这种扩展很少实现。 可移动存储通常用来扩展文件系统。,32,性能(速度、可靠性、价格),速度 带宽 持续带宽:一个大传输的平均速率,即字节数量被传输时间所除 有效带宽:计算整个时间内(包括寻道或定位时间、盘片切换时间等)的平均值。 驱动器的带宽通常指持续带宽 延迟 磁盘比磁带快,磁带的随机访问要比磁盘的随机访问慢数千倍。 光盘塔的延迟就更大了。切换盘片耗时,33,可靠性 可移动磁盘与固定磁盘相比,其可靠性要差,因为它更容易受到外界环境的影响。 光盘毗磁盘或磁带更为可靠。 价格 主存的价格比磁盘存储的价格高很多 硬磁盘每兆字节的价格比磁带的价格更有竞争力。(如果一个磁带驱动器上只用一盒磁带的话) 以往,最便宜的磁带驱动器与最便宜的磁盘驱动器具有相近的存储能力。,34,1981年到2000年DRAM价格,35,1981年到2000年硬磁盘价格(每兆字节),36,1984年到2000年磁带价格,37,作业,14.1 14.2 14.10 14.15 14.27 14.29 14.30,