《磁盘存储管理 (2)优秀PPT.ppt》由会员分享,可在线阅读,更多相关《磁盘存储管理 (2)优秀PPT.ppt(43页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、磁盘存储管理现在学习的是第1页,共43页磁盘存储器的管理磁盘存储器的管理 磁盘性能简述磁盘性能简述 数据的组织和格式数据的组织和格式磁盘设备包括一或多个物理盘片,每个磁盘片分一个或两个存储面磁盘设备包括一或多个物理盘片,每个磁盘片分一个或两个存储面(surface),每个磁盘面被组织成若干个同心环,这种环称为磁道,每个磁盘面被组织成若干个同心环,这种环称为磁道(track),各磁道,各磁道之间留有必要的间隙。所有磁道由外向内依次由之间留有必要的间隙。所有磁道由外向内依次由0 0开始编号,称为磁道号。开始编号,称为磁道号。每条磁道上可存储相同数目的二进制位。这样,磁盘密度即每英寸中所存每条磁道上
2、可存储相同数目的二进制位。这样,磁盘密度即每英寸中所存储的位数,显然是内层磁道的密度较外层磁道的密度高。每条磁道又被逻辑上储的位数,显然是内层磁道的密度较外层磁道的密度高。每条磁道又被逻辑上划分成若干个扇区划分成若干个扇区(sectors),软盘大约为,软盘大约为832个扇区,硬盘则可多达数百个。个扇区,硬盘则可多达数百个。一个扇区称为一个盘块一个扇区称为一个盘块(或数据块或数据块),常常叫做磁盘扇区。各扇区之间保留一定,常常叫做磁盘扇区。各扇区之间保留一定的间隙。的间隙。扇区是磁盘进行扇区是磁盘进行I/OI/O传输的基本单位,也是磁盘空间分配的基本单位。传输的基本单位,也是磁盘空间分配的基本
3、单位。现在学习的是第2页,共43页磁盘的结构和布局磁盘的结构和布局 现在学习的是第3页,共43页为为了了在在磁磁盘盘上上存存储储数数据据,必必须须先先将将磁磁盘盘低低级级格格式式化化。磁磁盘盘中中每每条条磁磁道道含含有有3030个个固固定定大大小小的的扇扇区区,每每个个扇扇区区容容量量为为600600个个字字节节,其其中中512512个个字字节节存存放放数数据据,其其余余的的用用于于存存放放控控制制信信息息。每每个个扇扇区区包包括括两两个个字字段段:(1 1)标标识识符符字字段段,其其中中一一个个字字节节的的SYNCHSYNCH定定界界符符,利利用用磁磁道道号号、磁磁头头号号及及扇扇区区号号三
4、三者者来来标标识识一一个个扇扇区区;CRCCRC字字段段用用于于段段校校验验。(2 2)数数据据字字段段,其中可存放其中可存放512个字节的数据。个字节的数据。磁盘扇区磁盘扇区现在学习的是第4页,共43页对对磁磁盘盘,可可以以从从不不同同的的角角度度进进行行分分类类:硬硬盘盘和和软软盘盘、单单片片盘盘和和多多片片盘盘、固固定头磁盘和活动头定头磁盘和活动头(移动头移动头)磁盘等。磁盘等。固定头磁盘固定头磁盘这种磁盘在这种磁盘在每条磁道每条磁道上都有一读上都有一读/写磁头,所有的磁头都被装在一刚性磁臂中。通过这写磁头,所有的磁头都被装在一刚性磁臂中。通过这些磁头可访问所有各磁道,并进行并行读些磁头
5、可访问所有各磁道,并进行并行读/写,有效地提高了磁盘的写,有效地提高了磁盘的I/O速度。这种结构的速度。这种结构的磁盘主要用于大容量磁盘上。磁盘主要用于大容量磁盘上。移动头磁盘移动头磁盘每一个盘面每一个盘面仅配有一个磁头,也被装入磁臂中。为能访问该盘面上的所有磁道,该磁头必仅配有一个磁头,也被装入磁臂中。为能访问该盘面上的所有磁道,该磁头必须能移动以进行寻道。移动磁头仅能以串行方式读须能移动以进行寻道。移动磁头仅能以串行方式读/写,致使其写,致使其I/O速度较慢;但由于其结构速度较慢;但由于其结构简单,故仍广泛应用于中小型磁盘设备中。在微型机上配置的温盘和软盘都采用简单,故仍广泛应用于中小型磁
6、盘设备中。在微型机上配置的温盘和软盘都采用移动磁头结构。移动磁头结构。磁盘的类型磁盘的类型现在学习的是第5页,共43页磁盘的访问时间磁盘的访问时间Ta表示为:表示为:访问时间访问时间=寻道时间寻道时间+旋转时间旋转时间+传输时间传输时间1.1.磁盘接收到读指令后,磁头从当前位置移动到目标磁道位置,所需时磁盘接收到读指令后,磁头从当前位置移动到目标磁道位置,所需时间为间为寻道时间寻道时间2.2.旋转磁盘,定位数据所在的扇区,所需时间为旋转磁盘,定位数据所在的扇区,所需时间为旋转延迟旋转延迟3.3.从磁盘上读取数据,时间为从磁盘上读取数据,时间为数据传输时间数据传输时间 磁盘访问时间磁盘访问时间现
7、在学习的是第6页,共43页 寻道时间寻道时间T Ts s这是指把磁臂这是指把磁臂(磁头磁头)移动到指定磁道上所经历的时间。该时间是启移动到指定磁道上所经历的时间。该时间是启动磁臂的时间动磁臂的时间s与磁头移动与磁头移动n条磁道所花费的时间之和,即条磁道所花费的时间之和,即 Ts=m n+s 其其中中,m是是一一常常数数,与与磁磁盘盘驱驱动动器器的的速速度度有有关关。对对于于一一般般磁磁盘盘,m=0.2;对于高速磁盘,;对于高速磁盘,m0.1,磁臂的启动时间约为,磁臂的启动时间约为2 ms。对对于于一一般般的的温温盘盘,其其寻寻道道时时间间将将随随寻寻道道距距离离的的增增加加而而增增大大,大大体
8、体上是上是530 ms。磁盘访问时间磁盘访问时间现在学习的是第7页,共43页 旋转延迟时间旋转延迟时间T Tr r将磁头移动到指定扇区下面所经历的时间。将磁头移动到指定扇区下面所经历的时间。Tr=1/(2r)Tr=1/(2r),r r为磁盘转速(转数为磁盘转速(转数/单位时间,秒)单位时间,秒)不同的磁盘类型中,旋转速度至少相差一个数量级,如软盘为不同的磁盘类型中,旋转速度至少相差一个数量级,如软盘为300 r/min,硬盘一般为,硬盘一般为720015 000 r/min,甚至更高。,甚至更高。对于磁盘旋转延迟时间而言,如硬盘,旋转速度为对于磁盘旋转延迟时间而言,如硬盘,旋转速度为15 00
9、0 r/min,每转需时每转需时4 ms,平均旋转延迟时间,平均旋转延迟时间Tr为为2 ms;而软盘,其旋转速度为而软盘,其旋转速度为 300 r/min或或600 r/min,这样,平均,这样,平均Tr为为50100 ms。一般使用简单的假定测量该值,即使用平均值:将磁盘旋转周期的一半作为旋转延迟的近似值,该方一般使用简单的假定测量该值,即使用平均值:将磁盘旋转周期的一半作为旋转延迟的近似值,该方法在实际应用中也非常实用。因此,一般都将磁盘旋转周期的一半定义为旋转延迟。法在实际应用中也非常实用。因此,一般都将磁盘旋转周期的一半定义为旋转延迟。磁盘访问时间磁盘访问时间现在学习的是第8页,共43
10、页 传输时间传输时间T Tt t这是指把数据从磁盘读出或向磁盘写入数据所经历的时间。这是指把数据从磁盘读出或向磁盘写入数据所经历的时间。Tt的大小的大小与每次所读与每次所读/写的字节数写的字节数b和旋转速度有关和旋转速度有关:其中,其中,r为磁盘每秒钟的转数;为磁盘每秒钟的转数;N为为一条磁道上的字节数一条磁道上的字节数,当一次读,当一次读/写的字节数相当于半条磁道上的字节数时,即写的字节数相当于半条磁道上的字节数时,即N=2*bN=2*b时,时,T Tt=1/(2r)=1/(2r),Tt与与Tr相同。相同。磁盘访问时间磁盘访问时间现在学习的是第9页,共43页磁盘的访问时间磁盘的访问时间Ta表
11、示为:表示为:访问时间访问时间=寻道时间寻道时间+旋转时间旋转时间+传输时间传输时间1.1.磁盘接收到读指令后,磁头从当前位置移动到目标磁道位置,所磁盘接收到读指令后,磁头从当前位置移动到目标磁道位置,所需时间为需时间为寻道时间寻道时间2.2.旋转磁盘,定位数据所在的扇区,所需时间为旋转磁盘,定位数据所在的扇区,所需时间为旋转延迟旋转延迟3.3.从磁盘上读取数据,时间为从磁盘上读取数据,时间为数据传输时间数据传输时间 磁盘访问时间磁盘访问时间现在学习的是第10页,共43页 由上式可以看出,在访问时间中,寻道时间和旋转延迟时间与所读由上式可以看出,在访问时间中,寻道时间和旋转延迟时间与所读/写数
12、据的多写数据的多少无关,它通常占据了访问时间中的大部分。少无关,它通常占据了访问时间中的大部分。例如,假定寻道时间和旋转延迟时间平均为例如,假定寻道时间和旋转延迟时间平均为20 ms,而磁盘的传输速率为,而磁盘的传输速率为10 MB/s,如果要传输,如果要传输10 KB的数据,此时总的访问时间为的数据,此时总的访问时间为21 ms,可见传输时间所,可见传输时间所占比例是非常小的。当传输占比例是非常小的。当传输100 KB数据时,其访问时间也只是数据时,其访问时间也只是30 ms,即当传输的,即当传输的数据量增大数据量增大10倍时,访问时间只增加约倍时,访问时间只增加约50%。目前磁盘的传输速率
13、已达目前磁盘的传输速率已达80 MB/s以上,数据传输时间所占的比例更低。可见,以上,数据传输时间所占的比例更低。可见,适当地集中数据适当地集中数据(不要太零散不要太零散)传输,将有利于提高传输效率。传输,将有利于提高传输效率。磁盘访问时间磁盘访问时间现在学习的是第11页,共43页 磁磁盘盘是是一一种种共共享享设设备备,当当有有多多个个进进程程共共同同请请求求磁磁盘盘时时,需需要要采采用用合合理理地地磁磁盘盘调调度度方方法法,保保证证各各个个进进程程对对磁磁盘盘的的平平均均访访问问时时间间(寻寻道道时时间间)最最少少。即即磁磁盘盘调调度度的的目目标是使磁盘的平均寻道时间最少。标是使磁盘的平均寻
14、道时间最少。先来先服务先来先服务(FCFS)(FCFS)这是一种最简单的磁盘调度算法。它根据进程请求访问磁盘的这是一种最简单的磁盘调度算法。它根据进程请求访问磁盘的先后次先后次序序进行调度。此算法的优点是公平、简单,且每个进程的请求都能依次地进行调度。此算法的优点是公平、简单,且每个进程的请求都能依次地得到处理,不会出现某一进程的请求长期得不到满足的情况。但此算法由得到处理,不会出现某一进程的请求长期得不到满足的情况。但此算法由于未对寻道进行优化,致使平均寻道时间可能较长。于未对寻道进行优化,致使平均寻道时间可能较长。磁盘调度磁盘调度现在学习的是第12页,共43页FCFS调度算法调度算法 磁盘
15、调度磁盘调度有有9个进程先后提出磁盘个进程先后提出磁盘I/O请求。进程请求。进程(请求者请求者)按发出请求的先后次序排队。平均寻道按发出请求的先后次序排队。平均寻道距离为距离为55.3条磁道,该方法平均寻道距离较大,故条磁道,该方法平均寻道距离较大,故FCFS算法仅适用于请求磁盘算法仅适用于请求磁盘I/O的进程数目较少的场合。的进程数目较少的场合。现在学习的是第13页,共43页 最短寻道时间优先最短寻道时间优先(SSTF)(SSTF)该算法选择这样的进程:其要求访问的磁道与当前磁头所在的磁道该算法选择这样的进程:其要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短。但这种算法不
16、能保证平均寻道时距离最近,以使每次的寻道时间最短。但这种算法不能保证平均寻道时间最短。间最短。磁盘调度磁盘调度现在学习的是第14页,共43页SSTF调度算法调度算法 磁盘调度磁盘调度SSTF算法的平均每次磁头移动距离明显低于算法的平均每次磁头移动距离明显低于FCFS的距离,因而较的距离,因而较FCFS有更好的寻道有更好的寻道性能,曾被广泛采用。性能,曾被广泛采用。现在学习的是第15页,共43页SSTF调度算法调度算法 磁盘调度磁盘调度FCFS调度算法调度算法 现在学习的是第16页,共43页 进程进程“饥饿饥饿”现象现象SSTF算法虽然能获得较好的寻道性能,但却可能导致某个进程发算法虽然能获得较
17、好的寻道性能,但却可能导致某个进程发生生“饥饿饥饿”(Starvation)现象。现象。因为只要不断有新进程的请求到达,且其所要访问的磁道与因为只要不断有新进程的请求到达,且其所要访问的磁道与磁头当前所在磁道的距离较近,这种新进程的磁头当前所在磁道的距离较近,这种新进程的I/O请求必然优先满足。请求必然优先满足。对对SSTF算法修改后形成算法修改后形成SCAN算法,即可防止老进程出现算法,即可防止老进程出现“饥饿饥饿”现象。现象。扫描扫描(SCAN)(SCAN)算法算法现在学习的是第17页,共43页 SCAN SCAN算法算法该算法不仅考虑到欲访问的磁道与当前磁道间的距离,更该算法不仅考虑到欲
18、访问的磁道与当前磁道间的距离,更优先考虑优先考虑的的是磁头当前的是磁头当前的移动方向移动方向。例如,当磁头正在自例如,当磁头正在自里向外里向外移动时,移动时,SCAN算法所考虑的下一个访问算法所考虑的下一个访问对象,应是其欲访问的磁道既在当前磁道对象,应是其欲访问的磁道既在当前磁道之外之外,又是又是距离距离最近最近的。这样自里的。这样自里向外地访问,直至再无更外的磁道需要访问时,才将磁臂换向为自外向里向外地访问,直至再无更外的磁道需要访问时,才将磁臂换向为自外向里移动。这时,同样也是每次选择这样的进程来调度,即要访问的磁道在当移动。这时,同样也是每次选择这样的进程来调度,即要访问的磁道在当前位
19、置内距离最近者,这样,磁头又逐步地从外向里移动,直至再无更里前位置内距离最近者,这样,磁头又逐步地从外向里移动,直至再无更里面的磁道要访问,从而避免了出现面的磁道要访问,从而避免了出现“饥饿饥饿”现象。现象。由于在这种算法中磁头移动的规律颇似电梯的运行,因而又常称之为由于在这种算法中磁头移动的规律颇似电梯的运行,因而又常称之为电梯调度算法。电梯调度算法。扫描扫描(SCAN)(SCAN)算法算法现在学习的是第18页,共43页SCAN调度算法示例调度算法示例 扫描扫描(SCAN)(SCAN)算法算法现在学习的是第19页,共43页SCAN算算法法既既能能获获得得较较好好的的寻寻道道性性能能,又又能能
20、防防止止“饥饥饿饿”现现象象,故故被被广广泛泛用用于于大大、中中、小小型型机机器器和和网网络络中中的的磁磁盘盘调调度度。但但SCAN也也存存在在这这样样的的问问题题:当当磁磁头头刚刚从从里里向向外外移移动动而而越越过过了了某某一一磁磁道道时时,恰恰好好又又有有一一进进程程请请求求访访问问此此磁磁道道,这这时时,该该进进程程必必须须等等待待,待待磁磁头头继继续续从从里里向向外外,然然后后再再从从外外向向里里扫扫描描完完所所有有要要访访问问的的磁磁道道后后,才才处处理理该该进进程程的的请请求求,致致使使该进程的请求被大大地推迟。该进程的请求被大大地推迟。循环扫描循环扫描(CSCAN)(CSCAN)
21、算法算法现在学习的是第20页,共43页为了减少这种延迟,为了减少这种延迟,CSCAN算法规定算法规定磁头单向移动磁头单向移动,例如,只是自里向外移动,例如,只是自里向外移动,当磁头移到最外的磁道并访问后,磁头立即返回到最里的欲访问的磁道,亦即将最当磁头移到最外的磁道并访问后,磁头立即返回到最里的欲访问的磁道,亦即将最小磁道号紧接着最大磁道号构成循环,进行循环扫描。采用循环扫描方式后,上述小磁道号紧接着最大磁道号构成循环,进行循环扫描。采用循环扫描方式后,上述请求进程的请求延迟将从原来的请求进程的请求延迟将从原来的2T减为减为T+Smax,其中,其中,T为由里向外或由外向里为由里向外或由外向里单
22、向扫描完要访问的磁道所需的寻道时间,单向扫描完要访问的磁道所需的寻道时间,Smax是将磁头从最外面被访问的磁道直接是将磁头从最外面被访问的磁道直接移到最里面欲访问的磁道移到最里面欲访问的磁道(或相反或相反)的寻道时间。的寻道时间。循环扫描循环扫描(CSCAN)(CSCAN)算法算法现在学习的是第21页,共43页CSCAN调度算法示例调度算法示例 循环扫描循环扫描(CSCAN)(CSCAN)算法算法现在学习的是第22页,共43页CSCAN调度算法示例调度算法示例 循环扫描循环扫描(CSCAN)(CSCAN)算法算法SCAN调度算法示例调度算法示例 现在学习的是第23页,共43页磁盘高速缓存磁盘高
23、速缓存,并非通常意义下的内存和,并非通常意义下的内存和CPU之间所增设的一个小容量高速存储器,之间所增设的一个小容量高速存储器,而是指利用内存中的存储空间来暂存从磁盘中读出的一系列盘块中的信息。因此,高速缓存而是指利用内存中的存储空间来暂存从磁盘中读出的一系列盘块中的信息。因此,高速缓存是一组在是一组在逻辑上属于磁盘逻辑上属于磁盘,而,而物理物理上是驻留在上是驻留在内存内存中的盘块。中的盘块。磁盘高速缓存的形式磁盘高速缓存的形式 在内存中开辟一个在内存中开辟一个单独的存储空间单独的存储空间来作为磁盘高速缓存,其大小是固定的,不会受应用程序来作为磁盘高速缓存,其大小是固定的,不会受应用程序多少的
24、影响;多少的影响;把把所有未利用的内存空间所有未利用的内存空间变为一个缓冲池,供请求分页系统和磁盘变为一个缓冲池,供请求分页系统和磁盘I/O时时(作为磁盘高速缓存作为磁盘高速缓存)共享。此时,高速缓存的大小显然不再是固定的。当磁盘共享。此时,高速缓存的大小显然不再是固定的。当磁盘I/O的频繁程度较高时,该缓冲池的频繁程度较高时,该缓冲池可能包含更多的内存空间;而在应用程序运行得较多时,该缓冲池可能只剩下较少的内存空可能包含更多的内存空间;而在应用程序运行得较多时,该缓冲池可能只剩下较少的内存空间。间。容量大容量大,通常存储全局范围,经常访问的重要数据:文件系统目录,文件分配表等。,通常存储全局
25、范围,经常访问的重要数据:文件系统目录,文件分配表等。但是需要由但是需要由主机进行管理主机进行管理。增加主机的负担。增加主机的负担。磁盘高速缓存磁盘高速缓存现在学习的是第24页,共43页数据交付方式数据交付方式数据交付数据交付(Data Delivery)是指将是指将磁盘高速缓存中的数据磁盘高速缓存中的数据传送给传送给请请求者进程求者进程。当有一进程请求访问某个盘块中的数据时,当有一进程请求访问某个盘块中的数据时,先去先去查看磁盘高速缓存,查看磁盘高速缓存,查看是否存在所需的盘块数据的拷贝。若有,直接从高速缓存中提取数据查看是否存在所需的盘块数据的拷贝。若有,直接从高速缓存中提取数据并交付给请
26、求者进程,由此避免了访盘操作,提高了访问速度;并交付给请求者进程,由此避免了访盘操作,提高了访问速度;否则,应否则,应先从磁盘中先从磁盘中将所要访问的数据读入并交付给请求者进程,将所要访问的数据读入并交付给请求者进程,同时也将数据送高速缓存。当以后再需要访问该盘块的数据时,同时也将数据送高速缓存。当以后再需要访问该盘块的数据时,便可直接从高速缓存中提取。便可直接从高速缓存中提取。磁盘高速缓存磁盘高速缓存现在学习的是第25页,共43页数据交付给请求进程的方式:数据交付给请求进程的方式:数数据据交交付付:直直接接将将高高速速缓缓存存中中的的数数据据,传传送送到到请请求求者者进进程程的的内内存存工工
27、作区中。作区中。指指针针交交付付:只只将将指指向向高高速速缓缓存存中中某某区区域域的的指指针针交交付付给给请请求求者者进进程程。该该方方式式由由于于所所传传送送的的数数据据量量少少,节节省省了了数数据据从从磁磁盘盘高高速速缓缓存存到到进进程程的内存工作区的时间。的内存工作区的时间。磁盘高速缓存磁盘高速缓存现在学习的是第26页,共43页 磁盘高速缓存置换算法磁盘高速缓存置换算法在在将将磁磁盘盘中中的的盘盘块块数数据据读读入入高高速速缓缓存存时时,会会出出现现因因高高速速缓缓存存中中已已装装满满盘盘块块数数据据而而需需要要将将该该数数据据先先换换出出的的问问题题。相相应应地地,也也必必然然存存在在
28、着着采用哪种置换算法的问题。采用哪种置换算法的问题。常用的置换算法是:常用的置换算法是:最近最久未使用算法最近最久未使用算法LRULRU 最近未使用算法最近未使用算法NRUNRU 最少使用算法最少使用算法LFULFU等等磁盘高速缓存磁盘高速缓存现在学习的是第27页,共43页置换算法的考虑因素置换算法的考虑因素访问频率访问频率通常,每执行一条指令时,便可能访问一次联想存储器,亦即联想存储器的访问频率,基本通常,每执行一条指令时,便可能访问一次联想存储器,亦即联想存储器的访问频率,基本上与指令执行的频率相当。而对高速缓存的访问频率,则与磁盘上与指令执行的频率相当。而对高速缓存的访问频率,则与磁盘I
29、/O的频率相当。因此,高的频率相当。因此,高速缓存的访问频率速缓存的访问频率远远低于远远低于联想存储器的访问频率。联想存储器的访问频率。可预见性可预见性在高速缓存中的各盘块数据,有哪些数据可能在较长时间内不会再被访问,又有哪些数在高速缓存中的各盘块数据,有哪些数据可能在较长时间内不会再被访问,又有哪些数据可能很快就再被访问,会有相当一部分是据可能很快就再被访问,会有相当一部分是可预知的可预知的。例如,对目录块,在它被访问后,。例如,对目录块,在它被访问后,可能会很久都不再被访问。而正在写入数据的未满盘块,可能会很快又被访问。可能会很久都不再被访问。而正在写入数据的未满盘块,可能会很快又被访问。
30、数据的一致性数据的一致性高高速速缓缓存存一一种种易易失失性性的的存存储储器器,一一旦旦系系统统发发生生故故障障,存存放放在在高高速速缓缓存存中中的的数数据据将将会会丢丢失失;而而其其中中有有些些盘盘块块(如如索索引引结结点点盘盘块块)中中的的数数据据已已被被修修改改,但但尚尚未未拷拷回回磁磁盘盘,因因此,当系统发生故障后,可能会造成数据的此,当系统发生故障后,可能会造成数据的不一致性不一致性。磁盘高速缓存磁盘高速缓存现在学习的是第28页,共43页置换方法置换方法 基于上述因素,可以将高速缓存中的所有盘块数据组织成一条基于上述因素,可以将高速缓存中的所有盘块数据组织成一条LRU链链。对。对于那些
31、会严重影响到数据一致性的盘块数据和很久都可能不再使用的盘块数据,于那些会严重影响到数据一致性的盘块数据和很久都可能不再使用的盘块数据,都放在都放在LRU链的链的头部头部,使它们能被,使它们能被优先写回磁盘优先写回磁盘,以减少发生数据不一致性,以减少发生数据不一致性的概率,或者可以尽早腾出高速缓存的空间。的概率,或者可以尽早腾出高速缓存的空间。对于那些可能在不久之后还要使用的盘块数据,挂在对于那些可能在不久之后还要使用的盘块数据,挂在LRU链的链的尾部尾部,以便在不久以后需要时,只要该数据块尚未从链中移至链首而被写回磁盘,便可以便在不久以后需要时,只要该数据块尚未从链中移至链首而被写回磁盘,便可
32、直接到高速缓存中直接到高速缓存中(即即LRU链中链中)去寻找这些数据块。去寻找这些数据块。磁盘高速缓存磁盘高速缓存现在学习的是第29页,共43页LRU链中任一元素在被访问之后,总是又被挂到链尾而不被写回磁盘;只是一直链中任一元素在被访问之后,总是又被挂到链尾而不被写回磁盘;只是一直未被访问的元素,才有可能移到链首并被写回磁盘。那些经常要被访问的盘块数据,可未被访问的元素,才有可能移到链首并被写回磁盘。那些经常要被访问的盘块数据,可能会一直保留在高速缓存中,长期不会被写回磁盘。能会一直保留在高速缓存中,长期不会被写回磁盘。例如,一位学者一上班便开始撰写论文,并边写边修改,他正在写作的论文一直保存
33、在高速缓例如,一位学者一上班便开始撰写论文,并边写边修改,他正在写作的论文一直保存在高速缓存的存的LRU链中。如果在快下班时,系统突然发生故障,这样,存放在高速缓存中的已写论文将随链中。如果在快下班时,系统突然发生故障,这样,存放在高速缓存中的已写论文将随之消失,致使他枉费了一天的劳动。之消失,致使他枉费了一天的劳动。为了解决这一问题,为了解决这一问题,UNIX系统增设了一个修改系统增设了一个修改(update)程序,使之在后台运行,该程序,使之在后台运行,该程序周期性地调用一个系统调用程序周期性地调用一个系统调用SYNC,强制性地将所有在高速缓存中强制性地将所有在高速缓存中已修改已修改的盘块
34、数的盘块数据写回磁盘。一般是把两次调用据写回磁盘。一般是把两次调用SYNC的时间间隔定为的时间间隔定为30 s。在在MS-DOS中所采用的方法是中所采用的方法是:只要高速缓存中的某盘块数据被修改,便立即将它写只要高速缓存中的某盘块数据被修改,便立即将它写回磁盘,并将这种高速缓存称为回磁盘,并将这种高速缓存称为“写穿透、高速缓存写穿透、高速缓存”(write-through cache)。MS-DOS所采用的写回方式,几乎不会造成数据的丢失,但须频繁地启动磁盘。所采用的写回方式,几乎不会造成数据的丢失,但须频繁地启动磁盘。周期性地写回磁盘周期性地写回磁盘现在学习的是第30页,共43页 提前读提前
35、读(Read-ahead)(Read-ahead)用户用户(进程进程)对文件进行访问时,经常采用顺序访问方式,即顺序对文件进行访问时,经常采用顺序访问方式,即顺序地访问文件各盘块的数据。在这种情况下,在读当前块时可以预知地访问文件各盘块的数据。在这种情况下,在读当前块时可以预知下一次要读的盘块。因此,可以采取预先读方式,即在读当前块的下一次要读的盘块。因此,可以采取预先读方式,即在读当前块的同时,还要求将下一个盘块同时,还要求将下一个盘块(提前读的块提前读的块)中的数据也读入缓冲区。中的数据也读入缓冲区。这样,当下一次要读该盘块中的数据时,由于该数据已被提前这样,当下一次要读该盘块中的数据时,
36、由于该数据已被提前读入缓冲区,此时便可直接读入缓冲区,此时便可直接从缓冲区中从缓冲区中取得下一盘块的数据,而不需再取得下一盘块的数据,而不需再去启动磁盘去启动磁盘I/O,从而大大减少了读数据的时间。这也就等效于,从而大大减少了读数据的时间。这也就等效于提高了磁提高了磁盘盘I/OI/O的的速度速度。“提前读提前读”功能已被广泛采用,如在功能已被广泛采用,如在UNIX系统、系统、OS/2都已采用该都已采用该功能。功能。提高磁盘提高磁盘I/OI/O速度的其它方法速度的其它方法现在学习的是第31页,共43页 延迟写延迟写延迟写是指在缓冲区延迟写是指在缓冲区A中的数据,中的数据,本应立即写回磁盘本应立即
37、写回磁盘,但考虑到该缓冲区,但考虑到该缓冲区中的数据在不久之后可能还会再被本进程或其它进程访问中的数据在不久之后可能还会再被本进程或其它进程访问(共享资源共享资源),因而,因而并不并不立即立即将该缓冲区将该缓冲区A中的数据写入磁盘,而是将它中的数据写入磁盘,而是将它挂在挂在空闲缓冲区队列的空闲缓冲区队列的末尾末尾。随。随着空闲缓冲区的使用,缓冲区也缓缓往前移动,直至移到空闲缓冲队列之首。着空闲缓冲区的使用,缓冲区也缓缓往前移动,直至移到空闲缓冲队列之首。当再有进程申请到该缓冲区时,才将该缓冲区中的数据写入磁盘,而把该当再有进程申请到该缓冲区时,才将该缓冲区中的数据写入磁盘,而把该缓缓冲区冲区A
38、 A作为作为空闲缓冲区空闲缓冲区分配出去。当该缓冲区分配出去。当该缓冲区A仍在队列中时,任何访问该数据仍在队列中时,任何访问该数据的进程,都可直接读出其中的数据而不必去访问磁盘。的进程,都可直接读出其中的数据而不必去访问磁盘。“延迟写延迟写”可进一步减小磁盘可进一步减小磁盘I/O时间。时间。UNIX系统、系统、OS/2等等OS中广泛采用了中广泛采用了“延迟写延迟写”技术技术。提高磁盘提高磁盘I/OI/O速度的其它方法速度的其它方法现在学习的是第32页,共43页 优化物理块的分布优化物理块的分布另一种提高磁盘另一种提高磁盘I/O速度的重要措施是优化文件物理块的分布,速度的重要措施是优化文件物理块
39、的分布,使磁头的移动距离最小。使磁头的移动距离最小。链接分配和索引分配方式都允许将一个文件的物理块分散在磁盘的链接分配和索引分配方式都允许将一个文件的物理块分散在磁盘的任意位置,但如果将一个文件的多个物理块安排得过于分散,会增加磁任意位置,但如果将一个文件的多个物理块安排得过于分散,会增加磁头的移动距离。头的移动距离。例如,将文件的第一个盘块安排在最里的一条磁道上,而把第二个盘块安例如,将文件的第一个盘块安排在最里的一条磁道上,而把第二个盘块安排在最外的一条磁道上,这样,在读完第一个盘块后转去读第二个盘块时,排在最外的一条磁道上,这样,在读完第一个盘块后转去读第二个盘块时,磁头要从最里的磁道移
40、到最外的磁道上。磁头要从最里的磁道移到最外的磁道上。如果将这两个数据块安排在属于同一条磁道的两个盘块上,显然会由于消除了磁头如果将这两个数据块安排在属于同一条磁道的两个盘块上,显然会由于消除了磁头在磁道间的移动,而大大提高对这两个盘块的访问速度。在磁道间的移动,而大大提高对这两个盘块的访问速度。提高磁盘提高磁盘I/OI/O速度的其它方法速度的其它方法现在学习的是第33页,共43页虚拟盘虚拟盘又称为又称为RAM盘,是指利用内存空间去仿真磁盘。该盘的设备驱动程序也盘,是指利用内存空间去仿真磁盘。该盘的设备驱动程序也可以接受所有标准的磁盘操作,但这些操作的执行,不是在磁盘上而是可以接受所有标准的磁盘
41、操作,但这些操作的执行,不是在磁盘上而是在内存中。这些对用户都是透明的。在内存中。这些对用户都是透明的。虚拟盘的主要问题是:它是易失性存储器,故一旦系统或电源发生故障,或虚拟盘的主要问题是:它是易失性存储器,故一旦系统或电源发生故障,或系统再启动时,原来保存在虚拟盘中的数据将会丢失。因此,虚拟盘通常用于系统再启动时,原来保存在虚拟盘中的数据将会丢失。因此,虚拟盘通常用于存放临时文件,如编译程序所产生的目标程序等。存放临时文件,如编译程序所产生的目标程序等。虚拟盘与磁盘高速缓存的主要区别在于虚拟盘与磁盘高速缓存的主要区别在于:虚拟盘中的内容完全由用户虚拟盘中的内容完全由用户控制,而高速磁盘缓存中
42、的内容则是由控制,而高速磁盘缓存中的内容则是由OS控制的。例如,控制的。例如,RAM盘在开始时盘在开始时是空的,仅当用户是空的,仅当用户(程序程序)在在RAM盘中创建了文件后,盘中创建了文件后,RAM盘中才有内盘中才有内容。容。虚拟盘虚拟盘现在学习的是第34页,共43页RAID(Redundant Array of Independent Inexpensive Disks):廉价磁盘冗余阵列或者独立磁盘冗余阵列廉价磁盘冗余阵列或者独立磁盘冗余阵列“独立独立”强调强调RAID阵列的重要性和可靠性阵列的重要性和可靠性“廉价廉价”强调强调RAID磁盘阵列中采用的是相对较小和便宜的磁盘。磁盘阵列中采
43、用的是相对较小和便宜的磁盘。RAID阵阵列列能能够够以以较较低低的的成成本本,提提供供大大容容量量、快快速速和和安安全全可可靠靠地地磁磁盘盘存存储储系统。系统。RAID包括以下部分:包括以下部分:一组可以并行工作的磁盘构成的磁盘阵列一组可以并行工作的磁盘构成的磁盘阵列磁磁盘盘阵阵列列管管理理软软件件,该该软软件件把把逻逻辑辑上上连连续续的的一一组组数数据据交交叉叉分分布布存存储储在在磁磁盘盘阵阵列中的各个磁盘上。列中的各个磁盘上。廉价磁盘冗余阵列廉价磁盘冗余阵列现在学习的是第35页,共43页并行交叉存取并行交叉存取 为为了了提提高高对对磁磁盘盘的的访访问问速速度度,已已把把在在大大、中中型型机
44、机中中应应用用的的交交叉叉存存取取(Interleave)技技术术应应用用到到了了磁磁盘盘存存储储系系统统中中。在在该该系系统统中中,有有多多台台磁磁盘盘驱驱动动器器,系系统统将将每每一一盘盘块块中中的的数数据据分分为为若若干干个个子子盘盘块块数数据据,再再把把每每一一个子盘块的数据分别存储到各个不同磁盘中的相同位置上。个子盘块的数据分别存储到各个不同磁盘中的相同位置上。当当要要将将一一个个盘盘块块的的数数据据传传送送到到内内存存时时,采采取取并并行行传传输输方方式式,将将各各个个盘盘块中的子盘块数据同时向内存中传输,从而使传输时间大大减少。块中的子盘块数据同时向内存中传输,从而使传输时间大大
45、减少。例例如如,在在存存放放一一个个文文件件时时,可可将将该该文文件件中中的的第第一一个个数数据据子子块块放放在在第第一一个个磁磁盘盘驱驱动动器器上上;将将文文件件的的第第二二个个数数据据子子块块放放在在第第二二个个磁磁盘盘上上;将将第第N个个数数据据子子块块,放放在在第第N个个驱驱动动器器上上。以以后后在在读读取取数数据据时时,采采取取并并行行读读取取方方式式,即即同同时时从从第第1N个个数数据据子子块块读读出出数数据据,这样便把磁盘这样便把磁盘I/O的速度提高了的速度提高了N-1倍。倍。廉价磁盘冗余阵列廉价磁盘冗余阵列现在学习的是第36页,共43页磁盘并行交叉存取方式磁盘并行交叉存取方式
46、廉价磁盘冗余阵列廉价磁盘冗余阵列现在学习的是第37页,共43页RAIDRAID的分级的分级RAIDRAID在在刚刚被被推推出出时时分分成成6 6级级,即即RAID RAID 0 0级级至至RAID RAID 5 5级级,后后来来又又增增加加了了RAID 6RAID 6级和级和RAID 7RAID 7级。级。(1)RAID 0级。本级仅提供了并行交叉存取。它虽能有效地提高磁盘级。本级仅提供了并行交叉存取。它虽能有效地提高磁盘I/O速度,但并无冗余速度,但并无冗余校验功能,致使磁盘系统的可靠性不好。只要阵列中有一个磁盘损坏,便会造成校验功能,致使磁盘系统的可靠性不好。只要阵列中有一个磁盘损坏,便会
47、造成不可弥补的数据丢失,故较少使用。不可弥补的数据丢失,故较少使用。(2)RAID 1级级。它它具具有有磁磁盘盘镜镜像像功功能能,例例如如,当当磁磁盘盘阵阵列列中中具具有有8个个盘盘时时,可可利利用用其其中中4个个作作为为数数据据盘盘,另另外外 4 个个作作为为镜镜像像盘盘,在在每每次次访访问问磁磁盘盘时时,可可利利用用并并行行读读、写写特特性性,将将数数据据分分块块同同时时写写入入主主盘盘和和镜镜像像盘盘。故故其其比比传传统统的的镜镜像像盘盘速速度度快快,但但其其磁盘容量的利用率只有磁盘容量的利用率只有50%,它是以牺牲磁盘容量为代价的。,它是以牺牲磁盘容量为代价的。(3)RAID 3级。这
48、是具有并行传输功能的磁盘阵列。它利用级。这是具有并行传输功能的磁盘阵列。它利用一台奇偶校验盘一台奇偶校验盘来完成数据来完成数据的校验功能,比起磁盘镜像,它减少了所需要的冗余磁盘数。例如,当阵列中只有的校验功能,比起磁盘镜像,它减少了所需要的冗余磁盘数。例如,当阵列中只有7个个盘时,可利用盘时,可利用6个盘作数据盘,一个盘作校验盘。磁盘的利用率为个盘作数据盘,一个盘作校验盘。磁盘的利用率为6/7。RAID 3级经常级经常用于科学计算和图像处理。用于科学计算和图像处理。RAIDRAID的分级的分级现在学习的是第38页,共43页RAIDRAID现在学习的是第39页,共43页(4)(4)RAID RA
49、ID 5 5级级。这这是是一一种种具具有有独独立立传传送送功功能能的的磁磁盘盘阵阵列列。每每个个驱驱动动器器都都各各有有自自己己独独立立的的数数据据通通路路,独独立立地地进进行行读读/写写,且且无无专专门门的的校校验验盘盘。用用来来进进行行纠纠错错的的校校验验信信息息,是是以螺旋以螺旋(Spiral)(Spiral)方式散布在所有数据盘上。方式散布在所有数据盘上。RAID 5RAID 5级常用于级常用于I/OI/O较频繁的事务处理中。较频繁的事务处理中。(5)RAID 6(5)RAID 6级和级和RAID 7RAID 7级。级。RAID 6级设置了一个专用的、可快速访问的级设置了一个专用的、可
50、快速访问的异步校异步校验盘验盘。该盘具有独立的数据访问通路,具有比。该盘具有独立的数据访问通路,具有比RAID 3级及级及RAID 5级更好的性能,级更好的性能,但其性能改进得很有限。但其性能改进得很有限。RAID 7级是对级是对RAID 6级的改进,在该阵列中的所有磁盘,级的改进,在该阵列中的所有磁盘,都具都具有较高的传输速率和优异的性能有较高的传输速率和优异的性能,是目前最高档次的磁盘阵列,但其价格也较高。,是目前最高档次的磁盘阵列,但其价格也较高。RAIDRAID的分级的分级现在学习的是第40页,共43页(1)(1)可靠性高。除了可靠性高。除了RAID 0级外,其余各级都采用了容错技术。