题目:某文件系统采用索引节点管理,其磁盘索引块和磁盘数据块大小均为1KB字节且每个文件索引节点有8个地址项iaddr[0]~iaddr[7],每个地址项大小为4字节,其中iaddr[0]~iaddr[4]采用直接地址索引I,iadd5]和iaddr[6]采用一级间接地址索引,iaddr[7]采用二级间接地址索引。若用户要访问文件userA中逻辑块号为4和5的信息,则系统应分别采用(1)该文件系统可表示的单个文件最大长度是(2)KB.
一、关键参数提取
块大小:1KB = 1024 字节
地址项大小:4 字节
每个索引块可存放地址数:1024 ÷ 4 = 256 个
索引节点结构:
iaddr[0~4]:5个直接地址(直接指向数据块)iaddr[5~6]:2个一级间接(指向索引块,该块存256个数据块地址)iaddr[7]:1个二级间接(指向索引块,该块存256个二级索引块地址,每个二级索引块再存256个数据块地址)
二、问题(2):最大文件长度计算
各层级数据块数量
表格
总块数计算
总块数=5+512+65536=66053 块
最大文件长度
66053 块×1KB/块=66053 KB
答案选 D (66053)
三、问题(1):访问逻辑块号 4 和 5
逻辑块号从 0 开始计数:
逻辑块号 0~4(共5块)→ 对应
iaddr[0]到iaddr[4]直接地址索引逻辑块号 5~260(共256块)→ 对应
iaddr[5]一级间接地址索引(iaddr[5]指向的索引块内的第 0~255 个地址)逻辑块号 261~516(共256块)→ 对应
iaddr[6]一级间接地址索引逻辑块号 517 开始 → 对应
iaddr[7]二级间接地址索引
因此:
逻辑块号 4 → 直接地址索引(
iaddr[4])逻辑块号 5 → 一级间接地址索引(通过
iaddr[5]找到索引块,再取索引块中第 0 个地址)
问题(1) 答案:直接地址索引 和 一级间接地址索引(或表述为"一级索引")
四、记忆口诀
直一一级二二二
直接块数 = 地址项数
一级块数 = 地址项数 × 256
二级块数 = 地址项数 × 256 × 256
易错点提醒:
地址项是 4 字节(不是 8 字节),所以每块存 256 个地址(不是 128 个)
逻辑块号从 0 开始,不是从 1 开始!块号 4 是第 5 个块(0,1,2,3,4)
二级间接是 256×256=65536,不是 256+256