4.计算机操作系统——文件系统.md 4.7 KB


一、文件系统定义与核心功能

1. 定义

文件系统是操作系统中管理持久化数据的子系统,负责将文件以逻辑结构组织并存储到磁盘等外存设备,提供文件的创建、读写、删除和保护功能。其核心设计目标包括:

  • 按名存取:用户通过文件名访问文件,无需关注物理存储细节
  • 高效存储:优化磁盘空间利用率(如减少碎片)
  • 数据安全:通过权限控制、备份等机制保障数据安全

2. 核心功能

  1. 文件存储管理:分配磁盘空间(如连续/离散分配)
  2. 目录管理:树形结构组织文件,支持快速检索
  3. 元数据管理:维护文件属性(如大小、权限、时间戳)
  4. 缓存机制:通过内存缓存加速文件访问(如目录项缓存)
  5. 虚拟文件系统(VFS):统一接口支持多种文件系统(如Ext4、NTFS)

二、文件系统的基本组成

1. 核心数据结构

组件 描述
索引节点(inode) 存储文件元信息(如大小、权限、数据块位置),唯一标识文件,持久化在磁盘
目录项(dentry) 记录文件名与inode的映射关系,形成目录结构,缓存在内存以提高访问效率
超级块(Superblock) 记录文件系统整体信息(如块大小、inode总数)

2. 磁盘布局

磁盘被划分为以下区域:

  1. 引导块:系统启动代码
  2. 超级块:文件系统元信息
  3. 索引节点区:存储所有inode
  4. 数据块区:存储文件实际数据
  5. 位图区:记录空闲块/inode状态(0=空闲,1=占用)

三、文件实现机制

1. 文件的物理结构

类型 特点 优缺点
连续分配 文件占用连续的物理块,通过起始块号+长度定位 ✔️顺序访问快 ✖️外部碎片严重
链式分配 文件块通过指针链接,支持离散存储 ✔️无外部碎片 ✖️随机访问效率低
索引分配 建立索引表记录文件块位置,支持多级索引(直接/间接/双重间接指针) ✔️支持大文件 ✖️索引表占用额外空间

2. 文件存储空间管理

方法 原理 应用场景
空闲表法 维护空闲块列表,分配时顺序查找 简单但效率低
位图法 用二进制位表示块是否空闲(0/1) 空间利用率高(如Ext4)
成组链接法 将空闲块分组,通过栈结构管理 UNIX系统常用

四、文件存取方法

1. 存取方式

类型 特点 适用场景
顺序存取 按文件逻辑顺序依次读写 磁带、流媒体
直接存取 随机访问任意位置(通过块号定位) 数据库文件
索引存取 通过关键字(如记录ID)快速定位记录 大型结构化文件

2. 性能优化技术

  • 缓存机制:将热点数据缓存在内存(如页缓存)
  • 预读取:根据局部性原理提前加载相邻数据块
  • 日志技术:记录操作日志,避免系统崩溃导致数据不一致

五、高频考点与答题要点

1. 必背概念对比

  • 硬链接 vs 软链接
    • 硬链接:多个目录项指向同一inode(inode引用计数+1)
    • 软链接:独立文件存储目标路径,类似快捷方式
  • FAT32 vs NTFS
    • FAT32:简单,最大文件4GB;NTFS:支持ACL、日志、大文件

2. 经典问题解析

  • Q1:索引节点(inode)与目录项(dentry)的区别?

    • 答:inode存储文件元信息并持久化;dentry仅缓存在内存,用于快速检索目录结构
  • Q2:如何处理大文件存储?

    • 答:采用多级索引(如双重间接指针)或范围分配(extent)
  • Q3:文件系统如何保证崩溃一致性?

    • 答:通过日志(Journaling)记录操作步骤,崩溃后按日志恢复