假设一个UNIX文件系统有一些限制--比如,2KB的块和8B的磁盘地址。如果inode包含13个直接条目,以及一个单一的、双重的和三重的间接条目,那么最大文件大小是多少?
答案:最大文件大小为256GB。
这里为你解释:
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即可。
我认为我已经正确地调整了所有数学运算……请再次检查 =| 希望这不是我为你做的家庭作业 ;)
一个块中有多少个指针?
每个块为2kb = 2^11 一个磁盘地址为8b = 2^3 因此,在一个块中有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
2**10
或者2**20
- 为什么是2,以及每个变量为什么是10或20? - NateH062**10
表示2^10
, 我认为这些数字如下:10 代表十个直接条目,2^10 = 1024
,即 1024^1。2^20 = 1024^2,2^30 = 1024 ^ 3
,每个索引块包含 1024 个指针,所以很有道理。结果是1,000,000,000 KB = 8.59833 TB
。 - MuhsinFatih