操作系统的文件管理
文件的逻辑结构
- 逻辑结构的文件类型
- 有结构文件
- 文本文件
- 文档
- 媒体文件
- 无结构文件
- 二进制文件
- 链接库
- 有结构文件细节
- 文件内容由定长记录和可变长记录组成
- 定长记录存储文件格式、文件描述等结构化数据项
- 可变长记录存储文件具体内容
- 例如:PNG文件
- 无结构文件细节
- 也称为流式文件
- 文件内容长度以字节为单位
- 例如:exe文件、dll文件、so文件
- 有结构文件
- 顺序文件
- 顺序文件是指按顺序存放在存储介质中的文件
- 磁带的存储特性使得磁带文件只能存储顺序文件
- 顺序文件是所有逻辑文件当中存储效率最高的
- 索引文件
- 可变长文件不适合使用顺序文件格式存储
- 索引文件是为了解决可变长文件存储而发明的一种文件格式
- 索引文件需要配合索引表完成存储的操作
辅存的存储空间分配
-
辅存的分配方式
- 连续分配
- 优点:顺序读取文件内容非常容易,速度很快
- 缺点:对存储要求高,要求满足容量的连续存储空间
- 图示
- 链接分配:链接分配可以将文件存储在离散的盘块中、需要额外的存储空间存储文件的盘块链接顺序。
- 隐式链接
- 隐式分配的下一个链接指向存储在当前盘块内
- 隐式分配适合顺序访问,随机访问效率很低
- 可靠性差,任何一个链接出问题都会影响整个文件
- 图示:假设已分配的盘块为
2, 9, 7, 18, 16
- 显式连接:FAT(file allocation table)文件系统
- 不支持高效的直接存储(FAT记录项多)
- 检索时FAT表占用较大的存储空间(需要将整个FAT加载到内存)
- 图示
- 隐式链接
- 索引分配
- 把文件的所有盘块集中存储(索引)
- 读取某个文件时,将文件索引读取进内存即可
- 优势
- 每个文件拥有一个索引块,记录所有盘块信息
- 索引分配方式支持直接访问盘块
- 文件较大时,索引分配方式具有明显的优势
- 图示:
- 连续分配
-
存储空间管理
- 空闲表
- 空闲盘区的分配与内存分配类似
- 首次适应算法、循环适应算法等
- 回收过程也与内存回收类似
- 图示
- 空闲链表
- 空闲链表是把所有空闲盘区组成一个空闲链表
- 每个链表节点存储空闲盘块喝空闲的数目
- 位示图
- 位示图维护成本很低,只需要维护一个表就可以了
- 位示图可以非常容易找到空闲盘块
- 位示图使用0/1比特位,占用空间很小
- 图示
- 空闲表
目录管理
- 目录树概念图示