计算机操作系统第七章-磁盘调度.ppt
《计算机操作系统第七章-磁盘调度.ppt》由会员分享,可在线阅读,更多相关《计算机操作系统第七章-磁盘调度.ppt(110页珍藏版)》请在三一办公上搜索。
1、第七章 磁盘存储器管理,第七章 磁盘存储器管理,7.1 磁盘I/O 磁盘性能简述 早期的磁盘调度算法 各种扫描算法7.2 外存分配方法 连续分配 链接分配 索引分配7.3 空闲存储空间的管理 空闲表法 空闲链表法 位示图法 成组链接法,7.1 磁盘I/O,7.1.1 磁盘性能简述1、数据的组织格式2、磁盘的类型1)固定头磁盘2)移动头磁盘3、磁盘访问时间寻道时间旋转延迟时间传输时间7.1.2 磁盘调度1、早期的磁盘调度算法1、先来先服务2、最短寻道时间优先2、各种扫描算法1、扫描算法2、单向扫描算法3、分步扫描算法,7.1 磁盘I/O,磁盘存储器不仅容量大,存取速度快,而且可以实现随机存取,是
2、实现虚拟存储器所必须的硬件,因此在现代计算机系统中,都配置了磁盘存储器,并以它为主存放文件。,磁盘存储器管理的主要任务是:为文件分配必要的存储空间,使每个文件能“各得其所”;合理的组织文件的存取方式,以提高对文件的访问速度;提高磁盘存储空间的利用率;提高对磁盘的I/O速度,以改善文件系统的性能;采取必要的冗余措施,来确保文件系统的可靠性。,7.1 磁盘I/O,7.1磁盘I/O,磁盘I/O速度的高低,将直接影响到文件系统的性能。如何改善磁盘I/O的性能,已成为提高文件系统性能的关键。提高磁盘I/O速度的主要途径有:选择性能好的磁盘采用好的磁盘调度算法设置磁盘高速缓冲区,磁盘性能简述,对磁盘的详细
3、介绍有专门的课程,在此,仅对磁盘性能,如对数据的组织、对磁盘的类型及访问时间等,做扼要的介绍。一、数据的组织 磁盘设备中,可包含一个或多个盘片,每片分两面,每面又可分成若干条磁道(典型值为5002000条磁道),磁道之间有必要的空隙。,每条磁道上可存储相同数目的二进制位。磁盘密度即每英寸中所存储的位数,显然,内层磁道 的密度较外层磁道 的密度高。每条磁道又分成若干个扇区,其典型值为10100个扇区。每个扇区的大小相当于一个盘块。各扇区之间同样要保留一定的间隙。为在磁盘上存储数据,必须将磁盘格式化。,磁盘性能简述,磁盘的结构和布局,磁盘性能简述,温盘(温彻斯特)的一条磁道含有30个固定大小的扇区
4、,每个扇区容量为600个字节。其中,512字节用于存放数据,其余用于存放控制信息。每个扇区包括两个字段:标识符字段 其中一个字节的SYNCH具有特定的位图像,作为该字段的定界符。利用磁道号、磁头号及扇区号三者来标识一个扇区;CRC字段用于段校验。,数据字段 存放512个字节的数据。二、磁盘的类型 对磁盘可从不同的角度进行分类。硬盘和软盘 单片盘和多片盘 固定头磁盘和活动头磁盘等,磁盘性能简述,磁盘性能简述,1.固定头磁盘 这种磁盘在每条磁道上都有一个读/写磁头,所有的磁头都被装在一刚性磁臂中,通过这些磁头可访问所有磁道,并进行并行读/写,有效地提高了磁盘的I/O速度。这种结构的磁盘主要用于大容
5、量磁盘上。,2.移动头磁盘 每个盘面配一个磁头,装入磁臂中,为能访问该盘面上的所有磁道,该磁头必须移动进行寻道。移动头磁盘只能进行串行读/写,I/O速度较慢,但结构简单,广泛地用于中、小型磁盘设备中。在微机上配置的温盘(温彻斯特)和软盘,都采用移动磁头结构,故本节主要针对这类磁盘的I/O进行讨论。,磁盘性能简述,磁盘性能简述,三、磁盘访问时间 磁盘在工作时,以恒定速率旋转。为了读或写,磁头必须能移动到所要求的磁道上,并等待所要求的扇区的开始位置旋转到磁头下,然后再开始读或写数据。对磁盘的访问时间,包括以下三部分:,1.寻道时间Ts把磁臂(磁头)从当前位置移动到指定磁道上所经历的时间。该时间是启
6、动磁臂的时间s与磁头移动n条磁道所花费的时间之和,即:Ts=m*n+s,磁盘性能简述,m是一常数,它与磁盘驱动器的速度有关。对一般磁盘,m=0.3(0.2);对高速磁盘,m0.1,磁臂启动时间约为3ms(2ms)。对一般的温盘,其寻道时间将随寻道距离的增大而增大,大体上是1040ms.(530ms)2.旋转延迟时间Tr,磁盘性能简述,磁盘性能简述,Tr是指定扇区移动到磁头下面所经历的时间。对于硬盘,典型的旋转速度为3 600r/min(54 000r/min或72 000r/min),每转需时16.6ms(11.1,s).平均旋转延迟时间Tr为8.3ms(5.55ms).对于软盘,其旋转速度为
7、300或600r/min,这样,平均Tr为50100ms.,3.传输时间Tt Tt是指把数据从磁盘读出,或向磁盘写入数据所经历的时间。Tt的大小与每次所读/写的字节数b及旋转速度有关:Tt=1/r是指一圈用了多少时间r为磁盘以秒计的旋转速度;N为一条磁道上的字节数。当一次读/写的字节数相当于半条磁道上的字节数时,Tt与Tr相同。因此,可将访问时间Ta表示为,rN,b,磁盘性能简述,磁盘性能简述,Ta=Ts+1/2r+b/rN 由上式可以看出,在访问时间中,寻道 时间和旋转延迟时间,基本上都与所读/写数据的多少无关,而且它通常是占据了访问时间的大头。,例如,我们假定寻道时间和旋转延迟时间平均为3
8、0ms(20ms),而磁道的传输速率为1MB/s(10MB/s),如果传输1K(10KB)字节,此时总的访问时间为31ms(21ms),传输时间所占比例是相当地小。,磁盘性能简述,磁盘性能简述,当传输10K(100KB)字节的数据时,其访问时间也只是40ms(30ms),即当传输的数据量增加10倍时,访问时间只增加了约30(50%)。目前磁盘的传输速率传输已达20MB/s(80MB/s)以上,数据传输时间所占的比例更低。适当地集中数据(不要太零散)传输,将有利于提高传输效率。,7.1.2 早期的磁盘调度算法,当有多个进程都请求访问磁盘时,采用一种适当的驱动调度算法,使各进程对磁盘的平均访问(主
9、要是寻道)时间最小。目前常用的磁盘调度算法有:先来先服务最短寻道时间优先扫描算法循环扫描算法等,一、先来先服务FCFS(First-Come,First-Served)最简单的磁盘调度算法。根据进程请求访问磁盘的先后次序进行调度。优点:公平、简单。每个进程的请求都能依次得到处理,不会出现某一进程的请求长期得不到满足的情况。但由于未对寻道进行优化,致使平均寻道时间可能较长。,7.1.2 早期的磁盘调度算法,7.1.2 早期的磁盘调度算法,当用户提出的访问请求比较均匀地遍布整个盘面,而不具有某种倾向时,FCFS导致了随机访问模式,这种策略无法对访问进行优化。在对盘的访问请求比较多的情况下,将降低设
10、备服务的吞吐量和提高响应时间,但各进程得到服务的响应时间的变化幅度较小。FCFS在访问请求不是很多的情况下,是一个可以接受的策略。,7.1.2 早期的磁盘调度算法,二、最短寻道时间优先SSTF(Shortest Seek Time First)首先选择要求访问的磁道与当前磁头所在的磁道,距离最近的进程,以使每次的寻道时间最短。,7.1.2 早期的磁盘调度算法,7.1.2 早期的磁盘调度算法,此策略可以得到比较好的吞吐量和较低的平均响应时间。其缺点是对用户的服务请求的响应机会不是均等的,对中间磁道的访问请求得到最好的服务,对内、外两侧磁道的服务随偏离中心磁道的距离而愈远愈差。,7.1.2 早期的
11、磁盘调度算法,7.1.3 各种扫描算法,一、扫描(SCAN)算法1.进程“饥饿”现象 SSTF算法虽然获得较好的寻道性能,但它可能导致某些进程发生“饥饿”(Starvation).对SSTF算法略加修改后所形成的SCAN算法,即可防止老进程出现饥饿现象。,2.SCAN算法(Denning首先提出的)该算法不仅考虑到欲访问的磁道与当前磁道的距离,更优先考虑的是磁头的当前移动方向。例如,当磁头正在自里向外移动时,SCAN算法所选择的下一个访问对象应既在当前磁道之外,又是距离最近的磁道。这样自里向外地访问,直至再无更外的磁道需要访问时,才将磁臂换向,自外向里移动。,7.1.3 各种扫描算法,避免了饥
12、饿现象的出现。这种算法中磁头移动的规律颇似电梯的运行,故又常称为电梯调度算法。下图中表示出了按SCAN算法对9个进程进行调度及磁头移动的情况。,7.1.3 各种扫描算法,7.1.3 各种扫描算法,二、循环扫描CSCAN(Circular SCAN)单向扫描SCAN算法既能获得较好的性能,又能访止进程饥饿,广泛用于大、中、小型 机和网络中的磁盘调度。,7.1.3 各种扫描算法,问题:当磁头刚从里向外移动过某一磁道时,恰有一进程请求访问此磁道,这时该进程必须等待,待磁头从里向外,然后再从外向里扫描完所有要访问的磁道后,才处理该进程的请求,致使该进程的请求被严重地推迟。,7.1.3 各种扫描算法,C
13、SCAN算法规定磁头单向移动。例如,只自里向外移动,当磁头移到最外的磁道时,磁头立即返回到最里的欲访磁道,即将最小磁道号紧接着最大磁道号构成循环,进行扫描。采用循环扫描方式后,上述请求进程的请求延迟,将从原来的2T减T+Smax,7.1.3 各种扫描算法,T为由里向外或由外向里扫描完所有要访问的磁道所需的寻道时间,而Smax是将磁头从最外面被访问的磁道直接移到最里边欲访问的磁道所需的寻道时间(或相反)。下图表示出了CSCAN算法对9个进程调度的次序及每次磁头移动的距离。,7.1.3 各种扫描算法,7.1.3 各种扫描算法,三、N-Step-SCAN和FSCAN调度算法1、N-Step-SCAN
14、算法分步扫描 在SSTF、SCAN及CSCAN几种调度算法中,都可能出现磁臂停留在某处不动的情况。这一现象称为磁臂粘着(Armstickiness)。在高密度盘上出现此情况。,7.1.3 各种扫描算法,N步SCAN算法是将磁盘请求队列分成若干个长度为N的子队列,磁盘调度将按FCFS算法依次处理这些子队列。每处理一个队列时,又是按SCAN算法,对一个队列处理完后又处理其它队列,这样就可避免出现粘着现象。,7.1.3 各种扫描算法,当N值取得很大时,会使N步扫描算法的性能,接近于SCAN算法的性能,当N=1时,N步SCAN算法退化为FCFS算法。,7.1.3 各种扫描算法,2.FSCAN算法 FS
15、CAN算法实质上是N步SCAN算法的简化。它只将磁盘请求访问队列分成两个子队列。一是当前所有请求磁盘I/O的进程形成的队列,由磁盘调度按SCAN算法进行处理。另一个队列则是在 扫描期间,新出现的所有请求磁盘I/O进程的队列,放入另一等待处理的请求队列。这样,所有的新请求都将被推迟到下一次扫描时处理。,7.1.3 各种扫描算法,7.4文件系统性能的改善,文件系统的性能可表现在多个方面,如对文件的访问的快速性,数据的可共享性,文件系统使用的方便性,数据的安全性和数据的一致性等等。本节只讨论文件访问的快速性和数据的一致性这样两个问题。,7.4文件系统性能的改善,为了提高对文件的访问速度,可从三个层次
16、上着手:改进文件的目录结构以及检索目录的方法,来减少对文件的查找时间;选择好的文件存储结构,以提高对文件的访问速度;,提高磁盘I/O速度,以提高数据的传送速度。对提高文件访问速度的讨论,就可进一步缩小为对提高磁盘I/O速度的讨论。,7.4文件系统性能的改善,7.4.1 磁盘高速缓存,目前,磁盘I/O速度远低于对内存的访问速度,通常要低上47个数量级,因此,磁盘I/O已成为计算机系统的瓶颈。于是,人们便千方百计地去提高磁盘I/O速度,其中最主要的技术,便是利用磁盘高速缓存(Disk Cache)。,磁盘高速缓存的形式 所谓的磁盘高速缓存,是指利用内存中的存储空间,来暂存从磁盘中读出的一系列盘块中
17、的信息。因此,这里的高速缓存是一组在逻辑上属于磁盘,而物理上是驻留在内存中的盘块。,7.4.1 磁盘高速缓存,7.4.1 磁盘高速缓存,高速缓存在内存中可分为两种形式:在内存中开辟一个单独的存储空间作为磁盘高速缓存,其大小是固定的,不会因为受应用程序多少影响;,7.4.1 磁盘高速缓存,把所有未利用的内存空间变成一个缓存池,供请求分页系统和磁盘I/O时(作为磁盘高速缓存)共享。此时高速缓存的大小,显然不再是固定的。当磁盘的I/O的频繁程度较高时,该缓存池可能包含更多的内存空间;而在应用程序运行较多时,该缓存池可能只剩下较少的内存空间。,数据交付 数据交换(Data Delivery)是指将磁盘
18、高速缓存中的数据传送给请求者进程。当进程请求访问某个盘块中的数据时,由核心先查看磁盘高速缓冲器,是否存在进程所需访问的盘块数据的拷贝。若有,从高速缓存中提取数据交付给请求者进程,避免了访盘操作,使本次访问速度提高47个数量级;,7.4.1 磁盘高速缓存,7.4.1 磁盘高速缓存,否则,先从磁盘中将所访问的数据读入并交付给请求进程,同时将数据送高速缓存,以后需要访问该盘块的数据时,便可直接从高速缓存中提取。,系统可以采取下述两种方式,将数据交付给请求者进程:(1)数据交付。这是直接将高速缓存中的数据,传送到请求者进程的内存工作区;(2)指针交付。只将指向高速缓存中某区域的指针,交付给请求者进程。
19、后一种方式由于所传送的数据少,因而节省了数据从存储器到存储器的时间。,7.4.1 磁盘高速缓存,三、置换算法将磁盘中的盘块数据读入高速缓存时,会因高速缓存中已装满盘块数据,而需要将其中的数据先换出。采用哪种置换算法?常用的置换算法最近最久未使用算法LRU、最近未使用算法NRU及最少使用算法LFU等。,7.4.1 磁盘高速缓存,不少系统在设计高速缓存的置换算法时,除了考虑到最近最久未使用原则外,还考虑了以下几点:访问频率。每执行一条指令时,便可能访问一次联想存储器,联想存储器的访问频率,与指令的执行频率相当;而对高速缓存中的访问频率,与磁盘的I/O的频率相当,因此,对联想存储器的访问频率远远高于
20、对高速缓存的访问频率。,7.4.1 磁盘高速缓存,7.4.1 磁盘高速缓存,可预见性。在高速缓存中的各盘块数据,哪些数据可能在较长时间内不会再被访问,哪些数据可能很快就被再访问,有相当一部分是可预知的。,数据的一致性。高速缓存是在内存中,内存又是一种易失性的存储器,一旦系统发生故障,存放在高速缓存中的数据将会丢失,而其中有些盘块(如索引节点盘块)中的数据已被修改,但未拷回磁盘。因此,当系统发生故障后,可能会发生数据的不一致性。,7.4.1 磁盘高速缓存,7.4.1 磁盘高速缓存,基于上述考虑,有的系统中将高速缓存中的所有盘块数据,拉成一条LRU链。对于那些会严重影响到数据一致性的盘块数据和很久
21、都可能不再使用的盘块数据,都放在LRU链的头部使它们能被优先写入磁盘,以减少发生数据不一致性的概率,或者可以尽早的腾出高速缓存的空间。,对于那些可能在不久之后便要再使用的盘块数据,应挂在LRU链的尾部,以便在不久以后需要时,只要该数据块尚未从链中移至链首而被写回磁盘,便可直接到高速缓存中(即LRU链中)去找到它们。,7.4.1 磁盘高速缓存,7.4.1 磁盘高速缓存,四、周期性写回磁盘 一种情况值得注意:根据LRU算法,那些经常被访问的盘块数据,可能会一直保留在高速缓存中而长期的不会被写回磁盘中。(注意,LRU链意味着链中的任一元素在被访问到后,又被移动到链尾),为了解决这一问题,在UNIX系
22、统中专门增设了一个修改(update)程序,使之在后台运行。该程序周期性地调用一个系统调用SYNC。该调用的主要功能是强制性地将所有在高速缓存中已修改的盘块数据写回磁盘,一般是把两次调用SYNC的时间间隔定为30秒钟。这样,因系统故障所造成的工作损失不会超过30s的劳动量。,7.4.1 磁盘高速缓存,而在MS-DOS中所采用的方法是:只要高速缓存中的某盘块数据被修改,便立即将它写回磁盘,并将这种高速缓存称为“写穿透、高速缓存”(write-through cache)。MS-DOS所采用的写回方式,几乎不会造成数据的丢失,但需频繁地启动磁盘。,7.4.1 磁盘高速缓存,7.4.2 优化数据的分
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 操作系统 第七 磁盘 调度
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6606462.html