unixFreeBSD中的块分配

unixFreeBSD中的块分配,unix,Unix,从FreeBSD UNIX(加尔文)中 假设数据以1-KB字节的传输大小写入文件,并且 文件系统的块和片段大小分别为4KB和512字节。档案 系统将分配一个1-KB的片段来包含第一次传输的数据。 下一次传输将导致分配一个新的2-KB片段。数据 必须将原始片段复制到这个新片段中,然后 通过第二次1-KB传输。分配例程确实尝试查找 紧跟在现有片段之后的磁盘上所需的空间 不需要复制,但如果他们不能这样做,最多可以复制七份 在片段变为块之前,必须使用。已作出规定 用于程序发现文件的块大小,以便进行该大小

从FreeBSD UNIX(加尔文)中

假设数据以1-KB字节的传输大小写入文件,并且 文件系统的块和片段大小分别为4KB和512字节。档案 系统将分配一个1-KB的片段来包含第一次传输的数据。 下一次传输将导致分配一个新的2-KB片段。数据 必须将原始片段复制到这个新片段中,然后 通过第二次1-KB传输。分配例程确实尝试查找 紧跟在现有片段之后的磁盘上所需的空间 不需要复制,但如果他们不能这样做,最多可以复制七份 在片段变为块之前,必须使用。已作出规定 用于程序发现文件的块大小,以便进行该大小的传输 可以制作,以避免碎片重新复制


你能解释一下作者想说什么吗?为什么不应该先分配一个4KB的块进行写入,然后再分配一个512字节的片段?作者谈论的是UNIX中的通用文件系统。

FreeBSD文件系统显然在为防止“小文件占用太多空间,因为每个文件都使用一个磁盘块”的问题而进行一些相当巧妙的特殊处理,这些问题在磁盘变大后曾困扰UNIX系统,但文件系统仍然存在于80年代

这很好

但是如果你把一个中到大的文件分成小块,你就可以愚弄文件系统,让它以一种浪费的方式使用“小文件”黑客

这很糟糕。慢慢来。对固态“磁盘”设备也很严格

如果您将中到大文件写入至少与磁盘块一样大的卡盘,则不会调用“小文件”攻击。这些问题都没有发生

这样比较好