# 文件管理

# 文件系统的概念

# 定义

文件是计算机信息存储的重要组织形式,文件由若干信息项有序构成,信息项可以是字节,也可以是结构化数据。
用户通过读写指针来存取文件的信息项。
文件具有文件名,用户通过文件名存取文件。

# 文件系统

负责文件的创建、撤销、读写、存储控制等,并管理存放文件的存储设备。

# 文件物理结构

文件物理结构是指文件在存储设备(比如硬盘)上的存储方式。
强调合理利用存储空间,并缩短I/O存取时间。
类型有连续文件、索引结构、串联文件。

# 连续文件

文件按照逻辑块的顺序存放在硬盘连续的物理存储块中。
文件目录记录文件长度和第一存储块的块号。

图片名称

连续文件不易动态增长,进行预留会产生浪费,不足时需要重新分配和移动,不利于文件插入和删除。

# 索引文件

文件存放在不连续的存储块中。
建立索引表记录文件逻辑块和物理存储块对应关系。


图片名称

# 串联文件

文件存放在不连续的存储块中,每个存储块有一个指针(next),指向文件下一个存储块
文件目录:指明文件名和第一个存储块的块号


图片名称

# FAT文件系统(文件分配表)

# FAT介绍

串联文件的应用——FAT(File Allocation Table)文件系统
串联文件:存储块next域指向下一个存储块
FAT表:集中存有所有next指针


图片名称

缺点:读文件时,先读FAT表,影响使用效率。FAT要占用存储空间,存储块越多,FAT元素越多,且元素位宽越长,占用更多额外的存储空间。
若存储块有2N2^{N}块,FAT有2N2^{N}个元素,每项至少需要NN位宽度。

# 扇区和簇

扇区:磁盘上最小可寻址存储单元(512字节)

簇(cluster):存储块,设备最小的存取单元,包含固定的扇区

在360KB的磁盘上:簇=2个扇区(1024字节);
在10MB的磁盘上:簇=8个扇区(4096字节)

FAT元素数和簇的数目一样多,假如簇数=2N=2^{N}

  • FAT元素宽度至少为N位才能标识全部的簇
  • N=8位,能标识28=2562^{8}=256个簇
  • N=32位,能标识232=4G2^{32}=4G个簇

FAT16就是N=16N=16,簇扇区数=64=64,因此磁盘容量最大为

216×64×512=2GB2^{16} \times 64 \times 512 = 2GB

# FAT16文件系统

FAT表元素宽度2字节,即16bit,每簇最大64扇区:磁盘分区最大2G,FAT16格式化磁盘
ead68865ae7797bd95ea28dffa2f7232


图片名称

# 文件存储和目录

# 存储空间的管理

记录磁盘使用情况,管理、分配回收存储空间。
记录磁盘空闲块的方法

  • 空闲文件目录
  • 空闲块链
  • 位示图

# 空闲文件处理

  • 空闲文件:把连续空闲区看成一个特殊文件,由多个连续空闲块组成

# 空闲文件目录

  • 空闲文件目录:
    • 所有空闲文件代表存储设备全部空闲空间
    • 为空闲文件建立专门的目录:空闲文件目录
    • 每个表项对应一个空闲文件,包括第一个空闲块号,空闲块个数

      图片名称

# 空闲块链

把所有空闲块连接在一起,当申请者需要空闲块时,链头开始搜索所需空闲块,当回收空闲块时,把释放的空闲块逐个加载链尾。

# 位示图

从内存中划分出若干个字节,每个bit表示1个存储块空闲或占用状态


图片名称