【发布时间】:2011-02-14 02:10:39
【问题描述】:
假设一个 UNIX 文件系统有一些限制——比如说,2 KB 块和 8B 磁盘地址。如果 inode 包含 13 个直接条目,并且每个包含一个单个、两个和三个间接条目,那么最大文件大小是多少?
【问题讨论】:
假设一个 UNIX 文件系统有一些限制——比如说,2 KB 块和 8B 磁盘地址。如果 inode 包含 13 个直接条目,并且每个包含一个单个、两个和三个间接条目,那么最大文件大小是多少?
【问题讨论】:
这为你解释:
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。
我想我已经正确地调整了所有的数学...仔细检查一下 =|希望这不是我为你做的作业;)
【讨论】:
2**10 或 2**20 - 为什么是 2,为什么每个是 10 或 20?
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
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"
【讨论】:
我们提供了一个可用于竞争性考试的快捷方式,如下所示:
Max file size possible = [ block size/pointer size]^3 * block size
【讨论】: