我正在阅读“使用Be文件系统的实用文件系统设计” ,在BeFS中,inode结构的“数据流”部分如下所示:
struct {
// each block_run(8 byte) is a disk address space which maps from
// at lease 1 block and 65536 block at most
block_run direct[12];
// points to a block which contains block_run of real data
block_run indirect;
// points to a block which contains block_run of indirect blocks
block_run double_indirect;
}
然后,本书开始计算最小和最大文件大小,让我们看看最小文件大小:每个直接block_run
映射1个块
并且每个间接映射至少映射4K空间(512 block_run
),每个间接映射至少映射4K空间(512 block_run
),每个块的最小文件大小为1KB结束于:
直接块= 12K
间接块= 512K(4K间接块映射512个块/行程,每个1K)
双间接块= 1024MB(4K双间接页面映射512个间接页面,每个映射映射512个4K的block_runs)
我确实对双间接块映射空间感到困惑,不是吗?
双间接块= 512 * 512KB(每个间接页面映射512K空间?)
答案 0 :(得分:0)
嗯,我看了很多章后才发现。双重间接块包含一个block_run,其中包含块地址,不包含间接块地址。因此计算是正确的。