(1)进程“饥饿”现象 SSTF算法虽然获得较好的寻道性能,但它可能导致某些进程发生“饥饿”(Starvation)。因为只要不断有新进程到达,且其所要访问的磁通与磁头当前所在磁道的距离较近,这种新进程的I/O请求必被优先满足。对SSTF算法略加修改后所形成的SCAN算法,即可防防止老进程出现饥饿现象。 (2)SCAN算法 该算法不仅考虑到欲访问的磁道与当前磁道的距离,更优先考虑的是磁头的当前移动方向。 例如,当磁头正在由里向外移动时,SCAN算法所选择的下个访问对象应是其欲访问的磁道既在当前磁道之外,又是距离最近的。这样由里向外地访问,直至再无更外的磁道需要访问时,才将磁臂换向,自外向里移动。这时,同样也是每次选择这样的进程来调度,即其要访问的磁道,在当前磁道之内,且距离最近者,这样,磁头又是逐步地向里移动,直至再无更里面一些的磁道要访问,从而避免了饥饿现象的出现。 这种算法中,磁头移动的规律颇似电梯的运行,故又常称为电梯调度算法。后页图C示出了按SCAN算法对9个进程进行调度及磁头移动的情况。 2、循环扫描CSCAN(Circular SCAN) SCAN算法既能获得较好的寻道性能,又能防止进程饥饿,故被广泛用于大、中、小型机和网络中的磁盘调度。但也存在这样的问题:当磁头刚从里向外移动过某一磁道时,恰有一进程请求访问此磁道,这时该进程必须等待,待磁头从里向外,然后再从外向里扫描完所有要访问的磁道后,才处理该进程的请求,致使该进程的请求被严重地推迟。为了减少这种延迟,CSCAN算法规定磁头单向移动。例如,只自里向外移动,当磁头移到最外的被访问磁道时,磁头立即返回到最里的欲访磁道,即将最小磁道号紧接着最大磁道号构成循环,进行扫描。采用循环扫描方式后,上述请求进程的请求延迟,将从原来的2 T减为T+smax。其中,T为由里向外或由外向里扫描完所有要访问的磁道所需的寻道时间,而smax是将磁头从最外面被访问的磁道直接移到最里边欲访问的磁道所需的寻道时间(或相反)。图D示出了CSCAN法对9个进程调度的次序及每次磁头移动的距离。 (2)FSCAN算法 FSCAN算法实质上是N步SCAN算法的简化。它只将磁盘请求访问队列分成两个子队列。—是当前所有请求磁盘I/O的进程形成的队列,由磁盘调度按SCAN算法进行处理。另一个队列则是在扫描期间,新出现的所有请求磁盘I/O进程的队列,把它们排人另一个等待处理的请求队列。这样,所有的新请求都将被推迟到下—次扫描时处理。 操作系统中的磁盘存储器管理是至关重要的,因为它涉及到文件存储、存取速度优化以及I/O效率。本节主要探讨磁盘存储器的工作原理、数据组织、磁盘调度算法以及提高磁盘性能的方法。 磁盘存储器是现代计算机系统中不可或缺的部分,它提供了大容量、快速存取的能力,支持随机存取,是实现虚拟存储器的基础。磁盘管理的目标包括合理分配存储空间、优化存取方式、提高空间利用率、提升I/O速度以及确保文件系统的可靠性。 磁盘I/O性能直接影响文件系统的整体性能。提高I/O速度可以通过选用高性能磁盘、应用有效的磁盘调度算法以及设置磁盘高速缓冲区来实现。磁盘是一种直接存取设备,访问时间不依赖于数据的位置。它由磁道、扇区和柱面等概念组成,物理地址通常由磁头号、磁道号(柱面号)和扇区号表示。 磁盘调度算法在提高I/O效率中起着关键作用。FCFS(先来先服务)算法简单但效率不高,可能导致长I/O请求等待。SSTF(最短寻道时间优先)算法能显著降低平均寻道时间,但可能引发进程“饥饿”。SCAN算法解决了SSTF的饥饿问题,它根据磁头移动方向选择下一个访问的磁道,类似于电梯的运行,被称为电梯调度算法。CSCAN算法进一步改进,磁头单向移动以减少延迟,FSCAN算法则将请求队列分为两部分,新请求在下次扫描时处理。 磁盘的组织结构通常包括多个盘片、磁头和磁道,每个磁道分为多个扇区,每个扇区包含标识符字段和数据字段。磁盘可分为固定头和移动头两种类型,固定头磁盘适用于大容量设备,移动头磁盘(如温盘)则广泛用于中、小型设备。 磁盘访问时间由寻道时间、旋转延迟时间和传输时间组成。寻道时间是磁头移动到指定磁道所需的时间,与磁道距离和磁盘速度有关。旋转延迟时间是等待目标扇区旋转到磁头下方的时间,与磁盘的旋转速度成反比。传输时间则取决于要传输的数据量。 磁盘存储器管理涉及多方面,从硬件选择到软件策略,都是为了实现高效、可靠的文件存储和访问。操作系统通过各种技术优化磁盘性能,以满足现代计算机系统的需求。
剩余53页未读,继续阅读
- 粉丝: 2
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助