我很难理解磁盘调度的 SCAN 和 CSCAN 算法的工作原理。我了解 FCFS,Closest Cylinder Next,但听说 SCAN 类似于电梯机制并感到困惑。我的书说,对于传入的订单:[10 22 20 2 40 6 38](而磁盘当前为 20)在开始时移动的 SCAN 服务于 [(20) 20 22 38 40 10 6 2]; 这需要移动[0 2 16 2 30 4 4]个气缸,总共58个气缸。模式 [(20) 20 22 38 40 10 6 2] 是怎么来的?
问问题
21569 次
1 回答
7
让我们知道 SCAN(Elevator) 磁盘调度算法是怎么说的:-
它向下扫描到最近的一端,然后当它到达底部时,它向上扫描为它没有下降的请求提供服务。如果请求在被扫描后进入,则在进程返回或向上移动之前不会对其提供服务。
因此,在您的情况下,磁盘的当前位置为 20。因此,根据 SCAN 算法,它将向最近的一端扫描,并且在触底后,它会向上扫描为请求提供服务。
顺序是:-
| |
| * current position | * move back up to upside
|---> nearest disk is this one |
| so it'll move down and so on. |
| as it hit the bottom _______
____
Fig :- Demonstration of SCAN algorithm
因此,根据给定的数据,订单将是[(20) 20 22 38 40 10 6 2];
编辑 :-
SCAN 和 CSCAN 的唯一区别是在 CSCAN 中,
它从最近的一端开始扫描,并一直工作到系统的尽头。一旦它到达底部或顶部,它就会跳到另一端并朝相同的方向移动,这与 SCAN 使用相同的路径向上移动不同。
根据 CSCAN,运动方向与底部相同,然后它会反转路径。
因此,根据给定的数据,顺序将是[(20) 20 22 38 40 2 6 10];
注意最后三个磁盘位置的变化。
我希望很清楚。随意提出剩余的疑问。
于 2014-11-25T19:21:26.587 回答