PURSUING EXCELLENCE / TOWARD SUCCESS WUCHANG UNIVERSITY OF TECHNOLOGY 武昌理工学院 操作系统原理 第四章 文件管理 我们毕业啦 其实是答辩的标题地方 主讲人 温 静 院系 信息工程学院
主要内容 1 2 3 4 5 6 文件与文件系统 文件的逻辑结构 外存分配方式 文件存储空间的管理 CONTANTS 文件目录管理 文件共享与保护
文件的概念 字段 记录 文件 字段是数据的基本单位,又可称为数据项。 字段可以通过它的长度和数据类型来描述。 记录是一组相关字段的集合,用于描述一个对象在 某方面的属性。 记录又分定长记录和不定长记录。 文件 文件是具有符号名的相同记录的集合。
文件的属性 文件的属性 文件基本属性 文件类型属性 文件保护属性 文件管理属性 文件控制属性
文件的类型 按文件的性质和用途分类 系统文件 库文件 用户文件 按文件中数据的组织形式分类 源文件 目标文件 可执行文件
文件的类型 按文件的存取控制属性分类 只读文件 读写文件 执行文件 按文件的信息流向分类 输入文件 输出文件 输入输出文件 按文件的组织形式和处理方式分类 普通文件 目录文件 特殊文件
文件的操作 针对整体文件的操作 打开文件 关闭文件 建立文件 删除文件 针对文件中的内容的操作 读文件 写文件 设置文件的读/写位置 其它文件操作 有关对文件属性进行的操作 有关文件目录的相关操作 实现文件共享对文件系统进行操作的系统调用
文件系统的概念 文件系统的概念 基本I/O控制层 基本文件系统层 基本I/O管理程序层 逻辑文件系统层
文件系统的功能 文件系统的功能 对文件进行“按名存取” 文件存储空间的分配和回收 文件和目录的操作管理 实现文件的共享、保护和保密 提供合适的文件存取方法
文件系统的逻辑结构 文件的逻辑结构:从用户角度所观察到的文件组织形式 文件的存储结构:从系统角度所观察到的文件组织形式 文件的逻辑结构通常采用两种形式: 一种是无结构的文件——流式文件 另一种是有结构的文件——记录式文件
流式文件 流式文件:用户对文件中的信息不再划分可独立的单位, 整个文件是由依次的一串信息组成。 优点: 一是在空间利用上比较节省; 二是有许多应用不要求文件内再区分记录,如用户作业的源程 序就是一个顺序字符流,强制分割源程序文件为若干记录只会 带来操作复杂、开销加大等缺点, 采用流式文件也是一种最方便的存储形式。
记录式文件 记录式文件:用户对文件中的信息按逻辑上独立的含义 再划分信息单位。 每个单位称为一个逻辑记录,简称记录。 记录式文件中有两种常用的记录组织和使用方法: 记录式顺序文件 记录式索引顺序文件
记录的成组与分解 成组操作先在系统输出缓冲区内进行,凑满一 块后才将缓冲区内的信息写到存储介质上。 反之,当存储介质上的一个物理块读进系统输 入缓冲区后,把逻辑记录从块中分离出来的操 作叫做记录的分解。
记录的成组 例如:用户要求把某文件长度分别为l1,l2,l3的三个逻辑记录L1,L2,L3依次写到磁盘上,而磁盘上的分块长度大于这三个逻辑记录的总长时,则可先在主存缓冲区中把这三个逻辑记录合成一组,然后启动磁盘把三个逻辑记录写到一个磁盘块中。 用户 操作系统 请求把L1写到磁盘上 把L1送到缓冲区K单元开始的区域,长度为l1 请求把L2写到磁盘上 把L2送到缓冲区(K+l1)单元开始的区域,长度为l2 请求把L3写到磁盘上 把L3送到缓冲区(K+l1+l2)单元开始的区域,长度为l3,并启动磁盘把缓冲区中的信息写到磁盘上
记录的成组 L2 L1 L3 磁盘 主存 用户区 缓冲区 K 记录成组过程示例
记录的分解 例如,在磁带的一个存储块中存放着用户的10个逻辑记录,每个逻辑记录长度相等。现在用户要求顺序处理这10个逻辑记录,但他的工作区的长度只能存放一个逻辑记录。所以,每次只能把一个逻辑记录传送到工作区。当用户对该逻辑记录处理后,可再次请求系统把下一个逻辑记录传送到工作区,直至10个逻辑记录处理结束。
记录的分解 磁带 记录1 … 记录3 记录2 主存 用户工作区 缓冲区 第一次请求 记录分解过程示例 第一次请求 第二次请求
文件的组织和存取 文件组织是指记录式文件中记录的逻辑形式,即文件的 逻辑结构; 而文件的存取是指用户对文件的访问方式。 在设计文件系统时,选择何种逻辑结构(组织形式)都 应遵循以下原则 : 检索效率高 易于修改 应使文件信息占据最小的存储空间 便于用户进行操作
顺序文件 对顺序文件的读/写操作 定长记录文件: Rptr:=Rptr+L; Wptr:=Wptr+L. 变长记录文件: Wptr:= (LR+1)
顺序文件 (b) 变长记录文件 (a) 定长记录文件 Rptr L0 R0 R0 L L R1 L R0 R0 R0 L0 2L L0+1 L0 R0 R0 L L R1 L R0 R0 R0 L0 2L L0+1 R2 L L1 3L R3 L R1 L1 4L L0+L1+2 . . Rptr Wptr (Lk+1) iL Li Ri L (i+1)L Ri Li . (Lk+1) . (b) 变长记录文件 (a) 定长记录文件
顺序文件 优点: 最佳应用场合是在对大量记录进行批量存取; 最适合于建立在顺序存取设备——磁带机上; 缺点: 不适合查找或修改单个记录;
索引文件 可为变长记录文件建立一张索引表,对主文件的每个 记录,在索引表中设有一个相应表项,用于记录该记 录的长度L及指向该记录的指针。 优点: 大多用于对信息的及时性要求比较严格; 很少会对所有数据进行处理的应用程序中; 缺点: 除主文件外,还须额外分配存储空间用来存放索引表。
索引顺序文件 索引顺序文件是顺序文件和索引文件相结合的产物。 关键字 索引指针 And Boy Chain ... 其他属性 Amy Any Bat But 索引表 主文件
直接文件和哈希文件 1.直接文件 对于直接文件,则可根据给定的记录键值,直接获得指 定记录的物理地址。 2.哈希(Hash)文件 利用哈希函数,可将记录键值转换为相应记录的地 址。A=H(K)
外存分配方式 文件系统根据存储设备类型、存取要求、记录 使用频率和存储空间容量等因素提供若干种文 件存储结构,把逻辑文件以不同方式保存到物 理存储设备的介质上去。
连续分配 将文件中逻辑上连续的信息存放到存储介质的相邻物 理块上形成顺序结构,叫做顺序文件,又称连续文件。 磁盘块号 文件A 3 100 文件目录 r0 r1 r2 101 102
连续分配 优点: 缺点: (1)管理简单; (2)顺序存取速度快。 (1)修改记录困难; (2)要求连续存储空间; (3)事先必须知道文件的长度。
链接分配 把逻辑文件中的各个记录任意存放到一些磁盘块中; 再用指针把这些磁盘块按逻辑记录的顺序链接起来; 链接结构的文件称为链接文件,又称为串联文件。 磁盘块号 文件A 100 文件目录 r0 r1 r2 150 ∧ 57
链接分配 优点: 存储空间利用率高。 不必事先知道文件的最大长度,可以根据文件的当前 需求为其分配必需的盘块。因此适用于动态增加记录。 文件中记录的增加和删除非常方便。 缺点: 只适合于顺序存取,不便于直接存取。 在每个物理块中都要设置一个指针,因此破坏了物理 信息的完整性。且为了存放指针也需要一定的存储空 间。
索引分配 1. 单级索引分配 索引结构是实现非连续存储的另一种方法, 适用于数据记录保存在磁盘上的文件。 系统为每个文件建立索引表. 利用索引表来搜索记录的文件称为索引文件。
索引分配 2. 多级索引分配 当文件太大,应为索引块再建立一级索引,称为 第一级索引,即系统再分配一个索引块。作为 第一级索引的索引块,形成两级索引分配方式。
索引分配 3. 混合索引分配 在UNIX系统中,为了同时解决高速存取小文件和管理 大文件的矛盾,将直接寻址、一级索引、二级索引和 三级索引结合起来,形成了混合索引方式。 系统要访问混合索引结构的文件,可按以下步骤进行。 将进程给出的字节偏移量转换为文件的逻辑块号和块内位移量。 把逻辑块号转换为对应的磁盘块号。
索引分配 优点: 具备链接分配的优点; 可以随机存取。 缺点: 增加了索引表的空间开销和查找时间; 在存取文件时首先查找索引表,降低了文件访问的速度。
文件存储空间的管理 为了实现存储空间的分配,系统首先必须能记 住存储空间的使用情况。 系统应为分配存储空间而设置相应的数据结构; 其次,系统应提供对存储空间进行分配和回收 的手段。
位示图 磁盘空间通常使用固定大小的块,可方便地用位示 图管理。 位示图是利用二进制的一位来表示磁盘中一个盘块 的使用情况。 当其值为“0”时,表示对应的盘块空闲;为“1” 时,表示已分配。 磁盘上的所有盘块都有一个二进制位与之对应,这 样,由所有盘块所对应的位构成一个集合,称为位 示图。
位示图 盘块的分配 顺序扫描位示图,从中找出一个或一组为“0” 的二进制(“0”表示空闲时)。 将所找到的一个或一组二进制位,转换成与之 相应的盘块号,假定找到的其值为“0”的二进 制位。位于位示图的第i行,则其相应的盘块号, 应按下式计算: b=n×i+j+1 (b代表物理块号;i代表行号;j 代表列号;n代表每行的位数) 修改位示图:令map[i,j]=1
位示图 盘块的回收 将回收盘块的盘块号转换为位示图中的行号 和列号,转换公式为: i=(b-1)DIV n j=(b-1)MOD n 2. 修改位示图:令map[i,j]=0。
位示图 优点: 从位示图中很容易找到一个或一组相邻接的空 闲盘块。 位示图占用空间少,可将它保存在内存中,节 省了许多磁盘的启动操作。 缺点: 对大型系统不适合。
空闲表法 空闲表: 连续分配方式,系统为外存上的所有空闲区建立一 张空闲表,其中包括表项序号,该空闲区的第一个盘 块号,该去的空闲盘块数。 存储空间的分配与回收: 首次适应算法,循环首次适应算法,最佳适应算法。 空闲表法适用于连续分配文件。
空闲链表法 空闲盘块链:以盘块为单位。 空闲盘区链:将所有空闲盘区拉成一条链,每 个盘区可包含若干个盘块。 优点: 简单、无需专用块存储管理信息。 缺点: 工作效率低,在链上增加或移动空闲块或空闲 区时需要做多次I/O操作。
文件目录管理 在现代计算机系统的外存磁盘上通常存储着 大量的文件,为了能方便地对这些文件进行 读取,就必须对文件进行组织和管理,通常 系统是通过文件目录对文件进行组织和管理 的。 目录管理负责查找文件描述符,进而找到需 要访问的文件,并进行访问权限检查等工作。
文件目录的内容 用于描述和控制文件的数据结构称为“文件控制块 (File Control Block,FCB)”。 每个文件都有唯一的文件控制块; 文件控制块的集合就组成了一个文件目录,即一个文件 控制块就是一个文件目录项。 文件目录也被看作是一个文件,称为目录文件。
文件控制块 FCB一般应包含以下文件属性信息: (1)文件标识和控制信息 (2)文件逻辑结构信息 (3)文件物理结构信息 (4)文件使用信息 (5)文件管理信息
文件控制块 利用FCB能实现文件的“按名存取”; 创建文件时,系统就要为其建立一个FCB,作为 其目录项放到文件目录中; 缺点: 由于FCB所包含的内容很多,导致文件目录太 大,检索速度慢。
索引结点 原因: 为了能够减少检索文件所需访问的磁盘物理块数,引 入索引结点的概念。 方法: 将FCB中的文件名和其他管理信息分开,其他信息单独 组成一个数据结构,称为索引结点inode,此索引结点 的位置由inode号标识。 优点: 这样构成的文件目录所占的盘块数大大减少了,缩短 了目录项的平均查找时间,加快了目录的检索速度,而 且也便于实现文件共享。
文件目录结构 目录结构的组织,关系到文件系统的存取速度, 也关系到文件的共享性和安全性。 因此,组织好文件的目录,是设计好文件系统 的重要环节。 目前常用的目录结构形式有单级目录、两级目 录和多级目录。
单级目录结构 单级目录是最简单的目录结构。 在整个文件系统中只建立一张目录表,每个文 件占一个目录项,目录项中包含文件名、文件 扩展名、文件长度、文件类型、文件物理地址 以及其它文件属性。 缺点: 当不同的用户定义了相同的文件名时,会引起 文件的混淆。
两级目录结构 解决不同用户间文件重名的一种办法是采用两级目录结 构或多级目录结构。 两级目录结构是为每个用户设置一张目录表,称为用户 文件目录UFD(User File Directory)。用户文件目 录为本用户的每一个文件设置一个目录项。 在系统中再建立一个主文件目录MFD(Master File Directory),在主文件目录中,每个用户目录文件都 占有一个目录项,其目录项中包括用户名和指向该用户 目录文件的指针。
两级目录结构 优点: 即使不同的用户在为各自的文件命名时取了 相同的名字也不会造成混乱。 可以使不同用户共享文件,只要在各用户的 UFD中使某个目录项指向共享文件存放的物理 位置即可。 缺点: 用户之间的隔离不便于用户合作。
多级目录结构 对于大型文件系统,通常采用三级或三级以上 的目录结构,以提高对目录的检索速度和文件 系统的性能。 实际上,所有文件系统都支持多级层次结构, 根目录是唯一的,每一级目录可以是下一级目 录的说明,也可以是文件的说明,从而形成树 型目录结构。
多级目录结构 优点: 层次结构清楚,易于管理和保护; 解决了重名问题。 缺点: 查找过程中要多次访问磁盘,从而会影响计算机的处 理速度; 文件系统的结构也相对比较复杂。
目录查询技术 当用户要访问一个已存在的文件时,系统首先利用用户 提供的文件名对目录进行查询,找出该文件的文件控制 块或对应的索引结点; 然后,根据FCB或索引结点中所记录的文件物理地址 (磁盘盘块号),换算出文件在磁盘上的物理位置; 最后,再通过磁盘驱动程序,将所需文件读入内存。 目前对目录进行查询的方式有两种:线性检索法和Hash 方法。
文件共享与保护 文件共享: 是指某一个或某一部分文件可以让事先规定 的某些用户共同使用。 文件保护: 为实现文件共享,系统还必须提供文件保护 的能力,即提供保证文件安全性的措施。
文件共享 文件共享: 为不同的进程完成共同任务所必需; 节省大量的外存空间; 减少因文件复制而增加的I/O操作次数。
基于索引结点的共享方式 把文件的物理地址及其它文件属性等信息,不 再放在目录项中,而是放在索引结点中; 在文件目录中只设置文件名及指向相应索引结 点的指针。 此时,由任何用户对文件所做的修改,所引起 的相应结点内容的改变(例如,增加了新的盘 块号和文件长度等),都是其他用户可见的, 从而也就能提供给其他用户来共享。
基于索引结点的共享方式 这种基于索引结点的共享方式也称为硬链接 (hard link),它通过多个文件名链接到同 一个索引结点,可共享同一个文件。 硬链接的不足是无法跨越文件系统。
利用符号链接实现文件共享 符号链接: 只有文件名、不指向inode的链接,通过名称来引用 文件。 优点: 能用于链接计算机系统中不同文件系统中的文件; 也可用于链接目录; 还可链接计算机网络中不同机器上的文件,仅需提 供文件所在机器地址和其中文件的路径名。 缺点: 搜索文件路径的开销大; 需要额外的空间查找存储路径。
文件保护 1. 防止天灾人祸造成的破坏 2. 防止系统故障造成的破坏 3. 防止文件共享时造成的破坏 4. 防止计算机病毒的侵害 5. 防止他人窃取文件
本章小结 文件的定义、类型、操作 文件逻辑结构 顺序文件、索引文件、索引顺序文件 外存分配方式 连续分配、链接分配、索引分配 存储空间管理 文件与文件系统 文件的定义、类型、操作 文件逻辑结构 顺序文件、索引文件、索引顺序文件 外存分配方式 连续分配、链接分配、索引分配 存储空间管理 位示图、空闲表法、空闲链表法 文件目录管理 Inode、单级目录、两级目录、多级目录
PURSUING EXCELLENCE / TOWARD SUCCESS WUCHANG UNIVERSITY OF TECHNOLOGY 武昌理工学院 Thank you!