1. 程式人生 > >磁碟的訪問機制及其相關演算法

磁碟的訪問機制及其相關演算法

一.磁碟的效能

1.磁碟的結構

磁碟裝置包括一個或者多個物理碟片,每個碟片分為一個或者兩個儲存面,每個盤面上有若干個磁軌,每個磁軌間有一定的間隙,每個磁軌從邏輯上被劃分為若干個扇區(軟盤大約為8-32個扇區,硬碟可多達上百個),一個扇區稱為一個盤塊或資料塊,每個扇區之間有一定的間隙。


注:上圖是將一個磁軌分為8個扇區。

        顯然,若將一個磁碟的內外磁軌分為相同的扇區,就會浪費外面磁軌的空間。那麼,現代磁碟利用了外磁軌較內磁軌大,所以將磁軌劃分在不同的環帶內,同一環帶內的磁軌就具有相同數目的扇區,則:外磁軌的扇區數目明顯大於內磁軌的扇區數目。但是,磁軌和盤面的幾何形式變化會對驅動程式有所影響,則,現代磁碟向作業系統提供的都是虛擬幾何的磁碟結構而不是實際的物理幾何的規格。

2.磁碟的分類

(1)固定頭磁碟

    用途:主要用於大容量磁碟。

    優點:存取速度快;

(2)移動頭磁碟

   用途:主要用於中小型磁碟

   缺點:存取速度慢;

   優點:結構簡單;

3.磁碟的訪問時間

存取資料時,磁頭必須能夠移動到所指定的磁軌上,並等待所指定的扇區的開始位置旋轉到磁頭下,最後進行資料的讀/寫。

(1)尋道時間Ts :啟動磁臂的時間與磁頭到達指定磁軌移動n條磁軌所經歷時間之和。

    Ts = m*n+s;(m為常數)

(2)旋轉延遲時間Tx :指定扇區移動到磁頭下所需要的時間。

    對於硬碟,平均旋轉延遲時間為2ms;

    對於軟盤,平均旋轉延遲時間為50-100ms;

(3)傳輸時間Tt:資料從磁碟讀出或者對於磁碟寫入資料的時間,所以Tt的大小與讀/寫資料的大小和磁碟的轉速有              關。

         Tt = b/rN(b表示讀/寫的位元組數,rN磁碟的旋轉速度)

        則:磁碟訪問時間: T = Ts + Tx + Tt;

二.磁碟排程演算法

1.先來先服務(FCFS)

思想:按照程序請求訪問磁碟的先後次序進行排程。

優點:公平.簡單,每個程序的請求都能得到滿足;

缺點:平均尋道時間較長。

2.最短尋道時間優先(SSTF)

思想:每次都優先排程要求訪問的磁軌的與當前磁頭所在磁軌最近的程序。

優點:降低了磁碟的平均尋道時間;

缺點:當程序要求訪問的磁軌遠離磁頭時,該程序的需求始終得不到滿足,可能發生“飢餓”現象。

3.掃描演算法(SCAN)

思想:下一個訪問的物件應是其欲訪問的磁軌即在當前磁軌之外,又是距離最近的。自裡向外的訪問直至外面沒有磁軌需要訪問時,將磁臂換為從外向裡移動。不斷地對於磁碟進行訪問,有效的避免了“飢餓”問題。

4.迴圈掃描演算法(CSCAN)

提出背景:當有一個程序請求訪問一個磁軌,但是磁頭剛從裡向外越過了這個磁軌,則:該程序必須等待磁頭從裡向外                移動到直至外面沒有磁軌需要訪問時,再從外向裡移動,訪問完該程式之前的所有程序之後再對於該程序進                行排程;這樣對於這個程序的排程產生了時間上的一定延遲。基於此問題,提出了迴圈掃描演算法。

思想:規定磁頭的移動方向為單向的。(1)當磁頭的移動方向為從裡向外時:當磁頭移動到最外面的請求訪問的磁軌並且訪問後,磁頭立即返回最裡面的請求訪問的磁軌,從裡向外進行迴圈訪問。(2)當磁頭的移動方向為從外向裡,類比(1)即可。

5.FSCAN演算法

思想:將磁碟請求佇列分為兩個子佇列。

(1)一個是當前所有請求磁碟I/O的程序所形成的佇列,由磁碟排程按照SCAN演算法進行排程;

(2)另一個是將在掃描期間新出現的請求磁碟I/O的程序插入等待處理的請求佇列。

  則:就不會產生“磁臂粘著”現象。

6.NStepSCAN演算法

思想:就是將磁碟請求佇列分為N個佇列,並且按照先來先服務的演算法對於這N個佇列進行處理。

當N = 1時為SCAN演算法;當N = 2時為FSCAN演算法。