何时会出现碎片,使得碎片位于比基本碎片更低的地址?

何时会出现碎片,使得碎片位于比基本碎片更低的地址?

我所说的 Basefragment 是指文件的第一个片段 - 包含标题等。

假设我有一个文件,它被分成 3 个片段 (1、2、3)。1 的地址最低。我认为大多数文件系统会按以下顺序排列片段:第一个片段 (1) 排在最前面,然后是 2,然后是 3 - 如果出现碎片的话。但我读到过,也可能出现这种情况,例如 2 的相对地址较低,并显示为:2、1、3。

哪种分配算法会导致这种情况?

答案1

当您创建文件时,大多数文件系统会将其存储在第一个足够大的区域。但是,如果文件超出该区域,则文件将变得碎片化。碎片将再次占用第一个足够大的区域来容纳其他块,该区域的地址可能低于原始地址。

不同的文件系统有不同的行为方式。Linux 文件系统倾向于分配最靠近父目录 inode 的块,而 NTFS 则倾向于先分配低地址,并且优先分配未分配的块而不是先前已释放的块。每个系统都有自己的优点。

相关内容