1. 程式人生 > >磁臂排程演算法

磁臂排程演算法

一. 前言         每當一個程序需要對磁碟進行I/O操作,它就向作業系統發出一個系統呼叫。該呼叫請求指定了一些資訊:
  • 操作是輸入還是輸出
  • 所傳輸的磁碟地址是什麼
  • 所傳輸的記憶體地址是什麼
  • 所傳輸的扇區數是什麼
二. 排程演算法 1. FCFS排程
  • 基本概念:先來先服務演算法,這種演算法本身比較公平,但是它通常不提供最快的服務
  • 優點:公平、簡單、易於實現
  • 缺點:平均尋道時間大,僅應用在磁碟I/O較少的場合
         2. SSTF排程
  • 基本概念:在將磁頭移到遠處以處理其他請求之前,先處理靠近當前磁頭位置的請求可能較為合理。這個假設是最短尋道時間優先演算法SSTF的基礎。
  • 優點:效能比“先來先服務”好
  • 缺點:不能保證平均尋道時間最短,可能出現“飢餓”現象
        
3. SCAN排程
  • 基本概念:對於SCAN演算法,磁臂從磁碟的一端向另一端移動,同時當磁頭移過每個柱面時,處理位於該柱面上的服務請求。當到達另一端時,磁頭改變移動方向,處理繼續。
  • 優點:尋道效能較好,可避免“飢餓”現象
  • 缺點:不利於遠離磁頭一端的訪問請求
        
4. C-SCAN排程
  • 基本概念:SCAN排程的變種,主要提供一個更為均勻的等待時間。與SCAN 一樣,C-SCAN將磁頭一端移到磁碟的另一端,隨著地洞不斷地處理請求。不過,當磁頭移到另一端時,它會馬上返回到磁碟開始,返回時並不處理請求。
  • 優點:消除了對兩端磁軌請求的不公平
  • 缺點:--
        
5. LOOK排程
  • 基本概念:SCAN和C-SCAN使磁頭在整個磁碟寬度內進行移動。事實上,這兩個演算法都不是這麼實現的。通常,磁頭只移動到一個方向上最遠的請求為止。接著它馬上回頭,而不是繼續道磁碟的盡頭。這種形式的SCAN和C-SCAN稱為LOOK和C-LOOK排程,這是因為它們在朝一個方向移動會看是否有請求
         三. 排程演算法的選擇
  • SCAN和C-SCAN對於磁碟負荷較大的系統會執行得很好,因為它不可能產生餓死問題
  • SSTF或LOOK是比較合理的預設演算法