4.1.1 初识文件管理
文件的属性
文件的内部数据怎样组织起来?
操作系统应该向上提供哪些功能?
操作系统应该向上提供哪些功能
从上往下看,文件应如何存放在外存?
其他需要由操作系统实现的文件管理功能
总结
4.1.2 文件的逻辑结构
无结构文件
有结构文件
有结构文件的逻辑结构
顺序文件
索引文件
索引顺序文件
多级索引顺序文件
总结
4.1.3 文件目录
文件控制块
目录本身就是一种有结构文件,由一条条记录组成。每条记录对应一个在该目录下的文件
- 当我们双击"照片"后,操作系统会在这个目录表中找到关键字"照片"对应的目录项(也就是记录),然后从外存中将"照片"目录的信息读入内存,于是,"照片"目录的内容就可以显示出来了。
目录文件中的一条条记录就是一个"文件控制块(FCB)"
- FCB实现了文件名和文件之间的映射。使用户(用户程序)可以实现"按名存取"
- FCB的有序集合称为"文件目录",一个FCB就是一个文件目录项。
- FCB中包含了文件的基本信息(文件名,物理地址,逻辑结构,物理结构等),存取控制信息(是否可读/写,禁止访问的用户名单等),使用信息(如文件的建立时间,修改时间等)
- 最重要,最基本的还是文件名,文件存放的物理地址
目录结构
单级目录结构
早期操作系统并不支持多级目录,整个系统中只建立一张目录表,每个文件占一个目录项
- 单级目录实现了"按名存取"但是不允许文件重名
- 在创建一个文件时,需要先检查目录表中有没有重名文件,确定不重名后才能允许建立文件,并将新文件对应的目录项插入目录表中
- 显然,单级目录结构不适用于多用户操作系统
两级目录结构
多级目录结构(树形目录结构)
无环图目录结构
索引结点(FCB的改进)
索引结点包含除了文件名之外的所有文件描述信息
- 可以大大提升文件检索速度(减少了访问盘块的数量)
总结
4.1.4 文件的物理结构
文件块、磁盘块
文件分配方式--连续分配
顺序访问:先要访问块0,才能找到块1
直接访问(随机访问):可以直接访问块1,不需要先访问其他块
优点
缺点 1
缺点2
总结
文件分配方式--链接分配
链接分配--隐式链接
链接分配--显式链接
总结
文件分配方式--索引分配
链接方案
多层索引
混合索引
总结
总结
4.1.5 逻辑结构vs物理结构
4.1.6 文件存储空间管理(对空闲磁盘块的管理)
存储空间的划分与初始化
存储空间管理--空闲表法
存储空间管理--空闲链表法
空闲盘块链
空闲盘区链
存储空间管理--位示图法
存储空间管理--成组链接法
总结
4.1.7 文件的基本操作
创建文件
删除文件
打开文件
关闭文件
读文件
写文件
总结
4.1.8 文件共享
基于索引结点的共享方式(硬链接)
基于符号链的共享方式(软链接)
总结
用软链接访问文件通过硬链接访问要慢
4.1.9 文件保护
口令保护
加密保护
异或:两个二进制位,相同为零,不同为1
加密和解密使用一样的密码,最后得到的文件和原始文件相同
用户记住自己的密码即可,保密性强
访问控制
总结
4.2.1 文件系统的层次结构
文件信息缓冲区:如索引结构,就需要把索引表调入到这个区
4.2.2 文件系统的全局结构(布局)
4.2.3 虚拟文件系统
问题1:不同文件系统实现同一个功能的函数定义不同
问题2:不同文件系统表示文件的数据结构各不相同