提出问题
不使用 索引文件结构 那么文件最大大小是:
物理块数 * 单位大小
如果有 13 个 物理块 ,每个 物理块 的单位大小为 4K,则文件最大大小为:
13 * 4K = 52K
太小了
解决
使用 索引文件结构
索引文件结构
索引文件结构是一种用于 文件容量扩展 的技术,通过 直接索引、一级间接索引、二级间接索引 和 三级间接索引 实现文件大小的灵活增长
作用
用于文件容量扩展
原理
一般的索引文件 由 13 个节点组成,索引从 0 开始
直接索引
第 0 - 9 个结点为 直接索引,指向文件的 物理块,适用于较小的文件
文件最大大小
如果 一个物理盘块有 4KB 容量,文件最大大小:
10 * 4KB = 40KB
一级间接索引
第 10 个结点是 一级间接索引,也是指向 物理块,但该 物理块 存 n 个地址,每个地址指向 物理块(该物理块才是文件数据)
计算文件最大大小
如果 一个物理盘块有 4KB 容量,一个地址占用 4 字节,文件最大大小是多少?
第一步
计算 一级间接索引 的 地址总数:
4KB * 1024 / 4字节 = 1024 个地址
第二步
每个地址指向一个物理盘块,每个物理盘块有 4KB 容量,所以,文件最大大小:
1024 个地址 * 4KB = 4096 KB = 4MB
二级间接索引

第 11 个结点是 二级间接索引,有两个 物理块 存 地址,如上图:
即:
第
11个结点,指向 物理块1,但该 物理块1 存n个地址;每个地址指向 物理块2,该 物理块2 存
n个地址;该地址指向的物理块才是文件数据
计算文件最大大小
如果 一个物理盘块有 4KB 容量,一个地址占用 4 字节,文件最大大小是多少?
分析
二级间接索引 有两个 物理块 存 地址
第一步
计算 二级间接索引 的 第一个物理盘块 的 地址总数:
4KB * 1024 / 4字节 = 1024 个地址
第二步
计算 二级间接索引 的 第二个物理盘块 的 地址总数:
4KB * 1024 / 4字节 = 1024 个地址
第三步
计算文件最大大小:
有 两个物理块 存地址:
- 物理块1 存
1024个地址,每个地址指向 物理块2 - 物理块2 存
1024个地址,每个地址指向一个 物理块(存文件数据)
物理盘块有 4KB 容量,所以:
1024 个地址 * 1024 个地址 * 4KB = 4,194,304 KB = 4GB
三级间接索引
第 12 个结点是 三级间接索引,有三个 物理块 存 地址,如上图
计算文件最大大小
方法同上:
1024 个地址 * 1024 个地址 * 1024 个地址 * 4KB = 4096GB = 4TB
下面是另一张图
参考:
https://blog.csdn.net/shujuku____/article/details/116227917
https://cloud.tencent.com/developer/article/2306914?policyId=1003
https://cloud.tencent.com/developer/article/2420805


