第4章 文件管理

王道学习

考纲内容

(一)文件

文件的基本概念:文件元数据和索引节点(inode)

文件的操作:建立,删除,打开,关闭,读,写

文件的保护;文件的逻辑结构;文件的物理结构

(二)目录

目录的基本概念;树形目录;目录的操作;硬链接和软链接

(三)文件系统

文件系统的全局结构(layout):文件系统在外存中的结构,文件系统在内存中的结构

外存空闲空间管理办法;虚拟文件系统;文件系统挂载(mounting)

复习提示

本章内容较为具体,要注意对概念的理解。重点掌握文件系统的结构及其实现、文件分配和空闲空间管理等。要掌握文件系统的文件控制块、物理分配方法、索引结构、树形目录结构、文件共享原理、文件系统的布局、虚拟文件系统原理等。这些都是统考真题容易考査的内容。

4.1 文件的基本概念

文件(File)是以硬盘为载体的存储在计算机上的信息集合,文件可以是文本文档、图片、程序等。在系统运行时,计算机以进程为基本单位进行资源的调度和分配;而用户进行的输入、输出中,则以文件为基本的单位 。大多数应用程序的输入都是通过文件来实现的,其输出也都保存在文件中,以便信息的长期存储及将来的访问。当用户将文件用于程序的输入、输出时,还希望可以访问、修改和保存文件等,实现对文件的维护管理,这就需要系统提供一个文件管理系统,操作系统中的文件系统(File System)就是用于实现用户的这些管理要求的。

要清晰地理解文件的概念,就要了解文件究竟由哪些东西组成。













4.2 文件的逻辑结构

无结构文件

有结构文件



顺序文件



索引文件

索引顺序文件




直接文件或散列文件(Hash File)



4.3 文件的物理结构(文件分配方式)

前面说过,文件实际上是一种抽象数据类型,我们要研究它的逻辑结构、物理结构,以及关于它的一系列操作。文件的物理结构就是研究文件的实现,即文件数据在物理存储设备上是如何分布和组织的。同一个问题有两个方面的回答:一个是文件的分配方式,讲的是对磁盘非空闲块的管理;二是文件存储空间管理,讲的是对磁盘空闲块的管理(详见4.3节)。

文件分配对应于文件的物理结构,是指如何为文件分配磁盘块。常用的文分配方法有三种:连续分配、链接分配和索引分配。注意与文件的逻辑结构区分,从历年的经验来看,这是很多读者容易搞混的地方(读者复习完数据结构后,可以类比线性表、顺序表和链表之间的关系)。

类似于内存分页,磁盘中德存储单元也被分为一个个的块,称为磁盘块,其大小通常与内存的页面大小相同。内存与磁盘之间的数据交换(磁盘I/O)都是以块为单位进行的。



连续分配






链接分配









索引分配















4.4 目录的基本概念

FCB的有序集合称为文件目录,一个FCB就是一个文件目录项。与文件管理系统和文件集合相关联的是文件目录,它包括有关文件的属性、位置和所有权等。

首先来看目录管理的基本要求:从用户的角度看,目录在用户(应用程序)所需要的文件名和文件之间提供一种映射,所以目录管理要实现"按名存取";目录存取的效率直接影响到系统的性能,所以要提高对目录的检索速度;在多用户系统中,应允许多个用户共享一个文件,因此目录还需要提供用于控制访问文件的信息。此外,应允许不同用户对不同文件采用相同的文件,以便于用户按自己的习惯给文件命名,目录管理通过树形结构来解决和实现。

4.5 文件控制块和索引节点







4.6 目录结构

单级目录结构

两级目录结构

树形目录结构

通常,每个用户都有各自的"当前目录",登陆后自动进入该用户的"当前目录"。OS提供一个专门的系统调用,供用户随时改变"当前目录"。例如,在UNIX系统中,"/etc/passwd"文件就包含有用户登录时默认的"当前目录",可用cd命令改变"当前目录"。

树形目录结构可以很方便地对文件进行分类,层次结构清晰,也能够更有效地进行文件的管理和保护。在树形目录中,不同性质、不同用户的文件,可以分贝呈现在系统目录树的不同层次或不同树中,很容易地赋予不同的存取权限。但是,在树形目录中查找一个文件,需要按路径名逐级访问中间节点,增加了磁盘访问次数,这无疑会影响查询速度。目前,大多数OS如UNIX、Linux和Windows系统都采用了树形文件目录。


无环图目录结构

4.无环图目录结构

树形目录结构能便于实现文件分类,但不便于实现文件共享,为此在树形目录结构的基础上增加一些指向同一节点的有向变,使整个目录成为一个有向无环图,如图4.15所示。这种结构允许目录共享子目录或文件,同一个文件或子目录可以出现在两个或多个目录中。

当某用户要求删除一个共享节点时,若系统只是简单地将它删除,则当另一个共享用户需要访问时,会因无法找到这个文件而发生错误。为此,可为每个共享节点设置一个共享计数器,每当图中增加对该节点的共享链时,计数器加1;每当某用户提出删除该节点时,计数器减1。仅当共享计数器为0时,才真正删除该节点,否则仅删除请求用户的共享链。

无环图目录结构方便地实现了文件的共享,但使得系统的管理变得更加负责。

4.7 文件存储空间管理


存储空间的划分与初始化

空闲表法


空闲链表法



位示图法


成组链接法















4.8 文件基本操作









4.9 文件共享





4.10 文件保护







4.11 文件系统的层次结构


逻辑文件系统与文件信息缓冲区:可参照文件逻辑的结构的索引文件, 采用此方法需要先将索引表调入内存

4.12 文件系统布局





i结点区存放的是索引结点,i结点区是一个数组,存放的是索引结点

4.13 虚拟文件系统&文件系统挂载(安装)







相关推荐
qq_4378964315 小时前
动态内存分配算法对比:最先适应、最优适应、最坏适应与邻近适应
操作系统
别说我什么都不会16 小时前
鸿蒙轻内核M核源码分析系列十一 (2)信号量Semaphore
操作系统·harmonyos
别说我什么都不会1 天前
鸿蒙轻内核M核源码分析系列十 软件定时器Swtmr
操作系统·harmonyos
别说我什么都不会2 天前
鸿蒙轻内核M核源码分析系列九 互斥锁Mutex
操作系统·harmonyos
别说我什么都不会2 天前
鸿蒙轻内核M核源码分析系列七 动态内存Dynamic Memory
操作系统·harmonyos
别说我什么都不会3 天前
鸿蒙轻内核M核源码分析系列六 任务及任务调度(3)任务调度模块
操作系统·harmonyos
徐徐同学3 天前
【操作系统】操作系统概述
操作系统·计算机系统
守望时空334 天前
Linux内核升级指南
linux·操作系统
塞尔维亚大汉4 天前
OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【用户态内存调测】
操作系统·harmonyos
别说我什么都不会4 天前
鸿蒙轻内核M核源码分析系列五 时间管理
操作系统·harmonyos