文件系统基础
在用户进行的输入、输出中,以文件为基本单位
自底向上的结构:数据项 => 记录 => 文件
文件控制块FBC:基本信息、存取控制信息、使用信息
文件目录是FBC的集合,文件目录项即为FBC
一个文件目录也可以是一个文件,称为目录文件
索引结点:磁盘索引结点(一个文件有唯一一个)、内存索引结点
一般只有读文件才需要将文件调入内存,文件的打开不会将文件数据直接读入内存,只是将文件的属性(包括文件在外存的物理位置)复制到内存打开文件表的一个表目
打开文件表:使用的是索引,因此不必存储文件名(UNIX称其索引为文件描述符,Windows称为文件句柄)
文件保护通过口令保护、加密保护、访问控制等方式实现
加密保护机制安全性高、灵活性低、不由系统实现;访问控制机制安全性低、灵活性好、由系统实现
文件的逻辑结构是从用户观点出发看到的文件的组织形式,文件的物理结构是从实现观点出发看到的文件在外存上的存储组织形式
-
文件的逻辑结构
- 无结构文件(流式文件),以字节为单位
- 有结构文件(记录式文件)
- 顺序文件
通常是定长(也可以是不定长),可以顺序存储或链表存储
串结构(必须从头开始顺序查找),顺序结构(按关键字排列,可以折半查找) - 索引文件
一条记录一个索引表项 - 索引顺序文件
一组记录一个索引表项
对于N条记录的顺序文件,只需要查找 2 \sqrt{2} 2次 - 直接文件或散列文件
- 顺序文件
-
文件的物理结构
- 连续分配
要求每个文件在磁盘上占有一组连续的块
支持顺序访问和直接访问
实现简单,存取速度快
文件长度不宜动态增加,会产生外部碎片,只适合长度固定的文件 - 链接分配
采用离散分配的方式,不会产生外部碎片
不适合直接存取的外存分配- 隐式链接
链接指针对用户是透明的
只适合顺序访问,稳定性差
按簇分配可以改善,但会产生内部碎片 - 显式链接
文件分配表FAT,磁盘中仅设置一张,系统启动时就会被读入内存,查找是在内存进行的,不需要访问磁盘 - 索引分配
适合随机访问且易于文件拓展
支持直接访问,没有外部碎片
链接方案、多层索引、混合索引
- 隐式链接
- 连续分配
拓展
UNIX操作系统中,所有设备都被视为特殊文件
提高文件访问速度的方法:1、提前读;2、为文件分配连续的簇;3、延迟写;4、采用磁盘高速缓存
创建文件数量 = 索引结点数量