1、大容量存储器的结构,概念,二级存储器三级存储器磁带, 可移动磁盘设备 (软盘, CD-ROM)主要用于备份, 长期存储, 大数据集, 与其他系统进行文件交换那什么是“主”存储器?RAM,存储层次,速度,快慢,磁盘结构,磁盘结构,按逻辑块的一维数组方式进行编址特别的,每块512字节逻辑块映射到磁盘 扇区转换机制(块号 到 柱面/磁道/扇区) (block # to cylinder/track/sector),磁盘结构,假设一个磁盘有200个柱面,每个柱面有10个磁道,每个盘面被划分成8个扇区,所有的编号都从“0”开始每个柱面的块数磁道*扇区数10*880块总数柱面数*每柱面块数200*10*8
2、逻辑块“1002”对应磁盘哪个柱面、磁道和扇区?柱面1002/8012,余数10028042磁道42/85扇区4282,磁盘结构,转换是复杂的,因为每个磁道的扇区数不是常数 最外磁道的扇区数可能比最内磁道的多40%的如果存在扇区,空闲扇区必须替代磁盘技术改善每个磁盘成千个柱面每个磁道多余100个扇区 (磁盘的外部区域),磁盘调度,磁盘调度,OS必须确保对磁盘的快速访问访问磁盘数据涉及两个延迟查找时间 把磁头移动到要求的柱面的时间旋转延迟 扇区旋转到磁头下的时间磁盘带宽传输的总字节数, 除以第一次发出服务请求到最后传输完毕的时间间隔,磁盘调度,我们可以通过以合理的顺序调度磁盘的服务请求来改善访问
3、时间和带宽在多用户操作系统中, 可能有多个进程在竞争磁盘请求被放入队列中操作系统必须从队列中选择一个请求来服务,FCFS 调度算法,先来先服务First come, first served请求 柱面 98, 183, 37, 122, 14, 124, 65, 67, 初始位置 53,time,cylinder,14,37,53,65,98,122,124,183,67,FCFS 调度算法,在前一个例子中,使用 FCFS, 磁头移动过的柱面总数为640640=(98-53)+(183-98)+(183-37)+(122-14)+(124-14)+(124-65)+(67-65)通过使用不同的
4、算法,磁头的运动可以被充分减少当磁头在 122号柱面时 (接下去的请求为 柱面14, 124, ), 先为124号柱面服务不是个更好主意吗?,FCFS 调度算法,算法特点算法简单平均寻道距离较大响应时间较高降低设备服务的吞吐量但各进程得到服务的响应时间的变化幅度较小适用于访问请求不是很多的情况,SSTF调度算法,最短查找时间优先为最靠近磁头当前位置的请求服务请求队列 - 98, 183, 37, 122, 14, 124, 65, 67, 初始位置 53,time,14,37,53,65,98,122,124,183,67,SSTF调度算法,服务顺序为53, 65, 67 , 37, 14,
5、98, 122, 124, 183,结果磁头运动只要236个柱面与 SJF CPU调度类似, 可能导致一些请求饿死请求可能在任何时间到达,悬而未决的请求使队列可能变长FCFS的一个改进, 但不是最佳的,SSTF调度算法,算法特点可以得到比较好的吞吐量较低的平均响应时间对用户的服务请求响应机会不是均等的对中间磁道的访问请求将得到最好的服务,对内外两侧磁道的服务随偏离中心磁道的距离而越来越差不适用于服务请求多的情况有些请求的响应时间不可预见,可能无限延迟,SCAN调度算法,“电梯算法磁头在一个方向上运动, 在途中为请求服务, 直到到达磁盘末端, 然后反向(移动)请求队列- 98, 183, 37,
6、 122, 14, 124, 65, 67, 初始位置 53,time,14,37,53,65,98,122,124,183,67,SCAN调度算法,服务顺序:53, 37, 14, 65, 67, 98, 122, 124, 183 导致磁头运动只要208个柱面如果在队列中出现的请求(所请求的柱面)正好在磁头前面, 它马上被服务但是如果请求正好在磁头后面, 那么(该请求)必须等待,直到(磁头)臂移动到磁盘末端,反个方向,然后移回来,SCAN调度算法,算法特点基本克服了SSTF策略的服务于中间磁道和响应时间变化比较大的缺点具有SSTF策略的优点,即吞吐量比较大,平均响应时间比较小算法要求除了知
7、道磁头的当前位置,还必须知道磁头的运动方向由于摆动式扫描方法,两侧仍低于中间,只是不那么严重,C-SCAN调度算法,循环扫描策略(单向调度Circular SCAN,CSAN)假设当磁头到达磁盘的末端时, 大部分的新请求将会在磁盘的另一端(0开始), 所以移回到那儿,LOOK & C-LOOK调度算法,Like SCAN & C-SCAN但是(磁头)只移动到当前为服务队列的最远端, 而不是磁盘的末端在继续移动之前,先查看请求,time,14,37,53,65,98,122,124,183,67,磁盘调度算法的性能分析,性能分析,哪一个更好?SSTF 比较通用,性能一般,因为它是在FCFS上的改
8、进SCAN(电梯) & C-SCAN (单向)在(高)负载系统中性能更好, 因为他们不可能导致饿死,性能分析,对任一种调度算法, 性能主要依赖于请求的个数假设队列中只有一个突出的请求,那么所有的算法都与 FCFS 一样,性能分析,文件分配方式可能影响性能比如索引分配使磁盘上的数据离散分布,这导致更多的磁头运动 连续分配导致较少的磁头运动,性能分析,目录和索引块的位置也可能影响性能比如, 目录项 在第一个柱面,数据在最后一个柱面或者 索引块 在第一个柱面,而文件的数据块在最后一个柱面Unix中, inodes 的位置会影响性能,性能分析,把目录和索引块 缓存在主存中有助于减少磁头移动磁盘调度算法应该作为OS的独立模块, 以便在必要时,可以用不同的算法替换它SSTF 或 LOOK 都可以作为默认的算法,作业,假设一个磁盘驱动器有5000个柱面,从0-4999,驱动器正在为柱面143的一个请求提供服务,且前面的一个服务请求是在柱面125。按FIFO顺序,即将到来的请求队列是:86,1470,1774,948,1509,1022,1750,130从现在磁头位置开始,按FCFS,电梯调度,最短查找时间优先的磁盘调度算法,分别写出服务的顺序,并计算移动距离(按柱面计算)。,