文件存儲

一:硬碟的存儲結構

磁碟的最小存儲單位是扇區(Sector ),大小是512B(0.5K)。

連續的8個扇區組成一個塊block(4K),這是文件讀寫的基本單位。每個block內只能存放一個文件的數據。

每次讀硬碟會讀一個或者多個block,也就是預讀取(原理是局部性原理)。

二:文件的結構和存儲

文件分成兩部分,即控制信息和內容信息。這兩部分要分開存儲。

文件的控制信息(元數據)存儲在inode( 儲存文件元信息的區域)中,一個文件只能有一個inode(索引節點)。

文件的內容信息存放在block塊中。

三:文件的讀寫過程

1)找到文件的inode編號

文件所在目錄(也是一個文件)里有一個目錄項列表,其中目錄項由兩部分組成:文件名和文件的inode編號(id)。

每個文件的inode編號都是唯一的,find命令可利用inode編號搜索文件。

find . -inum 63405 |xargs rm

2)根據inode編號找到inode

3)根據inode中信息找到文件的內容數據所在的block,進行讀寫操作。

所以,即使目錄下的文件數是0.1K級別時, 也需要3次的文件IO

1:讀取目錄元數據

2:讀取inode

3:讀取文件內容

參考文獻:

理解inode - 阮一峰的網路日誌

linux文件系統如何進行文件存取 - Debug Hacks

推薦閱讀:

windows為何不收購everything等第三方優秀的工具集成在自己的系統當中以改進自己某方面系統功能的弱勢?
你需要熟練運用的12個命令行工具
蘋果電腦操作系統是什麼?
系統突發性地磁碟佔有100%,資源管理器無限重啟
CPU怎樣對存儲器們進行讀寫?

TAG:文件系統 | 操作系統 |