现代文件系统中的碎片
Fragmentation in modern file systems
我正在修补 Pintos OS 文件系统并且想知道:
现代文件系统如何处理碎片问题,包括内部碎片、外部碎片和数据碎片?
大多数文件系统确实有处理碎片的方法。不过,我将描述不太复杂的常用文件系统的情况。
对于Ext2,每个文件有12个直接块指针指向包含文件的块。如果它们不够,则有一个指向 block_size / 4
个块的单个间接块。如果它们仍然不够,则有一个指向 block_size / 4
单间接块的双重间接块。如果还不够,还有一个指向 block_size / 4
双间接块的三重间接块。这样,文件系统允许在块边界处进行碎片化。
对于 ISO 9660,这是 CD 和 DVD 的常用文件系统,文件系统不支持碎片化。但是,可以使用多个连续的目录记录来将一个大(超过 2G/4G,最大可描述文件大小)文件拆分为可描述文件。这可能会导致碎片化。
对于FAT,文件分配table描述了磁盘上所有数据簇的位置和状态,以允许碎片化。所以在读取下一个簇时,驱动程序会在文件分配table中查找下一个簇的编号。
好的,您感兴趣的是文件碎片。
答案是完全取决于文件系统和操作系统。在传统的太监文件系统的情况下,磁盘本身是碎片化的。没有任何连续文件的概念。文件存储在更改的数据块中。这就是为什么对分区进行分页并且太监上的大多数数据库系统都使用分区的原因。
"Hard" 允许连续文件的文件系统以不同的方式管理它们。一个文件包含一个或多个 "extents." 如果初始范围被填满,文件系统管理器会创建一个新的范围并链接到 it.In 有些系统有很多文件创建选项。可以指定文件的初始大小并为后续分配保留 space(即第一个扩展区的大小和附加扩展区的大小)。
当硬文件系统出现碎片时,有不同的处理方法。在某些系统中, "defragging" 的正常方式是将图像备份到辅助存储然后恢复。这可以是正常系统维护过程的一部分。
其他系统使用 "defragging" 实用程序 运行 作为常规系统计划的一部分或手动 运行。
磁盘碎片问题经常被夸大。如果您的磁盘具有合理数量的 space,您实际上不会产生太多文件碎片。磁盘碎片——是;但如果您有足够的可用磁盘 space,这并不是什么大问题。当 (1) 您没有足够的可用连续磁盘 space 或 (2) [最有可能具有合理的磁盘 space] 您有一个不断获取添加数据的文件时,就会发生文件碎片。
我正在修补 Pintos OS 文件系统并且想知道:
现代文件系统如何处理碎片问题,包括内部碎片、外部碎片和数据碎片?
大多数文件系统确实有处理碎片的方法。不过,我将描述不太复杂的常用文件系统的情况。
对于Ext2,每个文件有12个直接块指针指向包含文件的块。如果它们不够,则有一个指向 block_size / 4
个块的单个间接块。如果它们仍然不够,则有一个指向 block_size / 4
单间接块的双重间接块。如果还不够,还有一个指向 block_size / 4
双间接块的三重间接块。这样,文件系统允许在块边界处进行碎片化。
对于 ISO 9660,这是 CD 和 DVD 的常用文件系统,文件系统不支持碎片化。但是,可以使用多个连续的目录记录来将一个大(超过 2G/4G,最大可描述文件大小)文件拆分为可描述文件。这可能会导致碎片化。
对于FAT,文件分配table描述了磁盘上所有数据簇的位置和状态,以允许碎片化。所以在读取下一个簇时,驱动程序会在文件分配table中查找下一个簇的编号。
好的,您感兴趣的是文件碎片。
答案是完全取决于文件系统和操作系统。在传统的太监文件系统的情况下,磁盘本身是碎片化的。没有任何连续文件的概念。文件存储在更改的数据块中。这就是为什么对分区进行分页并且太监上的大多数数据库系统都使用分区的原因。
"Hard" 允许连续文件的文件系统以不同的方式管理它们。一个文件包含一个或多个 "extents." 如果初始范围被填满,文件系统管理器会创建一个新的范围并链接到 it.In 有些系统有很多文件创建选项。可以指定文件的初始大小并为后续分配保留 space(即第一个扩展区的大小和附加扩展区的大小)。
当硬文件系统出现碎片时,有不同的处理方法。在某些系统中, "defragging" 的正常方式是将图像备份到辅助存储然后恢复。这可以是正常系统维护过程的一部分。
其他系统使用 "defragging" 实用程序 运行 作为常规系统计划的一部分或手动 运行。
磁盘碎片问题经常被夸大。如果您的磁盘具有合理数量的 space,您实际上不会产生太多文件碎片。磁盘碎片——是;但如果您有足够的可用磁盘 space,这并不是什么大问题。当 (1) 您没有足够的可用连续磁盘 space 或 (2) [最有可能具有合理的磁盘 space] 您有一个不断获取添加数据的文件时,就会发生文件碎片。