第七章 文件管理
文件和文件系统
Q1:什么是文件?
文件是存贮在某种介质(磁盘、磁带)上的并具有文件名的一组有序信息的集合。
文件名是由字符和数字组成
Q2:文件管理的目的?
(1)方面用户访问和控制
(2)并发文件访问和控制
(3)统一的用户接口:不同设备提供同样的接口,方便用户操作和编程
(4)多种文件访问权限:多用户系统中的不同用户对同一文件会有不同的访问权限
(5)优化性能
(6)差错恢复
Q3:如何从磁盘上找到文件
文件控制块FCB----通过FCB可以从磁盘上找到对应的文件
系统为每个文件设置用户描述和控制文件的数据结构,至少包括文件名和存放文件的盘物理
地址。
文件目录就是文件控制块FCB的有序集合。
FCB包括:1.基本信息----文件名、文件的物理地址
2.存取控制信息----文件的存取权限
3.使用信息类----文件建立日期、最后修改日期、最后访问日期,当前使用信息
Q4:如何在磁盘上存储文件
1.对外存分块(物理块)
2.对文件分页(逻辑快)
3.外存分配方法:连续分配、链接分配、索引分配,相应的物理文件:顺序文件、链接文件
、索引文件
1.文件、记录和数据项
数据项
- 基本数据项
原子数据
数据组织中可以命名的最小逻辑数据单位
描述对象某种属性的字符集
- 组合数据项
由若干基本数据项组成
记录
一组相关数据项的集合
描述一个对象在某方面的属性
对象
文件
- 有结构文件
- 无结构文件
- 一个对象集
- 属性
文件类型
文件长度
文件的物理位置
文件的建立时间
2.文件类型和文件系统模型
1.类型
按用途分类
按文件中数据的形式分类
存取控制属性
2.文件系统模型
对象及其属性
- 文件
- 目录
- 磁盘存储空间
对对象操纵和管理的软件集合
- 对文件存储空间的管理
- 对文件目录的管理
- 用于将文件的逻辑地址转换为物理地址的机制
- 对文件的读和写的管理
- 文件的共享与保护
文件系统的接口
- 命令接口
- 程序接口
3.文件操作
- 创建文件
- 删除文件
- 读文件
- 写文件
- 截断文件
- 设置文件的读/写位置
文件的逻辑结构
文件逻辑结构的类型
1.有结构文件
顺序文件
文件中的记录一个接一个地顺序排列
记录是可以定长或变长的
结构
串结构
记录之间的顺序与关键字无关
顺序结构
文件中的所有记录按关键字顺序排列
索引文件
变长记录文件只能顺序查找
索引表
索引顺序文件
索引顺序文件将顺序文件中的所有记录分为若干个组
在索引表中为每组中的第一个记录建立一个索引项
直接文件或散列文件
给定记录的键值或通过Hash函数转换的键值直接决定记录的物理地址
这种映射结构不同于顺序文件或索引文件,没有顺序的特性
2. 无结构文件
无结构文件将数据按顺序组织成记录并积累保存,它是有序相关信息项的集合,以字节(Byte)为单位
只能以穷举搜索的方式
管理简单
外存分配方式
1.连续分配
优点
- 顺序访问容易
- 顺序访问速度快
缺点
- 连续的存储空间
- 事先知道文件的长度
2.链接分配
隐式链接
一个串联文件结构是按顺序由串联的块组成
文件的信息存储在若干个块之中
最后一个块为链接字,指出后续地址
链首指针存放在文件目录之中
显式链接
是指把用于链接文件各物理块的指针,显示地存放在内存的一张连接表中。该表在整个磁盘就一张。此表就是文件分配表
3.索引分配
- 单级索引
- 多级索引
- 混合索引
索引结点中可设置10个直接地址项
文件较小的时候可以直接从索引结点中读出该文件的全部盘块号
对于较大的文件,将直接地址项变为间接地址
多次间接地址(开始增加地址项来提供间接地址)
目录管理
1.文件控制块和索引结点
2.目录结构
- 单级目录结构
整个文件只建立一张目录表,每个文件占一个表目,单级目录结构简单,能实现
目录的基本功能--按名存取,但存在查找速度慢,不允许重名,不便于实现文件共享
- 两级目录结构
- 多级目录结构
提高检索目录的速度,解决了重名问题,只要不在同一目录下就可以只用同名
- 目录结构
- 路径名
- 当前目录
- 增加和删除目录
目录文件不为空时,不可删除
或删除目录文件中所有其他文件
3.目录查询技术
为了实现按名存取,系统首先利用用户提供的用户名,对文件目录进行查找,找出该文件的
FCB,然后根据FCB所记录的文件物理地址,并根据文件物理组织方式文件的盘块号,进而换算出
文件在磁盘上的物理位置(柱面号、磁头号、扇面区)
总的就是:文件名--文件的FCB--物理地址--文件盘块号--文件在磁盘上的物理位置
线性检索法
Hash方法
文件存储空间的管理
1.空闲表法
存储空间的分配与回收
和动态分配类似
原理:连续分配方法,为外存上所有空闲区建立一张空闲表,每个空闲区对应一个空闲
表项,包括序号、该空闲区的第一盘块号,盘块数等。缺点是需要专门盘区来存放空闲表,少采用
2.空闲链表法
原理:空闲盘区链接在一个队列里。
优点是不需专用块存放管理信息,缺点是分配回收多块空闲块时需增加盘I/O操作
空闲盘块链
空闲盘区链
3.位示图法
位示图
盘块的分配
令值变成1
盘块的回收
令值变成0
原理:利用二进制的一位来表示磁盘中的一个块的使用情况,0表示空闲,1表示已分配
由所有盘块所对应的位形成了一个集合称为位示图,用磁盘块存放,称为位图块。
优点是位示图描述能力强,位示图较小,可以复制到内存,使查找方便又快速。
4.成组链接法
空闲盘块的组织
以栈的形式体现
空闲盘块的分配与回收
执行空闲盘块数加1操作
执行空闲盘块数减1操作
文件共享与文件保护
1.利用符号链实现文件共享
2.磁盘容错技术
第一级容错技术SFT-Ⅰ
双份目录和双份文件分配表
备份一份文件目录和文件分配表
热修复重定向和写后读校验
第二级容错技术SFT-Ⅱ
磁盘镜像
磁盘双工
3.数据一致性控制
- 事务
定义
记录
恢复
- 检查点
- 并发控制
- 重复数据的数据一致性问题