4

我很难理解磁盘调度的 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] 是怎么来的?

4

1 回答 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 回答