8.1文件系统的概念 第八章文件系统 文件系统的引入 作系统|大件 软件资源 程序和数据以文件的形式保留 一教件资源:各种系统程序,以及标准子程 在外存中。本章主要讨论文件的组 序库和应用程序,数据 织结构,共享与保护以及文件系统 软件资源都是一组相关联的信息(程序和 空间管理。 数据)的集合 引入文件系统的原因 文件系统的功能 文件及文件系统 实现按名存取 文件的物理结构 >文件 文件信息的检索 数据项 文件的共享和保护 记录:一组相关数据项的集合 文件:文件是一个具有符号名字的 一组相关联元素的有序集合 文件的类型 9>文件系统 一按文件的性质和用途分为:系统文件, os中负责管理和 件,用户文件 件机构。负责文件 入,读写 按组织形式分为:普通文件,目录文件, 对文件的按名存取 特殊文件 一按文件的保护方式:只读文件,只写文 >使用文件系统的优点 件,可执行文件。 使用的方便性 数据的安全性 >接口的统一性
1 第八章 文件系统 程序和数据以文件的形式保留 在外存中。本章主要讨论文件的组 织结构,共享与保护以及文件系统 空间管理。 操 作 系 统 | 文 件 系 统 2 CUIT 徐虹 8.1 文件系统的概念 ¾文件系统的引入 ¾软件资源 ¾软件资源:各种系统程序,以及标准子程 序库和应用程序,数据。 ¾ 软件资源都是一组相关联的信息(程序和 数据)的集合。 ¾引入文件系统的原因 操 作 系 统 | 文 件 系 统 3 CUIT 徐虹 ¾文件系统的功能 ¾实现按名存取 ¾文件的物理结构 ¾文件信息的检索 ¾文件的共享和保护 操 作 系 统 | 文 件 系 统 4 CUIT 徐虹 ¾ 文件及文件系统 ¾文件 ¾数据项 ¾记录:一组相关数据项的集合。 ¾文件:文件是一个具有符号名字的 一组相关联元素的有序集合。 操 作 系 统 | 文 件 系 统 5 CUIT 徐虹 ¾文件的类型 ¾按文件的性质和用途分为:系统文件, 库文件,用户文件 ¾按组织形式分为:普通文件,目录文件, 特殊文件 ¾按文件的保护方式:只读文件,只写文 件,可执行文件。 操 作 系 统 | 文 件 系 统 6 CUIT 徐虹 ¾文件系统 ¾OS中负责管理和存取文件信息的软 件机构。负责文件的建立,撤消,存 入,读写,修改和复制,还负责完成 对文件的按名存取和进行存取控制。 ¾使用文件系统的优点 ¾ 使用的方便性 ¾ 数据的安全性 ¾ 接口的统一性
>文件系统的模型 对象及其属性说明:文件、目录和磁 盘存储空间。 Sequential Inxiexedl 软件集合:I/O控制层、基本文件系 统、基本I/0管理程序和逻辑文件系 Loglcal VO 统 文件系统的接口:命令接口和程序接 task FIle system DIsk Devlce Drlver Tape Devlce DrIver >文件操作和使用 -对记录的操作 >对文件的操作 设和修改用户对文件的存取权限 建立,改变和删除目录 文件共享和设访问路径 文件的创建,打开,读写,关闭和删除和 设量读/写位量 Elements of File Management >逻辑结构的类型 8.2文件的逻辑结构 >选取文件的逻辑结构应巡循的原则 文件的逻辑结构(文件的组织) 一修改时少变动 从用户角度看到的文件的全貌,也 便于查找 就是它的记录结构 占据最小的存储空间 文件的物理结构(文件的存储结 便于用户操 构):文件在外存上的存储组织形 流式文件 12它是有序字符的集合,文件长皮等于该文 含的字符数
2 操 作 系 统 | 文 件 系 统 7 CUIT 徐虹 ¾文件系统的模型 ¾对象及其属性说明:文件、目录和磁 盘存储空间。 ¾软件集合:I/O控制层、基本文件系 统、基本I/O管理程序和逻辑文件系 统。 ¾文件系统的接口:命令接口和程序接 口。 操 作 系 统 | 文 件 系 统 8 CUIT 徐虹 操 作 系 统 | 文 件 系 统 9 CUIT 徐虹 操 作 系 统 | 文 件 系 统 10 CUIT 徐虹 ¾ 文件操作和使用 ¾对记录的操作 ¾对文件的操作 ¾设置和修改用户对文件的存取权限 ¾建立,改变和删除目录 ¾文件共享和设置访问路径 ¾文件的创建,打开,读写,关闭和删除和 设置读/写位置 操 作 系 统 | 文 件 系 统 11 CUIT 徐虹 8.2 文件的逻辑结构 ¾ 文件的逻辑结构(文件的组织): 从用户角度看到的文件的全貌,也 就是它的记录结构。 ¾文件的物理结构(文件的存储结 构):文件在外存上的存储组织形 式。 操 作 系 统 | 文 件 系 统 12 CUIT 徐虹 ¾ 逻辑结构的类型 ¾选取文件的逻辑结构应遵循的原则: ¾修改时少变动 ¾便于查找 ¾占据最小的存储空间 ¾便于用户操作 ¾流式文件 ¾它是有序字符的集合,文件长度等于该文 件所包含的字符数
顺序文件 连续结构:披记录生成的先后顺序连续排 列的逻辑结构。 顺序结构:把文件中的健按规定的顺序排 列起来 Yatate stot nok Common File Organization 把记录按健和记录名排列成 R2 0 Fimed st or fids io lloyd nor Segmental exer hieu on t'y nel b)seg和 ntial File 1:键K在记录Rj中 0:不在 Common File Organizations 键Ki为队首,以包合健K的记录为队 把含有相同键的记录指针全部指向该键,适 列元亲来构成一个记录队列 合于给定键后的记录搜索 KI K2-->RL>Rm->Rn- F 含K1的记录指针 Rj Km>RX—>Ry>Rz>
3 操 作 系 统 | 文 件 系 统 13 CUIT 徐虹 操 作 系 统 | 文 件 系 统 14 CUIT 徐虹 ¾顺序文件 ¾连续结构:按记录生成的先后顺序连续排 列的逻辑结构。 ¾顺序结构:把文件中的键按规定的顺序排 列起来。 操 作 系 统 | 文 件 系 统 15 CUIT 徐虹 操 作 系 统 | 文 件 系 统 16 CUIT 徐虹 ¾索引文件:把记录按键和记录名排列成 行列式结构 R1 R2 …… Rn K1 1 0 …… 1 K2 0 1 …… 0 …… Km 1 1 …… 1 1:键Ki在记录Rj 中 0:不在 操 作 系 统 | 文 件 系 统 17 CUIT 徐虹 以键Ki 为队首,以包含键Ki 的记录为队 列元素来构成一个记录队列。 K1——>Ri——>Rj——>Rk——>…… K2——>Rl——>Rm——>Rn——>…… …… Km——>Rx——>Ry——>Rz——>…… 操 作 系 统 | 文 件 系 统 18 CUIT 徐虹 把含有相同键的记录指针全部指向该键,适 合于给定键后的记录搜索。 K1 Ri 含K1的记录指针 Rj Rk ……
索引顺序结构 >存取方法 记录的读写 MLu自le 作系统1大件 Read (F, M, rptr, L), rptr=rptr+Ly 不定长 Read(F, T, rptr, 1), rptr=rptr+1, Read(F, M, rptr, T) rptr=rptr+T, ptr=wptr+T+1t wptr, T+1) c)Indexed Bernthal File 按键存取法 直接存取法(随机存取法) 允许用户随意存取文件中的任记录 编号或地址。首先搜索到记录的逻辑位量 根据记录的編号或地址 再将其转换到相应的物理地址后进行存取。 线性搜案法 定长记录文件 散列法(hash法) 一变长记录文件采用索引表的组织 分搜索法 8.3文件目录管理 文件控制块和索引结点 一个文件的说明信息称为该文件的目录 文件的组成:文件说明(FCB)和文件 用户向系统提供符号名,系统根据文件 体。FCB即为文件的目录 的符号名找到它的物理地址 F文件控制块( le Control block 功能:实现文件的按名存取,实现符号 基本信息 名与具体物理地址之间的转换,文件的 存取控制信息 共享和保护。 使用信息
4 操 作 系 统 | 文 件 系 统 19 CUIT 徐虹 ¾索引顺序结构 操 作 系 统 | 文 件 系 统 20 CUIT 徐虹 ¾存取方法 ¾顺序存取法 ¾记录的读写 ¾定长: Read(F,M,rptr,L); rptr=rptr+L; Write(F,M,wptr,L);wptr=wptr+L; ¾不定长: Read(F,T,rptr,1);rptr=rptr+1; Read(F,M,rptr,T);rptr=rptr+T; Write(F,M,wptr,T+1); ptr=wptr+T+1; 操 作 系 统 | 文 件 系 统 21 CUIT 徐虹 ¾直接存取法(随机存取法) ¾允许用户随意存取文件中的任一记录, 根据记录的编号或地址。 ¾流式文件 ¾定长记录文件: ¾变长记录文件 采用索引表的组织 操 作 系 统 | 文 件 系 统 22 CUIT 徐虹 ¾按键存取法 ¾文件的存取是根据文件内容而不是记录的 编号或地址。首先搜索到记录的逻辑位置, 再将其转换到相应的物理地址后进行存取。 ¾线性搜索法 ¾散列法(hash法) ¾二分搜索法 操 作 系 统 | 文 件 系 统 23 CUIT 徐虹 8.3 文件目录管理 ¾ 一个文件的说明信息称为该文件的目录。 用户向系统提供符号名,系统根据文件 的符号名找到它的物理地址。 ¾功能:实现文件的按名存取,实现符号 名与具体物理地址之间的转换,文件的 共享和保护。 操 作 系 统 | 文 件 系 统 24 CUIT 徐虹 ¾ 文件控制块和索引结点 ¾文件的组成:文件说明(FCB)和文件 体。FCB即为文件的目录。 ¾文件控制块(File Control Block) ¾基本信息 ¾存取控制信息 ¾使用信息
索引结点 磁盘索引结点:每个文件有唯一的磁盘索 引结点 文件目录的缺陷 文件主标识 索引结点的引入 目录:文件名和指向工结点的指针 文件存取权限 i结点:文件描述信息 文件连接计数 一内存素引结点 单级目录 紫引结点编号 目录内容 状态 >文件访问过程 访问计数 文件所在设备的逻辑设备号 些>创建和删除文件 链接指针:空闲链表、散列队列指针 存在的问题 重名问题: 文件数量过多时,查找效率低 两级目录 树型目录 >结构:系统由主目录(MFD)和用户 目录(UFD)构成 多级树型目录结构 系>文件路径名 文件的查找 工作目录 文件的建立 文件的删除 增加和删除目录 特点
5 操 作 系 统 | 文 件 系 统 25 CUIT 徐虹 ¾索引结点 ¾文件目录的缺陷 ¾索引结点的引入 ¾目录:文件名和指向I结点的指针 ¾i 结点:文件描述信息。 操 作 系 统 | 文 件 系 统 26 CUIT 徐虹 ¾磁盘索引结点:每个文件有唯一的磁盘索 引结点。 ¾文件主标识 ¾ 文件类型 ¾文件存取权限 ¾ 文件物理地址 ¾ 文件长度 ¾ 文件连接计数 ¾ 文件存取时间 操 作 系 统 | 文 件 系 统 27 CUIT 徐虹 ¾内存索引结点 ¾索引结点编号 ¾状态 ¾访问计数 ¾文件所在设备的逻辑设备号 ¾链接指针:空闲链表、散列队列指针 操 作 系 统 | 文 件 系 统 28 CUIT 徐虹 ¾单级目录 ¾目录内容 ¾文件访问过程 ¾创建和删除文件 ¾存在的问题 ¾重名问题: ¾别名问题: ¾文件数量过多时,查找效率低。 操 作 系 统 | 文 件 系 统 29 CUIT 徐虹 ¾两级目录 ¾结构:系统由主目录(MFD)和用户 目录(UFD)构成。 ¾文件的查找 ¾文件的建立 ¾文件的删除: 操 作 系 统 | 文 件 系 统 30 CUIT 徐虹 ¾树型目录 ¾多级树型目录结构 ¾文件路径名 ¾工作目录 ¾增加和删除目录 ¾特点
作系统|大件 目录的查询技术 8.4 文件共享 过程 根据文件名找到其FCB引结点 n>早期共享方法 查找FCB成食引结点中的文件物理地址〔盘块 系>绕道法 启动磁盘驱动程序,将文件读入内存 链接法 一个目录中的表目直接指向另一个目录 表目 顺序查找法 FcB中必须增加“速访属性”和“用户 二分找法 Hash法 基本文件目录表 文件的查找过程 把文件目录的内容分为两部分,符号 读出ID=2的BFD表目,确定MFD的物理 文件目录(SFD)和基本文件目录 位量 BFD) 读出MFD,并查寻与路径名匹配的ID 系统通常预先规定赋予基本文件目录 一根据ID值,读出BFD的相应表目,确定 (0),空白文件目录(1),主目 sFD的物理地址 录(2)(符号文件目录)固定不变 读出sFD,查找与文件名匹配的ID 的唯一标识符 根据此ID,读出BFD的相应表目,确定该 文件的物理地址,对于SFD是利用符号名 来查找匹配表目的,即按健存取
6 操 作 系 统 | 文 件 系 统 31 CUIT 徐虹 操 作 系 统 | 文 件 系 统 32 CUIT 徐虹 操 作 系 统 | 文 件 系 统 33 CUIT 徐虹 ¾ 目录的查询技术 ¾过程 ¾根据文件名找到其FCB或索引结点; ¾查找FCB或索引结点中的文件物理地址(盘块 号),换算为物理位置; ¾启动磁盘驱动程序,将文件读入内存。 ¾检索方法 ¾ 顺序查找法: ¾ 二分查找法: ¾ Hash 法: 操 作 系 统 | 文 件 系 统 34 CUIT 徐虹 8.4 文件共享 ¾ 早期共享方法 ¾绕道法 ¾链接法 ¾ 一个目录中的表目直接指向另一个目录 表目。 ¾ 在FCB 中必须增加“连访属性”和“用户 计数”项。 操 作 系 统 | 文 件 系 统 35 CUIT 徐虹 ¾基本文件目录表 ¾把文件目录的内容分为两部分,符号 文件目录(SFD)和基本文件目录 (BFD)。 ¾系统通常预先规定赋予基本文件目录 (0),空白文件目录(1),主目 录(2)(符号文件目录)固定不变 的唯一标识符。 操 作 系 统 | 文 件 系 统 36 CUIT 徐虹 ¾文件的查找过程: ¾读出ID=2的BFD表目,确定MFD 的物理 位置; ¾读出MFD,并查寻与路径名匹配的ID; ¾根据ID 值,读出BFD的相应表目,确定 SFD的物理地址; ¾读出SFD,查找与文件名匹配的ID; ¾根据此ID,读出BFD的相应表目,确定该 文件的物理地址,对于SFD是利用符号名 来查找匹配表目的,即按键存取
共享某个文件,只需给出被共享的 >基于索引结点的共享方法 文件名,系统自动在SDF的有关文 件处生成与共享文件相同的内部标 树型目录中文件共享的问题 识符。 m>用索引结点实现文件共享 指向相同的索引结点 使接计数器 count >文件共享的过程 利用符号链实现文件共享 8.5文件存取控制 实现 一B共享c的文件F,由系统创建LINK类型 >文件保护 断文件,它包含被F的路径名(符号 文件保护机构的功能 链),并写入B的用户目录中 存取验证模块的基本任务 只有文件主才拥有指向紫引结点的指针。 一审定用户的存取权限 >问题 比较用户存取权限和本次存取要求 访速度慢;链接文件也要建立家引结 点;同一文件有不同的文件名 比较本次存取要求和被访问文件的存取保 护信息 访问(存取控制)矩阵 FIleI Flle 2 File 3 Fled Acount 1 Account 实现方法 用一个二维矩阵来实现存取控制,一维是 所有的用户或进程,另一维列出全部文件 每个元章表示某一用户对某一文件的存取 控制权限 x bit fa)Access matrI Example of Access Control Structure
7 操 作 系 统 | 文 件 系 统 37 CUIT 徐虹 ¾共享某个文件,只需给出被共享的 文件名,系统自动在SDF的有关文 件处生成与共享文件相同的内部标 识符。 操 作 系 统 | 文 件 系 统 38 CUIT 徐虹 ¾基于索引结点的共享方法 ¾树型目录中文件共享的问题 ¾用索引结点实现文件共享 ¾指向相同的索引结点 ¾链接计数器count ¾文件共享的过程 操 作 系 统 | 文 件 系 统 39 CUIT 徐虹 ¾ 利用符号链实现文件共享 ¾实现 ¾B共享C的文件F,由系统创建LINK类型 的新文件,它包含被F的路径名(符号 链),并写入B的用户目录中。 ¾只有文件主才拥有指向索引结点的指针。 ¾问题 ¾访问速度慢;链接文件也要建立索引结 点;同一文件有不同的文件名。 操 作 系 统 | 文 件 系 统 40 CUIT 徐虹 8. 5 文件存取控制 ¾ 文件保护 ¾文件保护机构的功能 ¾存取验证模块的基本任务 ¾审定用户的存取权限; ¾比较用户存取权限和本次存取要求; ¾比较本次存取要求和被访问文件的存取保 护信息。 操 作 系 统 | 文 件 系 统 41 CUIT 徐虹 ¾ 访问(存取控制)矩阵 ¾实现方法 ¾用一个二维矩阵来实现存取控制,一维是 所有的用户或进程,另一维列出全部文件。 每个元素表示某一用户对某一文件的存取 控制权限。 操 作 系 统 | 文 件 系 统 42 CUIT 徐虹
729 圍回回 存取控制表 把有存取要求的用户按某种关系或工程 项目的类别分为若干组,同时规定每组的 存取权限,得到文件的存取控制表。 作系统|大件 ib)Acess control Ibb for files of part al Example of Access Control Structure 访问权限表 圍国 以用户或用户组为单位建立存取控制表 User H 称为用户权限表。将一个用户(组)所 存取的文件名集中赵来存入一张裘中,每 个表目指明用户对相应文件的存取权限 圍回 (c) Capability lists for files of part (a) Example of Access Control Structure 分级安全管理 >目录级 系统级 只有系统核心具有写目录的权利。保护系 统目录,与用户权限无 防止用户非法进入系统:注册、登录等 用户级 文件级 用户分类 >遢过对文件属性的设置,来控制用户对文 件的访问(用户访问权、目录访问权和文 文件主、伙伴和一般用户 件属性 超级用户、系统操作员、用户和顾客 文件访闻权限:建立(C)、删除(D)、打开(0) (R)、写(W)、查询(S)、修改(M和父权(P)
8 操 作 系 统 | 文 件 系 统 43 CUIT 徐虹 ¾存取控制表 ¾把有存取要求的用户按某种关系或工程 项目的类别分为若干组,同时规定每组的 存取权限,得到文件的存取控制表。 操 作 系 统 | 文 件 系 统 44 CUIT 徐虹 操 作 系 统 | 文 件 系 统 45 CUIT 徐虹 ¾访问权限表 ¾以用户或用户组为单位建立存取控制表, 称为用户权限表。将一个用户(组)所要 存取的文件名集中起来存入一张表中,每 个表目指明用户对相应文件的存取权限。 操 作 系 统 | 文 件 系 统 46 CUIT 徐虹 操 作 系 统 | 文 件 系 统 47 CUIT 徐虹 ¾分级安全管理 ¾系统级 ¾防止用户非法进入系统:注册、登录等。 ¾用户级 ¾用户分类 ¾文件主、伙伴和一般用户。 ¾超级用户、系统操作员、用户和顾客。 ¾文件访问权限:建立(C)、删除(D)、打开(O)、 读(R)、写(W)、查询(S)、修改(M)和父权(P)。 操 作 系 统 | 文 件 系 统 48 CUIT 徐虹 ¾目录级 ¾只有系统核心具有写目录的权利。保护系 统目录,与用户权限无关。 ¾文件级 ¾通过对文件属性的设置,来控制用户对文 件的访问(用户访问权、目录访问权和文 件属性)
8.6多层次文件系统 >用户接口 对系统调用命令进行语法检查 改变为内部调用格式,以便调用sFs 把文件系统的各功能用一系列软件 级来加以描述。层次结构中的每一 补充用户未给出而系统可提供的信息,存入 级只依赖于它下面的级,且在其下 来>使系统初始化 面的基础上提供更灵活更方便的机 F>符号文件系统(SFS) 把用户提供的文件名转换为系统内部的唯一 基本文件系统(BFs) 物理文件系统(PFS) 根据ID查找所需文件的文件说明。包括存取 控制表,文件逻辑结构,物理结构及第一 /→把存取记录所在的相对块号转换成物 到用户缓冲区 存取控制验证 >实现文件保护,确定访问的合法性 分配策略模块(ASM) 逻辑文件系统(LFs) 负责记住每个存储设 条解自 块情 逻辑结构信息,還过逻辑字节 负责进行分配回收 把对逻辑记录的请求转换成对 文件相对块号的请求 设备策略模块(DSM) 小结 把物理块号转换成相应设备所要求的 地址格式。 文件系统的概念 >I/O调度和控制系统 文件的逻辑结构和存取方法 实现所有I/o请求的排队,调度,启动 文件目录 I/o操作的控制,完成把物理块记录从 文件所在的设备传输到系统缓冲区 文件的共享和文件的保护
9 操 作 系 统 | 文 件 系 统 49 CUIT 徐虹 8. 6 多层次文件系统 ¾ 把文件系统的各功能用一系列软件 级来加以描述。层次结构中的每一 级只依赖于它下面的级,且在其下 面的基础上提供更灵活更方便的机 能。 操 作 系 统 | 文 件 系 统 50 CUIT 徐虹 ¾ 用户接口 ¾对系统调用命令进行语法检查; ¾改变为内部调用格式,以便调用SFS; ¾补充用户未给出而系统可提供的信息,存入 工作单元; ¾使系统初始化。 ¾ 符号文件系统(SFS ) ¾把用户提供的文件名转换为系统内部的唯一 标识符。 操 作 系 统 | 文 件 系 统 51 CUIT 徐虹 ¾基本文件系统(BFS ) ¾根据ID查找所需文件的文件说明。包括存取 控制表,文件逻辑结构,物理结构及第一个 物理块地址。 ¾存取控制验证(ACV ) ¾实现文件保护,确定访问的合法性 ¾逻辑文件系统 (LFS ) ¾根据文件的逻辑结构信息,通过逻辑字节串 首址的计算,把对逻辑记录的请求转换成对 文件相对块号的请求。 操 作 系 统 | 文 件 系 统 52 CUIT 徐虹 ¾物理文件系统 ( PFS ) ¾把存取记录所在的相对块号转换成物 理块地址;把系统缓冲区中的记录搬 到用户缓冲区;与设备策略和分配策 略模块通讯。 ¾分配策略模块 (ASM ) ¾负责记住每个存储设备上的空白块情 况。管理空白文件目录(FFD),并 负责进行分配回收。 操 作 系 统 | 文 件 系 统 53 CUIT 徐虹 ¾ 设备策略模块(DSM) ¾把物理块号转换成相应设备所要求的 地址格式。 ¾I/O 调度和控制系统 ¾实现所有I/O请求的排队,调度,启动, I/O操作的控制,完成把物理块记录从 文件所在的设备传输到系统缓冲区。 操 作 系 统 | 文 件 系 统 54 CUIT 徐虹 小结 ¾文件系统的概念 ¾文件的逻辑结构和存取方法 ¾文件目录 ¾文件的共享和文件的保护