Skip to content

考点清单

  • [x] 直接索引/一级间接索引/二级间接索引
  • [x] 索引容量计算
  • [x] 逻辑块号定位索引类型

笔记

索引文件结构

索引文件结构

假设 13 个索引节点,物理盘块大小 4KB,每个地址占 4B:

索引类型节点原理容量
直接索引0~9节点直接存放数据内容10 × 4KB = 40KB
一级间接索引10节点存放指向物理盘块的地址,共 1024 个地址1024 × 4KB = 4096KB
二级间接索引11~12节点→一级地址块→物理盘块1024 × 1024 × 4KB

练习题


经典题目 — 索引地址计算核心题(直接/一级间接/二级间接的边界定位)

设文件索引节点有 8 个地址项(每项 4 字节):5 个直接地址索引,2 个一级间接索引,1 个二级间接索引。磁盘索引块和数据块大小均为 1KB。

Q1:访问逻辑块号 5 和 518,分别采用什么索引?

📝答案与解析

答案:一级间接地址索引和二级间接地址索引

解析:

  • 直接索引:0~4(5 个)
  • 一级间接索引:每节点 1KB/4B=256 个块,2 个节点覆盖 5~516
  • 二级间接索引:517 以上
  • 逻辑块 5 在 5~516 范围 → 一级间接;518 > 516 → 二级间接

答案:逻辑块 5 → 一级间接地址索引,逻辑块 518 → 二级间接地址索引

这题是索引结构的经典计算,一步步拆:


已知条件

地址项总数8 个(iaddr[0]~iaddr[7])
直接索引5 个(iaddr[0]~iaddr[4])
一级间接索引2 个(iaddr[5]~iaddr[6])
二级间接索引1 个(iaddr[7])
磁盘块大小1KB = 1024 字节
每个地址占4 字节

第一步:每个间接节点能管多少块?

每个磁盘块可存地址数 = 1024 ÷ 4 = 256 个
  • 直接索引:1 个节点管 1 块
  • 一级间接:1 个节点管 256 块
  • 二级间接:1 个节点管 256 × 256 = 65536 块

第二步:画逻辑块号区间图

地址项        类型          覆盖逻辑块号范围       块数  
─────────────────────────────────────────────────────────  
iaddr[0]  ─ 直接            0                       1  
iaddr[1]  ─ 直接            1                       1  
iaddr[2]  ─ 直接            2                       1  
iaddr[3]  ─ 直接            3                       1  
iaddr[4]  ─ 直接            4                       1  
                              ────────  
                              0 ~ 4                 5 块  
─────────────────────────────────────────────────────────  
iaddr[5]  ─ 一级间接         5 ~ 260               256 块  
iaddr[6]  ─ 一级间接         261 ~ 516              256 块  
                              ────────  
                              5 ~ 516              512 块  
─────────────────────────────────────────────────────────  
iaddr[7]  ─ 二级间接         517 起                 65536 块

第三步:定位

逻辑块号落在区间索引类型
55~260(iaddr[5])一级间接索引
518517 以上(iaddr[7])二级间接索引

答案:逻辑块 5 → 一级间接地址索引,逻辑块 518 → 二级间接地址索引

注意边界:逻辑块 4 还是直接索引(iaddr[4]),逻辑块 5 就进入了一级间接

Q2:单个文件最大长度是多少 KB?

📝答案与解析

答案:66053 KB

解析:5(直接) + 256×2(一级间接,2个节点各256块) + 256×256(二级间接,256个一级节点各256块)= 5 + 512 + 65536 = 66053 KB


[Q18] 索引节点-地址计算

假设文件系统采用索引节点管理,且索引节点有8个地址项iaddr[0]~iaddr[7],每个地址项大小为4字节,iaddr[0]~iaddr[4]采用直接地址索引,iaddr[5]和iaddr[6]采用一级间接地址索引,iaddr[7]采用二级间接地址索引。假设磁盘索引块和磁盘数据块大小均为1KB字节。若用户访问文件File1中逻辑块号为5和261的信息,则对应的物理块号分别为( )。

image.png

  • A. 89和90
  • B. 89和136
  • C. 58和187
  • D. 90和136
📝答案与解析

答案:C

解析:直接索引0~4(5块)覆盖逻辑块0~4;一级间接=256块/节点。逻辑块5→iaddr[5]一级间接第0项→58;逻辑块261→261-5=256→iaddr[6]一级间接第0项→187。


[Q19] 索引节点-间接索引

同上题条件。101号物理块存放的是( )。

  • A. File1的信息
  • B. 直接地址索引表
  • C. 一级地址索引表
  • D. 二级地址索引表
📝答案与解析

答案:D

解析:iaddr[7]二级间接→先读一级索引块→再读二级索引块。101号块是二级地址索引表。