操作系统第四章:文件管理系统
文件基本概念
向操作系统提供的几个基本功能:
- 创建文件
- 删除文件
- 打开文件
- 读文件
- 写文件
- 关闭文件

文件的结构
结构包含逻辑结构和物理结构(存储地址),分为无结构文件和有结构文件,类比mangoDB和MySQL
有结构文件根据各条记录占用的存储空间是否相等,分为定长记录和可变长记录
有结构文件的逻辑结构
顺序文件
可以是定长或可变长,各个记录在物理上可以是顺序存储或者链式存储。
题目中所说的顺序文件值得是物理上采用顺序存储的文件
索引文件

索引顺序文件

文件目录
文件控制块(FCB)

目录结构
单极目录结构:整个系统中只建立一张目录表,每个文件占一个目录项。
两级目录结构:分为主文件目录和用户文件目录
多级/树形目录结构

无环图目录结构:在树形目录结构的基础上,增加一些指向同一节点的有向边,使整个目录成为一个有向无环图。

索引结点

存放在外存中的索引结点称为”磁盘索引结点”,当索引结点放入内存后称为”内存索引结点”。
文件分配方式(物理结构)
连续分配
连续分配方式要求每个文件在磁盘上占有一组连续的块。
优点:支持顺序访问和直接访问(即随机访问);连续分配的文件在顺序访问时速度最快
缺点:不方便文件拓展;存储空间利用率低,会产生磁盘碎片

链式分配
考试题目中遇到未指明隐式/显式的”链接分配”,默认指的是隐式链接的链接分配
隐式链接
除文件的最后一个盘块之外,每个盘块中都存有指向下一个盘块的指针。文件目录包括文件第一块的指针和最后一块的指针。
优点:很方便文件拓展,不会有碎片问题,外存利用率高。
缺点:只支持顺序访问,不支持随机访问,查找效率低,指向下一个盘块的指针也需要耗费少量的存储空间。

显式链接
把用于链接文件各物理块的指针显式地存放在一张表中,即文件分配表(FAT,FileAllocationTable)。一个磁盘只会建立一张文件分配表。开机时文件分配表放入内存,并常驻内存。
优点:很方便文件拓展,不会有碎片问题,外存利用率高,并且支持随机访问。相比于隐式链接来说,地址转换时不需要访问磁盘,因此文件的访问效率更高。
缺点:文件分配表的需要占用一定的存储空间。

索引分配

链式索引

多层索引

混合索引

文件存储空间管理
空闲块管理与分配
空闲表法

空闲链表法

位示图法


成组链接法

文件基本操作
创建文件:
- 在外存中给文件分配所需的内存空间;
- 在目录中创建该文件对应的目录项。
删除文件:
- 从目录中找到文件名对应的目录项;
- 回收该文件占用的磁盘块;
- 从目录表中删除文件对应的目录项。
打开文件:
从目录中找到文件名对应的目录项,检查该用户是否有指定的操作权限;
将目录项复制到内存中的打开文件表中;
在内存中进行一定操作并保存后,变会将内存中的文件复制到外存中

关闭文件
- 删除进程的打开文件表里的内容
- 回收文件资源
- 系统打开文件表的打开计数器减一,若count=0,则删除对应表项
读文件
- 打开文件
- 根据读写指针读入用户指定大小的数据放到指定的内存区域
写文件
- 打开文件
- 读入内存
- 写入数据
- 将内存文件数据写出外存
文件共享
基于索引结点的共享方式(硬链接)
索引结点:将文件目录中除了文件名以外的其他信息都放到索引结点当中

基于符号链的共享方式

文件保护
口令保护
为文件设置一个口令,用户请求访问该文件时必须提供口令
优点:保存口令的空间开销不多,验证口令的时间开销也很小。.
缺点:正确的”口令”存放在系统内部,不够安全。
加密保护
使用某个密码对文件进行加密,在访问文件时需要使用对应的密码来对文件解密
优点:保密性强,不需要在系统中存储”密码”
缺点:编码/译码,或者说加密/解密要花费一定时间。
访问控制
在文件的FCB中增加一个访问控制列表(ACL),该表中记录了各个用户可以对该文件执行哪些操作
文件系统层次结构
