软考-软件设计:操作系统-文件管理-索引文件结构

提出问题

不使用 索引文件结构 那么文件最大大小是:

物理块数 * 单位大小

如果有 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


原文出处:/show_1GWs4UvGWga.html