2011-06-05 52 views
1

我正在編寫一個程序,需要以隨機順序讀取和寫入大量數據,並且由於我不想使用數百個小文件,因此我正在嘗試開發一個這種虛擬文件系統寫入一個大文件,用於跟蹤「文件」在「磁盤」文件中的位置。因此,我一直在試圖找到有關文件系統實現的詳細信息,但是這些東西似乎永遠不能用我能理解的方式解釋:文件系統如何跟蹤新文件的空閒/刪除扇區創建?例如,FAT在一開始就有一個索引,它似乎是唯一可以保存這些信息的地方,但是以線性O(n)方式在索引中搜索一個新的自由空間區域似乎是效率相當低,特別是如果沒有刪除扇區,並且您必須在列表末尾插入某些內容。我是否錯過了一些東西,或者這是文件系統如何真正檢測到未使用的扇區進行寫入?謝謝!文件系統如何跟蹤可用空間

回答

-2

它就像一個鏈接列表:每個文件可以被分隔成多個分區,在分區的每個分區它指的下一個相同的begining結束無二免費speaces。將空閒空間看作一個包含不在另一個文件內的字節的大文件!

+0

請問爲什麼downvote? [維基百科頁面(http://en.wikipedia.org/wiki/File_Allocation_Table)是我對這個答案的資源。 – Ali1S232 2011-06-26 13:16:28

+1

這是一個有效的具體爲一個,高度廢棄的文件系統:FAT – dmeister 2011-06-27 08:18:11

1

答案取決於整個文件系統架構。它可以是免費的網頁線性表,或自由空間可以以同樣的方式與其他文件(如鏈表)進行計數。

實際上開發有效的文件系統是你有一個邊任務相當嚴肅的任務。因此,使用一些已經創建的虛擬文件系統是有意義的,例如一個CodeBase提供的或我們的Solid File System