您好,欢迎访问三七文档
第六章输入输出系统•第六节磁盘存储器的性能和调度–磁盘的结构–磁盘调度–磁盘高速缓存–提高磁盘速度的方法–RAID介绍磁盘工作机制和性能参数磁道t磁盘轴磁头组扇区s柱面c盘片磁头读写头读取或写入时,磁头必须被定位在期望的磁道,并从所期望的柱面和扇区的开始■寻道时间■定位到期望的磁道所花费的时间旋转延迟■从零扇区开始处到达目的地花费的时间平均旋转延迟时间=磁盘旋转一周时间的一半寻道时间•定位读/写磁头所用的时间•寻道时间越短,I/O操作越快•寻道时间规范包括全程平均道间•磁盘的寻道时间由驱动器制造商指定模块2:数据中心环境4径向移动旋转延迟•盘片通过旋转将数据置于读/写磁头下所用的时间•取决于磁盘轴的旋转速度•平均旋转延迟旋转一周所用的时间的一半对于“X”rpm,驱动器延迟以毫秒为单位按以下方式计算:模块2:数据中心环境5数据传输速度•每单位时间驱动器可以向HBA输送的平均数据量内部传输速度:数据从盘片表面移至磁盘内部缓冲区时的速度外部传输速度:数据通过接口移至HBA时的速度模块2:数据中心环境6接口缓冲区HBA内部传输速度在此测量外部传输速度在此测量磁头磁盘组合磁盘驱动器磁盘I/O传输时间rNbrTTsa21等待设备可用等待通道可用寻道数据传送访问时间设备忙旋转延时磁盘I/O传输时间rNbrTTsa21寻道时间等待设备可用等待通道可用寻道数据传送设备忙旋转延时磁盘I/O传输时间rNbrTTsa21旋转延迟1/r=旋转一周的时间等待设备可用等待通道可用寻道数据传送设备忙旋转延时rNbrTTsa21磁盘I/O传输时间传输时间b=传输的比特数N=磁道上的比特数r=磁盘转数等待设备可用等待通道可用寻道数据传送设备忙旋转延时磁盘调度算法通过优化磁盘访问请求顺序来提高磁盘访问性能■随机处理磁盘访问请求的性能表现很差寻道时间是磁盘访问最耗时的部分同时会有多个在同一磁盘上的I/O请求先进先出(FIFO)算法按顺序处理请求■公平对待所有进程■在有很多进程的情况下,接近随机调度的性能■FIFO算法示例合计磁头移动距离=磁盘访问序列=98,183,37,122,14,124,65,67初始磁头位置:53014375365679812212418319945+85+146+85+108+110+59+2=640最短服务时间优先(SSTF)选择从磁臂当前位置需要移动最少的I/O请求■总是选择最短寻道时间■SSTF算法示例合计磁头移动距离=磁盘访问序列=98,183,37,122,14,124,65,67初始磁头位置:53014375365679812212418319912+2+30+23+84+24+2+59=236扫描算法(SCAN)磁臂在一个方向上移动,访问所有未完成的请求,直到磁臂到达该方向上最后的磁道优先考虑磁头当前的移动方向■调换方向时机■也称为电梯算法(elevatoralgorithm)■SCAN算法示例合计磁头移动距离=磁盘访问序列=98,183,37,122,14,124,65,67初始磁头位置:53014375365679812212418319916+23+14+65+2+31+24+2=236+59算法是与移动臂的方向有关,所以,应分两种情况来讨论。(1)移动臂是向外移的。当前正在53号柱面,在这种情况下为等待访问者服务的次序是:37,14,65,67,98,122,124,183。总的臂移动量为:(53–14)+(183–14)=208cyl.(2)移动臂是向里移的。当前正在53号柱面,在这种情况下为等待访问者服务的次序是:65,67,98,122,124,183,37,14。总的臂移动量为:(183–53)+(183–14)=299cyl.循环扫描算法(C-SCAN)限制了仅在一个方向上扫描时,才响应进程请求■当最后一个磁道也被访问过了后,磁臂返回到磁盘的另外一端再次进行■N步扫描(N-step-SCAN)算法磁头粘着(ArmStickiness)现象■SSTF、SCAN及CSCAN等算法中,可能出现磁头停留在某处不动的情况如:进程反复请求对某一磁道的I/O操作N步扫描算法■将磁盘请求队列分成长度为N的子队列按FIFO算法依次处理所有子队列扫描算法处理每个队列双队列扫描(FSCAN)算法FSCAN算法是N步扫描算法的简化■FSCAN只将磁盘请求队列分成两个子队列FSCAN算法■把磁盘I/O请求分成两个队列交替使用扫描算法处理一个队列新生成的磁盘I/O请求放入另一队列中所有的新请求都将被推迟到下一次扫描时处理对于这些调度算法的优劣比较:1。先来先服务(FIFS):算法简单,但效率差。2。最短寻找时间优先调度算法:效率比较高,但会出现有的请求很长时间得不到响应。3。单向扫描调度算法:效率比较高,但有一个空行程。4。电梯调度算法:是一个比较合理、优化的算法。5.NStepSCAN和FSCAN:防止磁臂粘着。5.6磁盘的驱动调度一、磁盘的结构每个盘片有正反两面,若干张盘片可以组成一个盘组。一个盘组中的盘片都被固定在一个轴上,沿着一个方向高速旋转。每个盘面有一个读写磁头,所有的读写磁头被固定在惟一的移动臂上同时移动,把所有的读写磁头按从上到下的次序从0开始进行编号,称为“磁头号”。每个盘面上有许多磁道,从0开始按由外向里的次序顺序编号,不同盘面上具有相同编号的磁道在同一个柱面上,把盘面上的磁道号称为“柱面号”。移动臂可以带动读写磁头访问所有的磁道,磁盘的结构•在磁盘初始化时•把每个盘面划分成相等数量的扇区,按磁盘旋转的反向从0开始给各扇区编号,称为扇区号。每个扇区的各磁道上均可存放相等数量的字符,我们称它为“块”,块是信息读写的最小单位。要确定一个块所在的位置必须给出三个参数:柱面号、磁头号、扇区号。启动磁盘执行输入输出操作时,要把移动臂移动到指定的柱面,再等待指定的扇区旋转到磁头位置下,然后让指定的磁头进行读写,完成信息传送。因此,执行一次输入输出所花的时间有:寻找时间——磁头在移动臂带动下移动到指定柱面所花的时间。(Seek)延迟时间(Delay)——指定扇区旋转到磁头下所需的时间。传送时间——由磁头进行读写完成信息传送的时间。其中传送信息所花的时间是硬件设计就固定的,而寻找时间和延迟时间是与信息在磁盘上的位置有关。是访问磁盘的操作时间示意。磁盘访问时间磁盘访问时间•寻道时间Ts=mXn+s:n为磁道数–s:启动磁臂时间,约2ms;–m:与磁盘速度相关,约为0.1—0.2–大体为5~30ms•旋转延迟时间:与磁盘转速相关,约为2~5ms•传输时间:与每次读写字节数和旋转速度有关•访问时间Ta=Ts+1/2r+b/rN•寻道时间和旋转延迟时间是主要部分为了减少移动臂进行移动花费的时间,每个文件的信息不是按盘面上的磁道顺序存放满一个盘面后,再放到下一个盘面上,而是按柱面存放。同一柱面上的各磁道被放满信息后,再放到下一个柱面上。所以,各磁盘块的编号按柱面顺序(从0号柱面开始),每个柱面按磁道顺序,每个磁道又按扇区顺序进行排序。假定用t表示每个柱面上的磁道数,用s表示每个盘面上的扇区数,则第i柱面,j磁头,k扇区所对应的块号b可有如下公式确定:b=k+SX(j+iXt)同样地,根据块号也可确定该块在磁盘上的位置。在上述的假定下,每个柱面上有sXt个磁盘块,为了计算第P块在磁盘上的位置,可以令D=sXt,设M=[P/D],N=PmodD。于是,第P块在磁盘上的位置为柱面号=M磁头号=[N/S]扇区号。NmodS在微型计算机中,对软盘片来说,每个柱面只包含两个磁道。文件信息也是按柱面顺序、磁道顺序和扇区顺序依次存放。二、磁盘的驱动调度磁盘是一种可共享的设备,在多道程序设计的系统中,同时会有若干个访问者请求磁盘执行输入输出操作。但是,为了保证信息的安全,系统在每一时刻只允许一个访问者启动磁盘执行输入输出操作,其余的访问者必须等待,一次输入输出操作结束后才可让等待中的一个访问者启动磁盘。显然,应根据移动臂的当前位置使寻找时间和延迟时间尽可能小的那个访问者优先得到服务。•系统往往采用一定的调度策略来决定各等待访问者的执行次序,这项工作称磁盘的“驱动调度”,采用的调度策略称“驱动调度算法”。•对磁盘来说,驱动调度有“移臂调度”和“旋转调度”两部分组成。•根据访问者指定的柱面位置来决定执行次序的调度称“移臂调度”,移臂调度的目的是尽可能地减少输入输出操作中的寻找时间。常用的移臂调度算法有先来先服务算法、最短寻找时间优先算法、电梯调度算法和单向扫描算法(-)移臂调度。1.先来先服务调度算法最简单的移臂调度算法是“先来先服务”调度算法,这个算法实际上不考虑访问者要求访问的物理位置,而只是考虑访问者提出访问请求的先后次序。例如,现在读写磁头正在53号柱面上执行输入输出操作,而等待访问者依次要访问的柱面为98,183,37,122,14,124,65,67。当53号柱面上的操作结束后,移动臂将按请求的先后次序先移到98号往面,最后到达67号柱面,如下页图所示。其相应的臂的总移动量为:(98-53)+(183-98)+(183-37)+(122-37)+(122-14)+(124-14)+(124-65)+(67-65)=45+85+146+85+108+110+59+2=496+144=640cyl.98,183,37,122,14,124,65,67从图中可以看到采用先来先服务算法决定等待访问者执行输入输出操作的次序时,移动臂将来回地移动,读写磁头总共移动了640个柱面的距离。先来先服务算法花费的寻找时间较长,于是,执行输入输出操作的总时间也很长。2.最短寻道时间优先调度算法(SSTF)•总是从等待访问者中挑选寻找时间最短的那个请求先执行,而不管访问者到来的先后次序。•用同一个例子来讨论,现在当53号柱面的操作结束后,应该先处理65号柱面的请求,然后到达67号柱面执行操作。随后应处理37号柱面的请求(它与67号柱面相距30个柱面)而不是98号柱面的请求(它与67号柱面相距31个柱面),后继操作的次序应该是14,98,122,124,183。如下页图所示。•采用最短寻找时间优先算法决定等待访问者执行输入输出操作的次序时,读写磁头总共移动了236个柱面的距离。与先来先服务算法比较,大幅度地减少了寻找时间。因而缩短了为各请求访问者服务的平均时间,也就提高了系统效率。现对需要存取得磁筒进行排序:14,37,65,6798,122,124,183。相对于53最近的磁筒为65。余下的问题是在到达67后,下一个目标是?37,67,98其差为30与31,所以下一个目标为37。3.扫描算法,SCAN算法(电梯调度算法)“电梯调度”算法总是从移动臂当前位置开始沿着臂的移动方向去选择离当前移动臂最近的那个柱面的访问者,如果沿臂的移动方向无请求访问时,就改变臂的移动方向再选择。这好比乘电梯,如果电梯已向上运动到4层时,依次有3位乘客A,B,C,他们的要求是:A在2层等待去10层;B在5层等待去底层;C在8层等待上15层。电梯管理员不是按照乘客来到的先后次序服务,而是考虑电梯的效率。在这种情况下,沿电梯运动方向总是先把乘客C带到15层,然后把乘客B带到底层,最后再把乘客A送到10层。我们仍用同一例子来讨论采用“电梯调度”算法的情况,由于该算法是与移动臂的方向有关,所以,应分两种情况来讨论。(1)移动臂是向外移的。当前正在53号柱面,在这种情况下
本文标题:设备管理3
链接地址:https://www.777doc.com/doc-1316301 .html