Appearance
题目
若某文件系统索引结点 (inode) 中有直接地址项和间接地址项,则下列选项中,与单个文件长度无关的因素是( )。
错因
B
间接地址级数(一级 / 二级 / 三级间接)直接决定单个文件能寻址多少块——一级间接再多一层就能多寻址 256 倍的块(按指针指针数算)。把它当成与文件长度无关的因素,相当于忽略了 inode 索引结构的扩容机制。
C
地址项个数(10 个直接 + 1 个一级间接 + 1 个二级间接 …)直接决定单文件最大块数:直接项越多、能直接寻址的小文件块越多;间接项越多,能寻址的大文件越大。这是单文件长度的直接限制因素。
D
文件块大小(如 1KB / 4KB)也直接影响单文件最大长度——同样数量的地址项,每项指向的块越大,文件总长越大。一级间接的覆盖范围 = 间接块字节数 / 指针字节数 × 块大小,块大小翻倍,覆盖范围翻倍以上。把它当无关因素是没把"块数 × 块大小 = 长度"想透。
总解析
单文件最大长度计算公式:
逐个看每个因素的影响:
| 因素 | 是否影响单文件长度? | 怎么影响 |
|---|---|---|
| A inode 总数 | ✗ 不影响 | inode 总数限制的是整个文件系统能装多少个文件,跟"某一个文件能多大"完全没关系。一个文件用一个 inode,文件长度由这个 inode 内部的索引结构决定 |
| B 间接索引级数 | ✓ 影响 | 多一级 → 多一层指针指向的能力 → 寻址范围扩大 |
| C 地址项个数 | ✓ 影响 | inode 里有几条直接 / 间接项,决定能寻址多少块 |
| D 文件块大小 | ✓ 影响 | 同样块数下,块越大文件越长;间接块容纳的指针数也跟块大小成正比 |
区分钥匙:A 是"全系统的容量"维度,B C D 是"单个文件的索引能力"维度。题问"单个文件长度",A 在另一个维度上——文件系统里 100 个 inode 还是 100 万个 inode,都不影响"某一个文件能写多大"。
最终答案是 A。