磁盘存储器的管理

来源:互联网 发布:大数据 鄂维南 编辑:程序博客网 时间:2024/05/14 11:34

对文件的操作,都将涉及到对磁盘的访问。磁盘I/O速度的高低和磁盘系统的可靠性,都将直接影响到系统性能。
1.数据的组织和格式:
盘片----盘面----磁道----扇区。
低级格式化----磁盘分区----高级格式化
注意:每个分区就是一个独立的逻辑磁盘。
2.磁盘的类型:
1)固定头磁盘:在每条磁道上都有一读/写磁头,所有的磁头都被装在一刚性磁臂中。通过这些磁头可访问所有各磁道,并进行并行读/写,有效地提高了磁盘的I/O速度。
2)移动头磁盘:每一个盘面仅配有一个磁头,也被装入磁臂中。为能访问该盘面上的所有磁道,该磁头必须能移动以进行寻道。可见,移动磁头仅能以串行方式读/写,致使其I/O速度较慢。
3.磁盘访问时间
1)寻道时间Ts:把磁头移动到指定磁道上所经历的时间。为启动磁臂的时间s与磁头移动n条磁道所花费的时间之和,即Ts=m*n+s。其中,m是一个常数,与磁盘驱动器的速度有关。
2)旋转延迟时间Tr:是指定扇区移动到磁头下面所经历的时间。不同的磁盘类型中,旋转速度至少相差一个数量级。Tr=1/(2r),其中r为磁盘每秒钟的转数。
3)传输时间Tt:是指把数据从磁盘读出或向磁盘写入数据所经历的时间。Tt的大小与每次所读/写的字节数b和旋转速度有关。Tt=b/(rN),其中,r为磁盘每秒钟的转数;N为一条磁道上的字节数,当一次读/写的字节数相当于半条磁道上的字节数时,Tt与Tr相同。
因此,访问时间Ta为Ta=Ts+Tr+Tt。
4.磁盘调度
由于在访问磁盘的时间中,主要是寻道时间,因此,磁盘调度的目标是使磁盘的平均寻道时间最少。目前常用的磁盘调度算法有先来先服务、最短寻道时间优先及扫描等算法。
1)先来先服务(FCFS):它根据进程请求访问磁盘的先后次序进行调度。此算法的优点是公平、简单,且每个进程的请求都能依次地得到处理,不会出现某一个进程的请求长期得不到满足的情况。
2)最短寻道时间优先(SSTF):其要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短。
3)SCAN算法:该算法不仅考虑到欲访问的磁道与当前磁道间的距离,更优先考虑的是磁头当前的移动方向。例如,当磁头正在自里向外移动时,SCAN算法所考虑的下一个访问对象,应是其欲访问的磁道既在当前磁道之外,又是距离最近的。这样自里向外地访问,直至再无更外的磁道需要访问时,才将磁臂换向为自外向里移动。
4)循环扫描算法(CSCAN):CSCAN算法规定磁头单向移动,例如,只是自里向外移动,当磁头移到最外的磁道并访问后,磁头立即返回到最里德欲访问的磁道上,亦将最小磁道号紧接着最大磁道号构成循环,进行循环扫描。
5)NStepSCAN算法:N步SCAN算法是将磁盘请求队列分成若干个长度为N的子队列,磁盘调度将按FCFS算法依次处理这些子队列。而每处理一个子队列又是按SCAN算法,对一个队列处理完后,再处理其他队列。当正在处理某子队列时,如果又出现新的磁盘I/O请求,便将新请求进程放入其他队列,这样就可能避免粘着现象。
6)FSCAN算法:只将磁盘请求队列分成两个子队列。一个是由当前所有请求磁盘I/O的进程形成的队列,由磁盘调度按SCAN算法进行处理。在扫描期间,将新出现的所有请求磁盘I/O的进程,放入另一个等待处理的请求队列。
5.磁盘高速缓存
1)形式:指利用内存中的存储空间来暂存从磁盘中读出的一系列盘块中的信息。
2)数据交付方式:
数据交付:这是直接将高速缓存中的数据,传送到请求者进程的内存中作区中。
指针交付:这是只将指向高速缓存中某区域的指针交付给请求者进程。
6.提高磁盘I/O速度的其它方法
1)提前读
2)延迟写
3)优化物理块的分布
4)虚拟盘
7.廉价磁盘冗余阵列(RAID):它是利用一台磁盘阵列控制器,来统一管理和控制一组(几台到几十台)磁盘驱动器,组成一个高度可靠的、快速的大容量磁盘系统。
为了提高对磁盘的方位速度,已把在大、中型机中应用的交叉存取技术应用到了磁盘存储系统中。在该系统中,有多台磁盘驱动器,系统将每一盘块中的数据分为若干个子盘块数据,再把每一个子盘块的数据分别存储到各个不同磁盘中的相同位置上。在以后,当要将一个盘块中的数据传送到内存时,采取并行传输方式,将各个盘块中的子盘块数据同时向内存中传输,从而使传输时间大大减少。
RAID的分级:RAID 0~RAID 7
RAID 0:仅提供了并行交叉存取,无冗余校验功能,致使磁盘系统的可靠性不好。
RAID 1:具有磁盘镜像功能。用磁盘容量换取访问速度。
RAID 3:具有并行传输功能的磁盘阵列。利用一台奇偶校验盘来完成数据的校验功能。减少了所需要的冗余磁盘数。用于科学计算和图像处理。
RAID 5:一种具有独立传送功能的磁盘阵列。每个驱动器都各有自己独立的数据通路,独立的进行读/写,且无专门的校验盘。用来进行纠错的校验信息,是以螺旋方式散布在所有数据盘上。用于I/O较频繁的事务处理中。

0 0