问题:
假设一个I节点可以容纳7个直接块指针和一个单间接块指针。如果块大小为4KB,并且有32位块号,那么系统支持的最大文件是什么?
答案:
7个直接块,大小为4KB
间接块指向4K / 4 = 1024个块,每个块大小为4KB
1031 * 4K = 4222976B = 4124KB~4.03MB
现在通常,inode有:
12个直接块指针
1个单独的间接指针
1个双重间接指针
1个三重间接指针
<<<<<<<<<<<<<<<<<<我的理解>>>>>>>>>>>>>>>>>
我知道inode有7个直接和1个间接块指针,每个块指针有4kb大小。当它说有32位块号时,这是否意味着那里有1024个块指针? / p>
答案 0 :(得分:0)
如果块大小为4 kiB并且您有32位(4字节)块编号,则一个块中可以有1024个这样的块编号。 (我认为这是你不理解的部分。)这意味着:每个32位数字使用4个字节的块,因此这些数字中的1024个使用4096个字节=恰好1个块。因此,1024个块编号可以存储在一个块中。
但是在inode中,有七个直接块(通常)首先使用。所有大小均为< 28 kiB只使用直接块。
一旦直接块用完,就会分配一个块并将其分配给该inode,作为可以存储的块号列表。
答案 1 :(得分:0)
32位块号表示需要32位或4个字节来存储指向间接块的地址(或指针)。如果该块的每个地址占用4个字节,并且每个块的容量为4KB(4 * 1024字节),则每个间接块可以存储1024个地址(或指针)。包括7个直接指针,将有1031个指向数据块的指针。由于每个数据块的容量为4KB,因此可以支持的最大文件为1031 * 4KB。