题37

题目

某文件系统使用类似于 Linux 的 inode 存储结构, 文件块和磁盘块的大小都是 4KB, 磁盘地址是 32 位, 现在一个文件包含 10 个直接指针和 1 个一级间接指针, 则这个文件所占用的磁盘块数目最多是( )块(不考虑索引块)。
A. 128
B. 512
C. 1024
D. 1034

分析

UNIX和LINUX系统有一个很重要的要素是,首先是一切皆文件,其次是把FCB和文件分离了,磁盘地址的位数,决定了可以放多少东西,也就是容量,一共应该就是这么大
一级的间接指针是什么?
这个题目问题的关键是,找到一张索引表有多大,能放多少东西

D
直接指针可指向 10 个磁盘块, 一级间接指针可指向一个索引块, 一个索引块中可存放 1024 个磁盘地址,每个地址指向一个磁盘块。因此该文件最多占用 个磁盘块。
为什么一个索引块中可存放 1024 个磁盘地址?
这是因为在 Unix 文件系统中,索引块(也称为 inode)通常被设计为 512 字节或 1024 字节的大小。
每个索引块中可以存放多个磁盘地址,这些地址指向实际的数据块。
在典型的 Unix 文件系统中,一个索引块可以存放 1024 个磁盘地址,这意味着每个索引块可以指向 1024 个数据块。每个数据块通常是 512 字节或 1024 字节大小。