【问题标题】:Maximum file size given a particular inode structure?给定特定 inode 结构的最大文件大小?
【发布时间】:2011-02-14 02:10:39
【问题描述】:

假设一个 UNIX 文件系统有一些限制——比如说,2 KB 块和 8B 磁盘地址。如果 inode 包含 13 个直接条目,并且每个包含一个单个、两个和三个间接条目,那么最大文件大小是多少?

【问题讨论】:

    标签: unix file system inode


    【解决方案1】:

    这为你解释:

    http://www.cis.temple.edu/~ingargio/cis307/readings/stable.html

    "The maximum size of a file will be 8KB*(10 + 2**10 + 2**20 + 2**30), that is more than 8TB."
    

    将 8KB 换成 2KB,并为更小的块大小调整条目。

    2KB*(10 + 2**8 + 2**16 + 2**24)
    

    从你的问题中我不清楚这 13 个条目是否包括单打、双打和三打,或者它们是否是分开的,但这应该很容易调整——只需将表达式中的 10 更改为 13。

    我想我已经正确地调整了所有的数学...仔细检查一下 =|希望这不是我为你做的作业;)

    【讨论】:

    • 很抱歉在 7 年后给您一个问题,但是方程中的两个变量是什么意思? 2**102**20 - 为什么是 2,为什么每个是 10 或 20?
    • @NateH06 2**10 表示2^10,我认为这些数字如下:10 代表 10 个直接条目,2^10 = 1024,即 1024^1。 2^20 = 1024^2 and 2^30 = 1024 ^ 3 每个索引块包含 1024 个指针,所以有意义。结果是1,000,000,000 KB = 8.59833 TB
    【解决方案2】:

    1 个块中有多少个指针?

    每个块是 2kb = 2^11 1个磁盘地址是8b = 2^3 所以,在 1 个块中有 2^11/2^3 = 2^8 个指针"

    文件系统中有多少个指针?

    13 个直接条目 = (2^8)*13 = 3328 对于单个 = (2^8)^2 = 2^16 对于双 = (2^8)^3 = 2^24 对于三重 = (2^8)^4 = 2^32 总指针为:3328 + 2^16 + 2^24 + 2^32"

    因此文件系统的大小为:

    磁盘大小为:总指针*指针大小,约为 34 GB"
        

    【讨论】:

    • 我不认为这对于前 13 个条目是正确的,应该只有 13 个指针?
    【解决方案3】:

    我们提供了一个可用于竞争性考试的快捷方式,如下所示:

    Max file size possible = [ block size/pointer size]^3 * block size
    

    【讨论】:

      猜你喜欢
      • 2012-09-16
      • 2015-01-03
      • 1970-01-01
      • 1970-01-01
      • 2012-02-01
      • 2018-05-30
      • 1970-01-01
      • 1970-01-01
      • 2015-11-26
      相关资源
      最近更新 更多