六、磁盘调度算法
如题: 假设一个磁盘有100个柱面,编号为0~99,在完成了磁道25处的请求后,磁头当前正在磁道43处服务。磁盘请求的柱面按38、6、40、2、20、22、10的次序到达磁盘驱动器,寻道时每移动一个柱面需要10ms,计算以下算法的总寻道时间:
(1)先来先服务算法
(2)最短寻道时间优先算法
(3)电梯调度算法。
先来先服务(FCFS)
思路: 按顺序一个一个来,依次执行
即43→38→6→40→2→20→22→10
解题过程:
-
列一个表
-
根据算法依次写出下一个磁道数
-
移动的磁道数就是两者差的绝对值
下一个磁道号 移动的磁道数 38 |43-38|=5 6 |38-6|=32 40 |6-40|=34 2 |40-2|=38 20 18 22 2 10 12 -
根据移动的磁道数计算总寻道时间
( 5 + 32 + 34 + 38 + 18 + 2 + 12 ) ∗ 10 = 1410 m s (5+32+34+38+18+2+12)*10=1410ms (5+32+34+38+18+2+12)∗10=1410ms
最短寻道时间优先(SSTF)
思路: 按最接近当前磁道的来
即43→40→38→22→20→10→6→2
值得注意的是,磁盘是一个圆,所以如果当前是98处,请求的柱面是95、1,那么按绝对值来最接近的磁道是1
解题过程:
-
跟上面一样
下一个磁道号 移动的磁道数 40 3 38 2 22 16 20 2 10 10 6 4 2 4
SCAN扫描电梯算法(SCAN)
思路: 按方向找最近的,找完了那就反方向
以该题为例: 假定一磁盘有200个柱面,编号为0—199,在完成了磁道125处的请求后,当前正在磁道143处为一个请求服务。若请求队列的先后顺序为86,147,91,177,94,150,102,175,130,采用SCAN(扫描)算法和CSCAN(循环扫描)完成上述请求,写出磁头移动的顺序,并计算存取臂移动总量(单位为磁道数)。
题目以125->143为正方向
即143→147→150→175→177→130→102→94→91→86
解题过程:
-
跟上面一样
下一个磁道号 移动的磁道数 147 4 150 3 175 25 177 2 130 47 102 28 94 8 91 3 86 5
循环扫描(CSCAN)
思路: 按方向找最近的,找完了那就从0开始按方向找
以该题为例: 假定一磁盘有200个柱面,编号为0—199,在完成了磁道125处的请求后,当前正在磁道143处为一个请求服务。若请求队列的先后顺序为86,147,91,177,94,150,102,175,130,采用SCAN(扫描)算法和CSCAN(循环扫描)完成上述请求,写出磁头移动的顺序,并计算存取臂移动总量(单位为磁道数)。
题目以125->143为正方向
即143→147→150→175→177→86→91→94→102→130
解题过程:
-
跟上面一样
下一个磁道号 移动的磁道数 147 4 150 3 175 25 177 2 86 91 91 5 94 3 102 8 130 28