1. 文件系统概念
1.1 文件定义
文件是计算机信息存取的一种重要组织形式。文件由若干信息项有序构成。这些信息项可以是字节,也可以是结构化数据。
在HxD中打开一个test.txt文件,如下图所示。我们可以看到,文件其实就是一个一个的字节有序构成。
- 文件由若干信息项有序构成
- 用户通过读写指针来存取文件的信息项
- 文件具有文件名,用户通过文件名存取文件
1.2 文件的逻辑结构
记录式文件:信息项是记录,结构化数据
- 学生花名册文件:包行若干个学生记录
- 每套学生记录:姓名,学号,成绩等
- 文件中需要保存记录长度和数量的说明信息
- 浪费存储空间
流式文件:
- 信息项是字节,文件长度就是字节的数量
- 优点
- 文件无需额外的说明信息或控制信息
- 节省存储空间
现代操作系统中的文件都是流式文件,由应用程序解释和处理文件。例如用记事本和HxD打开同一个文件,显示是不一样的。
1.3 文件的存取方法
顺序存取
- 按文件信息项排列顺序依次读取
- 文件打开时,读写指针指向第一个信息项
- 每存取1个信息项,读写指针自动加1,指向下一个信息项
随机存取
- 存取时指定存取的位置
- 对流式文件或记录为定长的记录式文件容易确定存取位置,但对不定长的记录式定位比较麻烦
- 从第一条记录开始查询,直到找到要存取的记录为止
- 建立索引,索引可作为文件的一部分也可单独建立索引文件
2. 文件物理结构
文件物理结构是指文件在存储设备上的存储方式。合理利用存储空间可以缩短I/O存取时间。
类型:
- 连续文件
- 索引结构
- 串联文件
2.1 连续文件
特点:
- 文件建立时给出文件最大长度,并登记文件的起始位置。
优点:
- 简单
- 支持顺序存储和随机存储
- 顺序存取速度快,所需磁盘寻道次数和寻道时间最少
缺点:
- 文件不易动态增长
- 预留空间:浪费
- 重新分配和移动
- 不利于文件的插入和删除
- 外部碎片问题
2.2 索引文件
概念:
- 文件存放在不连续的存储块中
- 建立索引表记录文件逻辑块和物理存储块的对应管理
- 索引表单单独放在存储块中
2.3 串联文件
概念:
- 文件放在不连续的存储块中
- 每个存储块有一个指针指向下一个存储块
- 文件目录:指明文件名和第一个存储块的块号
优点:
- 适用于顺序存取。随机存取较为困难
- 提高了磁盘空间利用率,不存在外部碎片问题
- 有利于文件动态扩充、插入和删除
缺点:
- 存取速度慢,不适于随机存取
- 可靠性问题:若next指针出错,则文件访问失败
- next指针占用一定的空间
串联文件的应用:FAT文件系统。
3. FAT文件系统
- 扇区
- 磁盘上最小可寻址单元(512字节)
- 簇(cluster)= 存储块
- 设备的最小存取单元,固定数量的扇区
簇的例子
- 360KB磁盘:簇 = 2个扇区(1024字节)
- 10MB磁盘:簇 = 8个扇区(4096字节)
- 2GB磁盘:簇 = 64个扇区(32KB)
FAT16文件系统
- 每簇最大64扇区:磁盘分区最大为2G
4. 文件存储和目录
4.1 存储空间管理
功能:记录磁盘使用情况,管理和分配、回收存储空间
记录存储块的方法:
- 空闲文件目录
- 空闲块链
- 位示图
空闲文件目录
- 空闲文件
- 把连续空闲区看成一个特殊文件,有多个连续空闲块组成
- 空闲文件目录
- 所有空闲文件代表存储设备全部空闲空间
- 为康县文件建立的专门目录:空间文件目录
- 每个表项对应一个空闲文件,包括第一个空闲块号,空闲块个数等信息