iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 29
0
自我挑戰組

OS作業系統學習系列 第 29

第二十九天 mass-storage structure(大量儲存結構)--上

第二十九天 mass-storage structure(大量儲存結構)--上

常見的設備有:
Magnetic disk(硬碟):

  1. 每秒可轉60~200次
  2. Transfer rate(傳遞速率):資料在磁碟機與電腦中傳送的速度
  3. Positioning time(定位時間):又稱隨機存取時間,等於seek time加上rotational latency
  4. Head crash(碰劃):一種硬碟故障,硬碟讀寫頭和旋轉的磁碟片接觸時發生,磁碟表面產生不可恢復的損害
    https://ithelp.ithome.com.tw/upload/images/20181113/20112132ZkpHS6gNKO.png
    Magnetic tap(磁帶):
  5. 早期secondary-storage的媒介
  6. 相對固定和保存大量的數據
  7. 存取的時間緩慢,雖幾存取比硬碟慢1000倍
  8. 主要用於備份,存儲不常用數據,系統間傳輸介質
  9. 20~200GB為典型儲存量

硬碟架構:
跟記憶體一樣都是一個個一維的logical blocks,有順序的對應在硬碟上的磁區(sectors),sector 0是最外圓柱上的第一個軌道,mapping按順序通過軌道,接下來是該圓柱體中的其餘軌道,然後再通過從最外面到最裡面的其餘圓柱體進行。

硬碟的排程:
作業系統負責有效地使用硬件,也就意味著硬碟裝置具有快速存取時間和硬碟寬頻。
硬碟的存取時間主要有兩個部分:

  • seek time(搜尋時間):移動磁臂到所在磁柱所需的時間。
  • rotational latency (旋轉延遲):磁頭轉到所在磁區所需的時間。

硬碟寬頻(disk bandwidth)為傳輸的總bytes除以傳輸的時間,以第一個發送的到最後一個完成的期間來算。

硬碟排程的演算法有下列幾種:

  • FCFS(First-come, first-served ): 一次只接收一個請求,並依照要求的次序作,即先到先做。雖然公平,卻無法最佳化排程。
    https://ithelp.ithome.com.tw/upload/images/20181113/20112132zcDK789eTe.png
  • SSTF(shortest seek time first):參考SJF演算法,離當前磁頭比較近請求的先做,雖然快但容易造成Starvation。
    https://ithelp.ithome.com.tw/upload/images/20181113/20112132jURFcBleio.png
  • SCAN:又稱作elevator algorithm,是讓磁碟臂從磁碟的一端向另一端移動,在移動的期間依序服務每個磁柱的I/O要求,當達磁碟底端的時候在反轉向另一端前進,來回的存取磁碟。
    https://ithelp.ithome.com.tw/upload/images/20181113/20112132SYMApJqbdP.png
  • C-SCAN :提供更均勻的等待時間,當讀寫磁頭動到一端再反向時,由於先前靠近讀寫磁頭這端的要求才被服務過,所以要求服務的密度一定低很多,而且另一端會因磁頭在這端連續來回服務,而造成很長的等待時間,所以不如先將讀寫頭移至另一端先行服務。等於到底之後,先返會另一邊讀取。
    https://ithelp.ithome.com.tw/upload/images/20181113/20112132fD1BIqiFEw.png
    SCAN與C-SCAN排程演算法,磁碟臂會移動至磁碟的兩端,所以最長移動長度就是磁碟寬度,大多數的OS並不用此二方法,而改用C-LOOK
  • C-LOOK:跟C-SCAN差不多,只是他只會queue的尾巴,不會到硬碟的最尾端。
    https://ithelp.ithome.com.tw/upload/images/20181113/20112132NsYTvZPag5.png

剩下的明天繼續囉!


上一篇
第二十八天 Implementing File-System(檔案系統實作)--下
下一篇
第三十天 mass-storage structure(大量儲存結構)--下
系列文
OS作業系統學習30

尚未有邦友留言

立即登入留言