1、先來先服務(FCFS)
最簡單的磁盤調度算法。根據進程請求訪問磁盤的先後次序進行調度。(按順序訪問)
優點:公平、簡單。
缺點:未對尋道進行優化,平均尋道時間可能較長。
適用:請求磁盤I/O的進程數目較少的場合。
例題:假設磁頭當前位於第105道,正在向磁道序號增加的方向移動,現有一個磁道訪問請求序列爲:35,45,12,68,100,180,170,195,試用先來先服務調度算法給出響應序列並計算移道總次數。(需給出每次移動的磁道數)
(從105號磁道開始) | |
被訪問的下一個磁道號 | 移動距離(磁道數) |
35 | 70 |
45 | 10 |
12 | 33 |
68 | 56 |
100 | 32 |
180 | 80 |
170 | 10 |
195 | 25 |
移道總次數:316 | |
平均尋道長度爲:39.5 |
注:移道總次數 = 所有移動距離(磁道數之和)
平均尋道長度 = 移道總次數/尋道次數
2、最短尋道時間優先(SSTF)
要求訪問的磁道與當前磁頭所在的磁道距離最近,以使每次的尋道時間最短。(左右比,哪個最近優先訪問)
算法不能保證平均尋道時間最短。
例題:假設磁頭當前位於第105道,正在向磁道序號增加的方向移動,現有一個磁道訪問請求序列爲:35,45,12,68,100,180,170,195,試用最短距離優先調度算法給出響應序列並計算移道總次數。
(從105號磁道開始) | |
被訪問的下一個磁道號 | 移動距離(磁道數) |
100 | 5 |
68 | 32 |
45 | 23 |
35 | 10 |
12 | 23 |
170 | 158 |
180 | 10 |
195 | 15 |
移道總次數:276 | |
平均尋道長度爲:34.5 |
3、掃描(SCAN)算法
掃描算法不僅考慮到欲訪問的磁道與當前磁道間的距離,更優先考慮的是磁頭當前的移動方向。
方法:首先可以將磁道號排序,按照當前磁頭方向訪問,到頭後,再以當前位置開始向反方向訪問。
例題:假設磁頭當前位於第105道,正在向磁道序號增加的方向移動,現有一個磁道訪問請求序列爲:35,45,12,68,100,180,170,195,試用掃描調度算法給出響應序列並計算移道總次數。
(從105號磁道開始) | |
被訪問的下一個磁道號 | 移動距離(磁道數) |
170 | 65 |
180 | 10 |
195 | 15 |
100 | 95 |
68 | 32 |
45 | 23 |
35 | 10 |
12 | 23 |
移道總次數:273 | |
平均尋道長度爲:34.1 |
思路:從小到大排序
12 、35 、45 、68 、100 、(105) 、170 、180 、195
(當前位置)增加的方向——>
反方向<——(當前位置)
4、循環掃描(CSCAN)算法
CSCAN算法規定磁頭單向移動,將最小磁道號緊接着最大磁道號構成循環,進行循環掃描。
例題:假設磁頭當前位於第105道,正在向磁道序號增加的方向移動,現有一個磁道訪問請求序列爲:35,45,12,68,100,180,170,195,試用循環掃描調度算法給出響應序列並計算移道總次數。
(從105號磁道開始) | |
被訪問的下一個磁道號 | 移動距離(磁道數) |
170 | 65 |
180 | 10 |
195 | 15 |
12 | 183 |
35 | 23 |
45 | 10 |
68 | 23 |
100 | 32 |
移道總次數:361 | |
平均尋道長度爲:45.1 |
思路:從小到大排序
12 、35 、45 、68 、100 、(105) 、170 、180 、195
(當前位置)增加的方向——>
(當前位置)增加的方向——>
到頭後,以最小磁道號開始按增加的方向移動,可以把這個數列想象成一個圓圈(環),195的下一個數就是12(即:該數列的第一個數)