赞
踩
目录
先来先服务(First Come First Served, FCFS)
最短寻道时间优先(Shortest Seek Time First,SSTF)
在学习操作系统的过程中,会遇到许多之前没接触过的概念。但是理解起来比较容易,因为我们在学习的过程中会寻找生活中的例子来与之对应,这样我们就把这些没接触过的概念与我们拉近了距离。学习起来就非常的容易,今天我给大家分享一下我对磁盘调度的理解。
磁盘是可供多个进程共享的设备,当有多个进程都要求访问磁盘时,应采用一种最佳调度算法,以使各个进程对磁盘的平均访问时间最短。由于在访问磁盘的时间中,主要是寻到时间,因此磁盘调度的一个重要目标是使磁盘的平均寻道时间最短。目前常用的磁盘调度算法有先来先服务、最短寻道时间优先、扫面等算法。
它根据进程请求访问磁盘的先后顺序进行调度,这种算法的优点是公平、简单,而且每个进程的请求都能依次得到处理,不会出现某一进程的请求长期得不到满足的情况。但此算法由于未对寻道进行优化,导致平均寻道时间较长。简单来说就是按照已经拍好的顺序来给进程进行调度,不会有插队等其他不公平的现象出现。
这种算法要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短。但是这种算法不能保证平均寻道时间最短。也就是从磁盘的某一时刻开始,按照已经给定的顺序去考虑是走正方向距离最短还是走反方向距离最短。
扫面算法又称电梯算法。该算法不仅考虑到了要访问的磁道与当前磁道的距离,更优先考虑磁头当前的移动方面。如果磁头正在自里向外移动时,SCAN算法所考虑的下一个访问对象应是其要访问的磁道在当前磁道之外,但是又是距离最短的。这样一直访问,直到没有更外面的磁道需要访问时,才将磁臂转为自外向里移动。也就是说,需要向同一个方向去访问磁道直到没有然后向反方向进行依次访问。
循环扫描算法和扫描算法非常的相似,但是循环扫描算法是规定磁头是单向扫描的,而扫描算法是双向扫描的。也就是说循环扫描法朝一个方向进行访问磁道时,扫描到最大或者最小的时候会顺着原来的方向继续扫描。举个例子来说,比如说磁道最大为200,有磁道号4、18、55、78、145、187、199。如果是按照正方向、从130磁道开始的话,当访问到199的时候会继续4这个磁道而不是扫描78磁道。
减少寻道时间:磁盘调度算法可以优化磁头的移动路径,减少寻道时间,从而提高磁盘的访问速度和效率。
提高磁盘的吞吐量:通过合理的调度算法,可以减少磁盘的空闲时间,提高磁盘的利用率,从而增加磁盘的吞吐量。
提高系统的响应速度:通过减少磁盘访问时间,磁盘调度算法可以减少进程的等待时间,提高系统的响应速度,提升用户体验。
提高系统的公平性:一些磁盘调度算法(如SCAN、C-SCAN)可以根据请求的顺序或者按照某种策略来调度磁盘访问,确保每个请求都有公平的机会执行,提高系统的公平性。
可能导致某些请求长时间等待:某些磁盘调度算法(如SCAN、C-SCAN)可能导致某些请求在某个方向上等待时间过长,造成不公平性。
可能增加磁盘头臂的移动距离:某些磁盘调度算法(如SCAN、C-SCAN)可能导致磁头臂在某个方向上移动较远,增加寻道时间。
需要额外的计算和开销:某些磁盘调度算法(如基于预测的调度算法)可能需要额外的计算和开销来进行请求的预测和调度,增加系统的负担。
磁盘调度算法的目标是减少磁头移动的时间和提高磁盘访问效率。不同的调度算法适用于不同的访问模式和需求,需要根据具体情况选择合适的调度算法。同时,磁盘调度算法的设计也需要考虑磁盘的物理特性、访问模式和性能要求等因素。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。