2011-12-16 113 views
16

文件系統塊大小的意義是什麼?如果我的文件系統塊大小被設置爲8K,這是否意味着所有讀/寫I/O都會在8K大小發生?因此,如果我的應用程序想要在偏移4097處讀取16個字節,則會讀取從偏移量4096開始的4K塊?文件系統塊大小

寫入在這種情況下如何工作?假設我想寫64個字節。

回答

0

正常情況下,如果您不得不在編程中處理文件,則應使用流抽象。 通過代碼進行的I/O操作通常是讀寫流;讀寫流和流,可以被緩衝,以便可以讀取或寫入文件塊。

fs上的塊大小是指映射磁盤表面;次要單個塊的大小主要塊的數量(以及表中保存文件分配信息的元素)。

因此,操作系統可以根據塊大小離散地映射文件,並具有更小的「文件映射」。 據我所知,這並不影響編程語言API的流抽象。

+0

我的問題更多的是瞭解文件系統如何工作以及它們如何與塊設備進行交互。在這種情況下塊大小的意義是什麼。 – user880946 2011-12-16 17:18:07

16

你說得對。塊大小爲文件系統的工作單元。每次讀取和寫入都以塊大小的整數倍完成。

塊大小也是文件可以具有的最小磁盤大小。如果你有一個16字節的塊大小,那麼一個16字節大小的文件佔用磁盤上的一個完整塊。

"Practical file system design"狀態:

塊:由磁盤或文件系統的最小單位可寫。文件系統所做的一切都是由在塊上完成的操作組成的。文件系統 塊的大小始終與磁盤塊大小相同或更大(整數倍)。

相關問題