Filesystems
在給定塊大小和直接指針數量的情況下,如何計算可以創建的最大文件?
我試圖找到我可以在具有 12 個直接指針和 2kb 塊大小的 UNIX (FFS) 系統上創建的最大可能文件。我環顧四周,試圖找到某種公式或方向,我找到的最接近的是來自大學測驗答題紙。
根據他們問題的解決方案,我嘗試計算我的場景的最大文件(我假設他們公式的其他部分是因為間接指針):
(12 * 2KB) = 24KB
但是,我無法驗證我的解決方案。如何正確計算最大可能的文件大小?
使用 12 個直接指針,每個指向 2 kB 塊,您可以擁有的最大文件是 24 kB,因為您已正確計算。沒有簡單的方法來驗證它,您需要一個文件系統調試器來向您顯示磁碟上的資料結構。
一旦你有了間接指針,你就需要知道有多少指針可以放入 2 kB。如果假設它們每個是 4 個字節,那麼您可以容納 512 個,因此每個間接塊給您額外的 1 MB (512 * 2 kB)。
一旦你有雙重間接,那麼你需要知道有多少可以容納在間接塊描述的空間中。對於 1 MB 和 4 字節指針,這是 256 kB,因此雙間接塊允許 512 MB。
一些文件系統使用 (start, length) 對來描述磁碟上連續執行的塊。如果您有 6 個這樣的對而不是 12 個指針,那麼根據磁碟的碎片程度,您可以在 12 KB 和 6 * 2 32 * 2 KB 或大約 36 TB 之間指定。