- 1、本文档共72页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
现代操作系统第7章
* 磁盘调度算法 三、扫描(SCAN)算法: 1、进程“饥饿”现象。 2、SCAN算法:对SSTF改进后行成的。该算法不仅考虑到欲访问的磁道与当前磁道的距离,更优先考虑的是磁头的当前移动方向。这种算法中磁头移动的规律颇似电梯的运行,故又称为电梯调度算法。 四、循环扫描CSCAN:该算法是在SCAN的基础上规定磁头单向移动。例如只自里向外移动,当磁头移动到最外的被访问磁道时,磁头立即返回到最里的欲访问磁道,将最小磁道号紧接着最大磁道号构成循环,进行扫描。 * 磁盘调度算法 五、N-Step-SCAN 和 FSCAN 调度算法 1、 N-Step-SCAN 算法:该算法是将磁盘请求队列分成若干个长度为N的子队列,磁盘调度按FCFS依次处理这些子队列。而处理一个队列时又按SCAN算法,处理完一个队列后,再处理其他队列。这样就可以避免出现粘着现象。 2、FSCAN算法:其实质是N-Step-SCAN 算法的简化。它只将磁盘请求访问队列分成两个子队列。一个是当前所有请求磁盘I/O的进程形成的队列,按SCAN算法调度处理。另一个是在扫描期间,新出现的所有请求磁盘I/O进程排成的等待处理的请求队列。 * 磁盘高速缓存(1) 目前,磁盘的I/O速度远低于对内存的访问速度,通常要低上4到6个数量级,而成为系统的瓶颈。解决的办法主要是利用磁盘高速缓存(Disk Cache)。 一、磁盘高速缓存:是指利用内存中的存储空间,来暂存从磁盘中读出的一系列盘块中的信息。是一组在逻辑上属于磁盘,而物理上是驻留在内存的盘块。有两种形式: ⑴在内存中开辟一个独立的存储空间来作为磁盘高速缓存,其大小固定,不受应用程序多少的影响。 ⑵把所有未利用的内存空间变为一个缓冲池,供请求分页系统和磁盘I/O时共享。此时高速缓存的大小不再是固定的。 * 磁盘高速缓存(2) 二、数据交付:是指将磁盘高速缓存中的数据传送给请求者进程。交付的方式有两种: ⑴数据交付。是直接将高速缓存中的数据,传送到请求者进程的内存工作区中; ⑵指针交付。只将指向高速缓存中某区域的指针,交付给请求者进程。 * 磁盘高速缓存(3) 三、置换算法:高速缓存同样存在数据换入换出问题,解决问题采用的算法仍然是最近最久未使用算法LRU、最近未使用算法NRU和最少使用算法LFU等。由于请求调页中的联想存储器与高速缓存的工作情况不同,在设计高速缓存的置换算法时,除考虑最近最久未使用原则外,还应考虑以下几点: * 磁盘高速缓存(4) ⑴访问频率:高速缓存的访问频率,与磁盘I/O的频率相当。联想存储器的访问频率与指令执行频率相当。 ⑵可预见性。在高速缓存中的各盘块数据,哪些可能在较长的时间内不会被访问,那些可能很快又被访问,有相当一部分是可预知的。 ⑶数据的一致性。因系统故障,存放在高速缓存中的数据将丢失,可能造成数据不一致性。 为此,有的系统是将高速缓存中的所有盘块数据拉成一条LUR链。将可能严重影响数据一致性的盘块数据和很久都可能不再使用的盘块数据,都放在LUR链的头部,是它们能优先写回磁盘。 * 磁盘高速缓存(5) 四、周期性写回磁盘:有一种情况值得注意:就是根据LRU算法,那些被经常访问的盘块数据,可能会一直保留在高速缓存中而长期不会被写回磁盘中。这样可能因意外事件而丢失数据。解决的方法时,是周期性地强制性地将所有在高速缓存中已修改的盘块数据写回磁盘。或是只要高速缓存中的某盘块数据被修改,就立即将其写回磁盘。 * 提高磁盘I/O速度的其他方法 一、提前读:用户进程访问文件时,经常采用顺序访问的方法。这样在读当前块时可以预知下一次要读的盘块,因此可以在读当前块的同时,还要求提前将下一个盘块中的数据也读入缓冲区,从而减少磁盘启动次数。 二、延迟写:不是将缓冲区中本应立即写回磁盘的数据立即写,而是将其挂在空闲队列尾,当它移动到对首时,若有进程申请到该缓冲区时,才将其中的数据写入磁盘。 三、虚拟盘:又称作RAM盘,指利用内存去仿真磁盘。虚拟盘的主要问题在于它是易失性存储器。虚拟盘与磁盘高速缓存的主要区别是:虚拟盘中的内容完全由用户控制,而高速缓存中的内容由OS控制。 * 提高磁盘I/O速度的其他方法 四、优化物理块的分布:优化文件物理块的分布,使磁头的移动距离最小。虽然链接分配和索引分配都允许将一个文件的物理块分散在磁盘的任意位置,但若安排得过散,则会增加磁头的移动距离。 优化索引结点的分布:将索引结点放在中间位置的磁道上,可减小索引结点与文件之间的平均距离。 对文件盘块位置的优化,应在为文件分配盘块时进行。 * 廉价磁盘冗余阵列(RAID) RAID是利用一台磁盘阵列控制器,统一管理和控制一组磁盘驱动器。 一、并行交叉存取:在RAID系统中,有多台
文档评论(0)