計算機操作系統中的磁盤結構與磁盤調度算法

磁盤結構

  • 盤面(Platter):一個磁盤有多個盤面;
  • 磁道(Track):盤面上的圓形帶狀區域,一個盤面可以有多個磁道;
  • 扇區(Track Sector):磁道上的一個弧段,一個磁道可以有多個扇區,它是最小的物理儲存單位,目前主要有 512 bytes 與 4 K 兩種大小;
  • 磁頭(Head):與盤面非常接近,能夠將盤面上的磁場轉換爲電信號(讀),或者將電信號轉換爲盤面的磁場(寫);
  • 制動手臂(Actuator arm):用於在磁道之間移動磁頭;
  • 主軸(Spindle):使整個盤面轉動。

# 磁盤調度算法

讀寫一個磁盤塊的時間的影響因素有:

  • 旋轉時間(主軸轉動盤面,使得磁頭移動到適當的扇區上)
  • 尋道時間(制動手臂移動,使得磁頭移動到適當的磁道上)
  • 實際的數據傳輸時間

其中,尋道時間最長,因此磁盤調度的主要目標是使磁盤的平均尋道時間最短。

1. 先來先服務

FCFS, First Come First Served

按照磁盤請求的順序進行調度。

優點是公平和簡單。缺點也很明顯,因爲未對尋道做任何優化,使平均尋道時間可能較長。

2. 最短尋道時間優先

SSTF, Shortest Seek Time First

優先調度與當前磁頭所在磁道距離最近的磁道。

雖然平均尋道時間比較低,但是不夠公平。如果新到達的磁道請求總是比一個在等待的磁道請求近,那麼在等待的磁道請求會一直等待下去,也就是出現飢餓現象。具體來說,兩端的磁道請求更容易出現飢餓現象。


3. 電梯算法

SCAN

電梯總是保持一個方向運行,直到該方向沒有請求爲止,然後改變運行方向。

電梯算法(掃描算法)和電梯的運行過程類似,總是按一個方向來進行磁盤調度,直到該方向上沒有未完成的磁盤請求,然後改變方向。

因爲考慮了移動方向,因此所有的磁盤請求都會被滿足,解決了 SSTF 的飢餓問題。


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