1. 程式人生 > >磁碟系統基本概念以及磁碟的順序讀寫與隨機讀寫

磁碟系統基本概念以及磁碟的順序讀寫與隨機讀寫

本文總結自

(1)《資料庫系統實現》

(2)知乎:https://www.zhihu.com/question/48254780

1.基本概念

2.細節

3.順序讀寫和隨機讀寫

1.基本概念

(1)磁碟組合
碟片=2盤面
主軸
磁軌
柱面
扇區
間隙
塊:對於理解資料庫系統特別重要的是磁碟被劃分為磁碟塊(或就稱為塊,或者像作業系統稱為頁),

每塊的大小是4-64kB。整個塊被從一個稱為緩衝區的連續記憶體區域中移進移出。

塊是在磁碟與主存之間所傳輸資料的邏輯單元,由一個或多個扇區所組成。
(2)磁頭組合
磁頭臂
磁頭
磁頭組合:一個磁碟的所有磁頭在一起叫做磁頭組合,它們位於相同的柱面上。

2.細節

(1)磁軌、扇區、讀取速度的關係
一個盤面,從內到外有很多磁軌,同一個磁軌被劃分為若干個扇區。
其中扇區之間有間隙隔開,間隙佔磁軌的10%空間。
同一個盤面上磁軌上的資料密度相同,但是外側磁軌長度大於內側磁軌。
每一個扇區上的資料量是相同的(例如512位元組),所以外側磁軌扇區數大於內側磁軌。
由於盤面各個磁軌角速度相同,但是線速度不同,所以外側磁軌理論上來說讀取速度快於內側磁軌。
當然如果內外側磁軌採用不同密度,可以實現內外磁軌讀取速度相同,但是有兩個缺點
①製造工藝更加複雜
②浪費外側儲存空間
當然為了實現特定的目的,需要內外磁軌一致的讀取速度,也有可能這樣做。


(2)磁軌、磁頭、柱面
①磁頭並不會與磁軌接觸,而是靠地很近,可以感應盤面的磁方向,改變磁方向。
②同一磁碟的所有磁頭位於不同的盤面,但是相同的磁軌,這些相同的磁軌共同構成一個曲面,稱為柱面。


(3)磁碟讀取時間
①尋道時間,表示磁頭在不同磁軌之間移動的時間。
②旋轉延遲,表示在磁軌找到時,中軸帶動盤面旋轉到合適的扇區開頭處。
③傳輸時間,表示盤面繼續轉動,實際讀取資料的時間。
7200轉/min,旋轉一週需要8.33ms
尋道約10ms
所以整個磁碟讀取時間在一個磁軌上是10ms級的。

3.順序讀寫和隨機讀寫對於機械硬碟來說為什麼效能差異巨大?

順序讀寫=讀取一個大檔案
隨機讀寫=讀取多個小檔案
順序讀寫比隨機讀寫快的原因
①順序讀寫,主要時間花費在了傳輸時間,而這個時間兩種讀寫可以認為是一樣的。
隨機讀寫,需要多次尋道和旋轉延遲。而這個時間可能是傳輸時間的許多倍。
②順序讀寫,磁碟會預讀,預讀即在讀取的起始地址連續讀取多個頁面
(現在不需要的頁面也讀取了,這樣以後用時就不用再讀取,當一個頁面用到時,大多數情況下,它周圍的頁面也會被用到)  
而隨機讀寫,因為資料沒有在一起,將預讀浪費掉了。
③另一個原因是檔案系統的overhead。
讀寫一個檔案之前,得一層層目錄找到這個檔案,以及做一堆屬性、許可權之類的檢查。
寫新檔案時還要加上尋找磁碟可用空間的耗時。
對於小檔案,這些時間消耗的佔比就非常大了。