首页/操作系统/04-file/文件的物理结构 🔗 在 Obsidian 中打开
操作系统 · 04-file

文件的物理结构

重要度 ⭐⭐⭐⭐⭐ 难度 ⭐⭐⭐考查频率 高 操作系统/文件管理物理结构连续分配链接分配索引分配
速查
物理结构(OS 视角)决定数据块如何落到磁盘:连续分配(连续块,最⾼效但有外碎片)、链接分配(隐式顺序 / FAT 显式)、索引分配(UNIX 混合索引)。同一逻辑结构可有不同物理存储方式。

速查

项目
定义文件在磁盘上的存储方式(OS 视角)
三种分配连续分配、链接分配、索引分配
最高效连续分配(顺序和随机都快)
最常用索引分配(UNIX/Linux 采用)

核心概念

文件的物理结构(分配方式)决定文件的数据块如何分配到磁盘块上。

1. 连续分配

  • 文件占据连续的磁盘块,目录项只需起始块号 + 长度
  • 优点:顺序和随机访问都高效(支持直接访问)。
  • 缺点:产生外部碎片,文件大小难以动态扩展。

2. 链接分配

  • 文件占据离散的磁盘块,通过指针链接。
  • 隐式链接:每个块末尾存下一指针;只能顺序访问,可靠性差。
  • 显式链接(FAT):所有指针集中存于文件分配表 FAT(常驻内存),支持直接访问。

3. 索引分配

  • 每个文件一个索引块记录所有数据块号,目录项存索引块号。
  • 支持直接访问、无外部碎片(索引块占额外空间)。
  • 多级 / 混合索引:直接指针 + 一级 / 二级 / 三级间接(UNIX ext 系列)。

关键性质

分配方式访问方式碎片扩展性可靠性
连续分配直接访问外碎片
隐式链接仅顺序
显式链接(FAT)直接访问
索引分配直接访问

常见考法

考法解题套路
物理地址计算连续:起始块 + 偏移;索引:查索引表
混合索引计算直接指针 + 一级间接 + 二级间接 + 三级间接的块数
FAT 表查找从目录项找起始块号,沿 FAT 表链查找
分配方式对比连续快但有碎片,链接无碎片但慢,索引折中

易错点

注意
  • 连续分配支持直接访问,链接分配(隐式)只支持顺序访问
  • FAT(显式链接)的表项在内存中——查找快,但占用内存。
  • 索引分配的索引块不在文件数据中——是额外的元数据块。
  • 混合索引中,小文件用直接指针(快),大文件用间接指针(灵活)。
  • 文件的逻辑结构和物理结构独立——用户不感知物理存储方式。

核心结论

必背
  1. 连续分配效率最高但有外部碎片,适合固定大小文件。
  2. 链接分配无外部碎片但只能顺序访问(隐式),FAT 可直接访问。
  3. 索引分配是现代 OS 主流方案(UNIX/Linux 采用混合索引)。
  4. FAT 表是显式链接的集中式链接表,常驻内存。
  5. 混合索引结合直接指针(快)和间接指针(灵活)的优点。

记忆卡片

三种文件物理分配方式?
连续分配、链接分配、索引分配。
哪种分配支持直接访问?
连续分配、显式链接(FAT)、索引分配都支持。
隐式链接的缺点?
只能顺序访问,指针占空间,一个指针损坏整个文件丢失。
UNIX 使用什么分配方式?
混合索引(直接指针 + 一级 / 二级 / 三级间接)。
FAT 表的作用?
显式链接的集中式链接表,所有块的下一指针集中存储,可直接访问。

交互动画 · 三种物理分配方式

第 0 步
磁盘块:橙色=文件占用,白色=空闲 1 2 3 4 5 6 7 8 目录项 = 「起始块 1 + 长度 5」只要知道首块位置就能算出任意块 → 有外碎片 2 5 9 3 6 7 8 链 2 → 9 → 5:每个数据块存「下一块指针」块离散分布,无外碎片,但只能顺序访问 索引块 3 7 2 9 4 5 索引块集中列出全部数据块号 3,7,2,9先读索引块再直取数据块:随机访问
点击「播放」或「下一步」:连续 → 链式 → 索引 三种物理分配逐个演示
第 1~3 步连续分配;第 4~5 步链式分配;第 6~7 步索引分配;第 8 步对比总结。
占用块 空闲块 目录项 / 链 索引块

相关知识点

file-logical-structure inode-detail

↑ 以上为站内 HTML 相对链接(纯网页可浏览);本页右上「在 Obsidian 中打开」跳回源笔记。