0

我在这里有一个问题,我不知道如何计算可以存储在使用 inode 和磁盘块的磁盘上的文件的最大大小。

假设一个页大小为 4096 字节,一个指向一个帧的页表项占用 8 个字节(4 个字节用于指针加上一些标志),一个指向另一个页表的页表项占用 4 个字节,有多少级如果每个级别的页表必须适合单个页面,则需要页表来映射 32 位地址空间?

可以在使用存储 4096 字节的 inode 和磁盘块的磁盘上存储的最大文件大小。每个inode可以存储10个条目,第一个inode保留后两个条目用于级联inode???

对于问题的第一部分,我得到的关卡总数是 3,但我不知道如何做第二部分。

4

1 回答 1

1

你所描述的听起来像 EXT 文件系统。

EXT3 总共使用了 15 个指针。

前 12 个条目是直接的:它们直接指向数据块。第三个到最后一个条目是 1 级间接:它指向一个完全由 1 级条目填充的块。第二个到最后一个条目是 2 级间接:它指向一个完全充满 1 级间接的块。最后一个条目是 3 级间接。

此系统上的最大文件大小通常是操作系统的限制,通常在 16GB 和 2TB 之间。

理论最大值为 12I + I^2/P + I^3/P^2 + I^4/P^3,其中 I 是以字节为单位的 inode 大小(通常为 4096,尽管可能有不同的值),P 为指针大小,以字节 (4) 为单位。这产生了 4,402,345,721,856 字节的最大理论大小。

EXT3 Inode 指针结构

于 2012-08-03T17:32:00.577 回答