這幾天在學文件系統的移植,一大堆大小概念弄得我一臉懵逼,所以趕緊補了補基礎知識,別小看基礎知識,它可以在很大程度上幫助我們撩小姐姐(手動狗頭)
以下解釋出自百度百科:
扇區是磁盤最小的物理存儲單元,但由於操作系統無法對數目眾多的扇區進行尋址,所以操作系統就將相鄰的扇區組合在一起,形成一個簇,然后再對簇進行管理。每個簇可以包括2、4、8、16、32或64個扇區。顯然,簇是操作系統所使用的邏輯概念,而非磁盤的物理特性。
為了更好地管理磁盤空間和更高效地從硬盤讀取數據,操作系統規定一個簇中只能放置一個文件的內容,因此文件所占用的空間,只能是簇的整數倍(前幾天學匯編的時候就發現指令段、代碼段、數據段、在編譯后,會按一定規律占有空間,文件夾也是如此);而如果文件實際大小小於一簇,它也要占一簇的空間。所以,一般情況下文件所占空間要略大於文件的實際大小,只有在少數情況下,即文件的實際大小恰好是簇的整數倍時,文件的實際大小才會與所占空間完全一致。
1、什么是扇區和(磁盤)塊?
扇區,顧名思義,每個磁盤有多條同心圓似的磁道,磁道被分割成多個部分。每部分的弧長加上到圓心的兩個半徑,恰好形成一個扇形,所以叫做扇區。扇區是磁盤中最小的物理存儲單位。通常情況下每個
扇區的大小是512字節。(由於不斷提高磁盤的大小,部分廠商設定每個扇區的大小是4096字節)
邏輯層面: 磁盤塊(虛擬出來的)。
塊是操作系統中最小的邏輯存儲單位。操作系統與磁盤打交道的最小單位是磁盤塊。
2、什么是簇?什么是塊?二者的區別?
通俗的來講,在 Windows 下如NTFS等文件系統中叫做 簇;在 Linux 下如Ext4等文件系統中叫做 塊(block)。每個簇或者塊可以包括2、4、8、16、32、64…2的n次方個扇區。
3、為什么存在磁盤塊?
讀取方便:由於扇區的數量比較小,數目眾多在尋址時比較困難,所以操作系統就將相鄰的扇區組合在一起,形成一個塊,再對塊進行整體的操作。
分離對底層的依賴:操作系統忽略對底層物理存儲結構的設計。通過虛擬出來磁盤塊的概念,在系統中認為塊是最小的單位。
4、怎么映射磁盤塊?
磁盤控制器,其作用除了讀取數據、控制磁頭等作用外,還有的功能就是映射扇區和磁盤塊的關系。
5、磁盤的讀寫基本單位是什么?
磁盤讀寫基本單位是扇區。磁盤的原理,物理實現,磁盤控制器是按照扇區這個單位讀取等操作數據的。
划重點啦~~~
操作系統是通過塊簇來做為單位讀取等操作數據的。
文件系統就是操作系統的一部分,所以文件系統操作文件的最小單位是塊。
6、塊與頁的關系
操作系統經常與內存和硬盤這兩種存儲設備進行通信,類似於“塊”的概念,都需要一種虛擬的基本單位。所以,划重點啦~~~
與內存操作,是虛擬一個頁的概念來作為最小單位;與硬盤打交道,就是以塊為最小單位。