【OS笔记36】:文件存储空间管理(一)- 空闲区表法

文章目录

    • [1. 空闲区表的数据结构](#1. 空闲区表的数据结构)
    • [2. 分配算法 (迁移自内存管理)](#2. 分配算法 (迁移自内存管理))
      • [(a) 最先适应算法 (First Fit)](#(a) 最先适应算法 (First Fit))
      • [(b) 最佳适应算法 (Best Fit)](#(b) 最佳适应算法 (Best Fit))
      • [(c ) 最差适应算法 (Worst Fit)](#(c ) 最差适应算法 (Worst Fit))
    • [3. 空闲块的分配与回收流程](#3. 空闲块的分配与回收流程)
    • [4. 内存管理与外存管理的异同](#4. 内存管理与外存管理的异同)

核心思想 :空闲区表法(又称空闲文件目录)与内存管理中的"动态分区分配"极为相似。它将磁盘上的空闲物理块组织成一个表,记录每一组连续空闲块的信息。

1. 空闲区表的数据结构

系统为所有的空闲区建立一张表,每一项对应磁盘上的一个连续空闲区域。

  • 登记单位 :以空闲块为单位进行登记。
  • 记录内容 :空闲区域的起始块号块数
  • 排序规则 :为了提高搜索效率,表中的记录可以:
    • 块号大小排列(方便回收时合并)。
    • 空闲块数量排列(方便分配)。

2. 分配算法 (迁移自内存管理)

当文件申请空间时,系统参照内存管理中"可变分区管理"的算法,从空闲区表中选择一个合适的区域。

(a) 最先适应算法 (First Fit)

  • 排序方式 :空闲块按起始地址(块号)递增的顺序排列。
  • 分配逻辑 :从表头开始查找,找到第一个能满足要求(块数足够)的空闲区即进行分配。

(b) 最佳适应算法 (Best Fit)

  • 排序方式 :空闲区按块数递增的顺序排列。
  • 分配逻辑 :找到第一个能满足要求的空闲区。这种分配后剩下的碎块最小。

(c ) 最差适应算法 (Worst Fit)

  • 排序方式 :空闲区按块数递减的顺序排列。
  • 分配逻辑 :直接看第一项(最大的空闲区)。如果第一项都不能满足,则分配失败。其优点是剩下的碎块依然较大,可以继续利用。

3. 空闲块的分配与回收流程

分配操作

  1. 根据选定的算法(如 FF, BF)从表中选出一个空闲区。
  2. 若分配后有剩余:修改该表项,更新起始块号和剩余块数,将其作为新的空闲区登记。
  3. 若正好分配完(无剩余):直接从空闲区表中删除该记录项。

回收操作

  1. 用户删除文件时,系统回收其占用的物理块。
  2. 核心步骤:合并相邻区
    • 查看回收区的物理块号是否与表中已有的空闲区相邻(前相邻或后相邻)。
    • 若相邻:则合并成一个更大的连续空闲区,更新表项。
    • 若不相邻:在表中增加一个新的记录项。

4. 内存管理与外存管理的异同

学习空闲区表法时,一个关键的区别需要明确:

思考:为什么对内存管理记录"首地址和长度",而对外存管理记录"块号和块数"?

解析:

  1. 访问机制不同
    • 内存 :CPU访问内存是直接根据逻辑地址 通过地址映射机构转换为物理地址。内存是按字节或字编址的,因此记录"首地址"最直观。
  2. 物理结构不同
    • 外存(硬盘) :CPU无法直接访问硬盘,必须通过I/O指令。硬盘的物理结构由磁道、柱面、磁头组成。
    • 块 (Block):为了方便管理,操作系统将磁盘抽象为大小相同的"块"。磁盘读写的最小单位是块,因此记录"块号"和"块数"最符合磁盘的物理特性。

小结

  • 适用场景 :空闲区表法主要适用于连续分配方式的文件系统。
  • 优点:结构简单,分配连续空间时效率高。
  • 缺点:随着系统运行时间增加,会产生大量的磁盘碎片(外部碎片),且当磁盘空间极大时,空闲区表本身会变得很大,检索效率下降。

后续内容:

空闲区表法是管理方式的一种。后续会学习 "空闲块链接法""位示图法"。位示图法在现代操作系统(如Linux, Windows)中应用广泛,也是常见的考核点。

相关推荐
wdfk_prog2 小时前
[Linux]学习笔记系列 -- [drivers][input]input
linux·笔记·学习
ouliten2 小时前
cuda编程笔记(36)-- 应用Tensor Core加速矩阵乘法
笔记·cuda
孞㐑¥3 小时前
算法——BFS
开发语言·c++·经验分享·笔记·算法
mango_mangojuice4 小时前
Linux学习笔记(make/Makefile)1.23
java·linux·前端·笔记·学习
工程师老罗4 小时前
YOLOv1 核心知识点笔记
笔记·yolo
半壶清水6 小时前
[软考网规考点笔记]-软件开发、项目管理与知识产权核心知识与真题解析
网络·笔记·压力测试
tq10866 小时前
先探索,后设计
笔记
hnult6 小时前
2026 在线培训考试系统选型指南:核心功能拆解与选型逻辑
人工智能·笔记·课程设计
AI视觉网奇6 小时前
ue 角色驱动衣服 绑定衣服
笔记·学习·ue5
三水不滴7 小时前
计网ping原理
经验分享·笔记·计算机网络