【操作系統】磁盤調度算法

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(即:該數列的第一個數)

                                                                         

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章