从用户角度看,文件系统的主要目的是:实现对文件的按名存取
按文件的逻辑结构将文件分为两大类:记录式文件、流式文件
按物理结构划分,文件主要有三类:顺序文件、链接文件、索引文件
操作系统实现按名存取的关键在于:解决文件名与文件存储地址的转换
组织文件数据
存放文件数据
检索使用文件
文件控制块——FCB
为了能对一个文件进行正确的存取,必须为文件设置用于描述和控制文件的数据结构,称之为“文件控制块”(FCB)
- 文件与文件控制块一一对应
- 记录文件名及其存放地址、文件的说明和控制信息。(是谁?在哪里?什么权?)
- 文件管理程序借助于文件控制块中的信息对文件施以各种操作。
把文件控制块的有序集合称为文件目录,即一个文件控制块就是一个目录项。通常一个文件目录也被看作是一个文件,称为目录文件
目录管理
1、基本信息记录(FCB,目录项)
2、方便检索、管理(目录操作)
目录管理的要求:
- 实现“按名存取”;(最基本功能)
- 提高对目录的检索速度;
- 文件共享;
- 允许文件重名。
FCB内容:基本信息类、存取控制信息类、使用信息类
文件物理位置:
- 对于连续文件:文件起始块号;
- 对于链接文件:指向第一个物理块的指针;
- 对于索引文件:索引表地址。
文件FCB组成的“目录”文件存放于磁盘;需要时,要从磁盘将目录内容调入内存进行检索和使用
索引结点
减少移动磁头的开销
目录结构
关系到文件系统的存取速度,也关系到文件的共享性和安全性
-
单级目录
-
两级目录
- 提高了检索目录的速度。
- 在不同的目录中可重名。
- 不同用户还可以使用相同/不同的文件名来访问系统中的同一个共享文件。 -
多级目录
- 层次结构更清晰、提供更灵活的权限管理等
- 但目录级别太多时也会增加路径检索层次,增加磁盘访问时间
目录查询技术:
用户要访问一个已存文件:
- 目录数据调入内存;
- 按名检索:系统利用提供的文件名对目录(根据目录层次,需要做的检索次数也 不同)进行查询
- 找该文件控制块
- 读FCB或对应索引结点;
- 从文件物理地址换算出文件在磁盘上的物理位置;
- 最后通过磁盘驱动程序,将所需文件读入内存。
线性检索法:
单级目录中
- 用户提供文件名,顺序查找文件目录。
树型目录中
- 用户提供路径名,如/user/ast/mbox
- 对多级目录进行逐层查找
Hash 方法
文件共享(节约存储空间)与保护
方式:索引结点、符号链