我试图找到我可以在具有 12 个直接指针和 2kb 块大小的 UNIX (FFS) 系统上创建的最大可能文件。我环顾四周,试图找到某种公式或方向,我找到的最接近的是来自大学测验答题纸。
根据他们问题的解决方案,我尝试计算我的场景的最大文件(我假设他们公式的其他部分是因为间接指针):
(12 * 2KB) = 24KB
但是,我无法验证我的解决方案。如何正确计算最大可能的文件大小?
我试图找到我可以在具有 12 个直接指针和 2kb 块大小的 UNIX (FFS) 系统上创建的最大可能文件。我环顾四周,试图找到某种公式或方向,我找到的最接近的是来自大学测验答题纸。
根据他们问题的解决方案,我尝试计算我的场景的最大文件(我假设他们公式的其他部分是因为间接指针):
(12 * 2KB) = 24KB
但是,我无法验证我的解决方案。如何正确计算最大可能的文件大小?
使用 12 个直接指针,每个指向 2 kB 块,您可以拥有的最大文件是 24 kB,因为您已正确计算。没有简单的方法来验证它,您需要一个文件系统调试器来向您显示磁盘上的数据结构。
一旦你有了间接指针,你就需要知道有多少指针可以放入 2 kB。如果假设它们每个是 4 个字节,那么您可以容纳 512 个,因此每个间接块给您额外的 1 MB (512 * 2 kB)。
一旦你有双重间接,那么你需要知道有多少可以容纳在间接块描述的空间中。对于 1 MB 和 4 字节指针,这是 256 kB,因此双间接块允许 512 MB。
一些文件系统使用 (start, length) 对来描述磁盘上连续运行的块。如果您有 6 个这样的对而不是 12 个指针,那么根据磁盘的碎片程度,您可以在 12 KB 和 6 * 2 32 * 2 KB 或大约 36 TB 之间指定。