操作系统:12、操作系统的文件管理
- 文件的逻辑结构
- 辅存的存储空间分配
- 辅存的分配方式
- 辅存的存储空间管理
- 目录管理
文件的逻辑结构
逻辑结构的文件类型:
逻辑结构的文件主要分为有结构文件和无结构文件。
有结构文件:
文件内容由定长记录和可变长记录组成;
定长记录存储文件格式、文件描述等结构化数据项;
可边长记录存储文件具体内容;
具体有结构文件例子,如下图的png图片:
无结构文件:
无结构文件也称为流式文件;
文件内容长度以字节为单位;
比如常见的exe文件、dll文件、so文件
顺序文件:
按顺序存放在存储介质中的文件;
磁带的存储特性使得磁带只能按照存储顺序文件;
顺序文件是所有逻辑文件中存储效率最高的;
索引文件:
可变长文件不适合使用顺序文件格式存储;
索引文件是为了解决可变长文件存储而发明的一种文件格式;
索引文件需要配合索引表完成存储操作;
辅存的存储空间分配
辅存的分配方式
连续分配:
要求文件存储在连续的扇区来存储文件;
顺序读取文件内容非常容易,速度很快;
对存储要求高,要求满足容量的连续存储空间;
链接分配
将文件存储在离散的盘块中;
需要额外的存储空间来存储文件盘块链接顺序;
根据额外存储空间的不同,把链接分配分成隐式链接和显式链接。
隐式链接:
显式链接:
索引分配:
使用一个额外盘块来存储这个文件所有的盘块;
把文件的所有盘块集中存储(索引);
读取某个文件时,将文件索引读取进内存即可;
索引分配每一个文件都拥有一个索引块,记录所有盘块信息;
索引分配方式支持直接访问盘块;
文件较大时,索引分配具有明显优势,因此主流文件系统都是使用索引分配来进行磁盘分配;
辅存的存储空间管理
空闲表
空闲链表
空闲链表法把所有空闲盘区组成一个空闲链表;
每个链表节点存储空闲盘块和空闲的数目;(使用方式与内存存储管理时,使用空闲链表是一样的。)
位示图
位示图维护成本很低;
可以非常容易找到空闲盘块;
使用0/1比特位,占用空间很小;
实际辅存分配方式也是用位示图来管理;
目录管理
目录树
因为有了目录树使得每一个文件或者目录都有唯一路径;