第7章文件管理 本章主要介绍0S如何通过文件系统来管理程序、数据等信息资源,具体包括文件和文 件系统的基本概念、文件的逻辑结构和物理组织、文件存储空间的管理、目录的管理、文 件的共享和保护以及数据一致性控制等内容。 7.1基本内容 7.1.1文件和文件系统 1.文件和文件系统 (1)文件:文件是一个具有符号名的一组相关联元素的有序序列。 (②)文件系统:操作系统中负责管理和存取文件信息的软件机构称为文件管理系统,简称 文件系统 它由三部分组成 ①与文件管理有关的软件;②被管理的文件;③实施文件管理所需的数据结构 (3)文件系统的作用 ①从系统角度来看,文件系统是对文件存储器的存储空间进行组织和分配,负责文件的 存储并对存入的文件进行保护和检索的系统 ②从用户角度来看,文件系统实现了按名存取,并具有使用的方便性、数据的安全性和接 口的统一性等特性 2.文件的类型 (1)按性质和用途分类:系统文件;库文件;用户文件。 用户文件又可分为临时文件、档案文件和永久文件。 (2)按保护方式分类:只读文件;读写文件;不保护文件 (3)按信息流向分类:输入文件;输出文件;输入输出文件。 (4)UNIX系统中的文件分类:普通文件(这种文件可以是系统文件、库文件、用户文件。); 目录文件(目录文件是由文件目录组成的文件);特别文件(这类文件由I/0慢速字符设备构 成)。 3.文件系统的基本功能 (1)文件的结构及有关存取方法。 (2)文件的目录机构和有关处理。 (3)文件存储空间的管理。 (4)文件的共享和存取控制 (5)文件操作和使用 7.1.2文件的结构与存取设备 1.文件的结构 (1)文件的逻辑结构 文件的逻辑结构是呈现在用户面前的文件结构。可以分为两种 ①有结构的记录文件。它又分为两种:定长记录文件;变长记录文件。 无结构的流式文件是有序字符的集合。文件长度为文件所包含的字符总数 (2)文件的物理结构 文件的物理结构是指逻辑文件在文件存储器上的存储结构 为了有效地分配文件存储的空间,通常把它们分成若干块,并以块为单位进行分配和传 送。每个块称为物理块,而块中的信息称为物理记录。物理块长通常是固定的。允许一个逻 辑记录占用几块,也可以在一块中存放几个逻辑记录。 文件在逻辑上都可以看成是连续的,但在物理介质上存放时,却可以有多种形式。以下
第 7 章文件管理 本章主要介绍 OS 如何通过文件系统来管理程序、数据等信息资源,具体包括文件和文 件系统的基本概念、文件的逻辑结构和物理组织、文件存储空间的管理、目录的管理、文 件的共享和保护以及数据一致性控制等内容。 7.1 基本内容 7.1.1 文件和文件系统 1.文件和文件系统 (1)文件:文件是一个具有符号名的一组相关联元素的有序序列。 (2)文件系统:操作系统中负责管理和存取文件信息的软件机构称为文件管理系统,简称 文件系统。 它由三部分组成: ①与文件管理有关的软件;②被管理的文件;③实施文件管理所需的数据结构。 (3)文件系统的作用 ① 从系统角度来看,文件系统是对文件存储器的存储空间进行组织和分配,负责文件的 存储并对存入的文件进行保护和检索的系统。 ② 从用户角度来看,文件系统实现了按名存取,并具有使用的方便性、数据的安全性和接 口的统一性等特性。 2.文件的类型 (1)按性质和用途分类:系统文件;库文件;用户文件。 用户文件又可分为临时文件、档案文件和永久文件。 (2)按保护方式分类:只读文件;读写文件;不保护文件。 (3)按信息流向分类:输入文件;输出文件;输入输出文件。 (4)UNIX 系统中的文件分类:普通文件(这种文件可以是系统文件、库文件、用户文件。); 目录文件(目录文件是由文件目录组成的文件);特别文件(这类文件由 I/0 慢速字符设备构 成)。 3.文件系统的基本功能 (1)文件的结构及有关存取方法。 (2)文件的目录机构和有关处理。 (3)文件存储空间的管理。 (4)文件的共享和存取控制。 (5)文件操作和使用。 7.1.2 文件的结构与存取设备 1.文件的结构, (1)文件的逻辑结构 文件的逻辑结构是呈现在用户面前的文件结构。可以分为两种: ①有结构的记录文件。它又分为两种:定长记录文件;变长记录文件。 ②无结构的流式文件是有序字符的集合。文件长度为文件所包含的字符总数。 (2)文件的物理结构 文件的物理结构是指逻辑文件在文件存储器上的存储结构。 为了有效地分配文件存储的空间,通常把它们分成若干块,并以块为单位进行分配和传 送。每个块称为物理块,而块中的信息称为物理记录。物理块长通常是固定的。允许一个逻 辑记录占用几块,也可以在一块中存放几个逻辑记录。 文件在逻辑上都可以看成是连续的,但在物理介质上存放时,却可以有多种形式。以下
是几种基本的文件物理结构 ①连续结构:是将逻辑文件信息存放在文件存储器上相邻的物理块中。 连续结构的优点是结构简单,存取速度较快;缺点是建立文件时,要求给出文件的最大 长度,且不便于增删,一般只能在末端进行。 ②串联结构:也称为链接结构。其物理块可以不连续,也不必顺序排列;在每个物理块中 设置一个指针(也称链接字),它指向该文件的下一个物理块号 串联结构的优点是文件可动态增删,不必事先知道文件的最大长度p缺点是只适合顺序 存取,必须从头开始査找,査找速度低,且因每块都要设置链接字,破坏了物理信息的完整 性。 ③索引结构:要求为每个文件建立一张索引表,其中每个表目指出文件逻辑记录所在的 物理块号。索引表是由系统自动建立的。 索引结构的优点是有串联结构的所有优点,克服了它的缺点,可随机存取;缺点是增加 了索引表的空间开销,增加了一次访问盘的操作而降低了丈件访问速度 当文件很大时,文件的索引表也会很大。如果索引表的大小超过了一个物理块时,可以 将索引表本身作为一个文件,再为其建立一个”索引表”,这个”索引表"作为文件索引的索引, 从而构成了二级索引。第一级索引表的表目指向第二级索引,第二级索引表的表目指向相应 信息所在的物理块号。以此类推可再逐级建立索引,进而构成多级索引 ④Hash(散列)文件:是采用计算寻址结构,把链值通过某种计算处理,转换成相应记录的 相应地址。计算寻址就是通过Hash函数计算后求得的地址。 Hash文件的优点是不需索引,节省查找时间;缺点是需要使用Hash(散列)函数计算。 2.文件的存取方法 文件的存取方法是指读写文件存储器上的一个物理块的方法。 存取方法有三类:顺序存取法、直接存取法和按键存取法 1)顺序存取法严格按物理记录排列的顺序依次存取 (2)直接存取法允许用户随意存取文件中的任何一个物理记录,而不管上次存取了哪 个记录。 3)按键存取法实质上也是直接存取法,它不是根据记录编号或地址来存取的,而是根 据文件中各记录内容进行存取的。 文件的物理结构密切依赖于文件存储器的特性和存取方法。 如果采用直接存取法,则索引文件效率最高,连续文件效率居中,串联文件效率最低 3.文件存储设备 文件的存储设备主要有磁带、磁盘、光盘等。由于存储设备的特性可以决定文件的存 取方法,因此这里介绍以磁带为代表的顺序存储设备和以磁盘为代表的直接存储设备的特 性,以及存储设备、文件物理结构与存取方法之间的关系 (1)磁带:是一种典型的顺序存取设备,这种设备只有在前面的物理块被存取访问过 之后,才能存取后续物理块的内容。由于磁带机的启动和停止都要花费一定的时间,因此在 磁带的相邻物理块之间设计有一段间隙将它们隔开,如下所示 匚-间第1块间第块间一 磁带的存取速度与信息密度(字符数/英寸〉、磁带带速(英寸/秒)和块间间隙有关。如 果带速高,信息密度大且所需块间隙(磁头启动和停止时间〉小,则磁带存取速度高。反之, 若磁带带速低,信息密度小且所需块间隙〈磁带启动和停止时间〉大,则磁带存取速度低。 由于磁带读写时只有在第ⅰ块被存取之后,才能对第i+1块进行存取操作,因此,某个特定物 理块的存取访问与该物理块到磁头当前位置的距离有很大关系
是几种基本的文件物理结构: ①连续结构:是将逻辑文件信息存放在文件存储器上相邻的物理块中。 连续结构的优点是结构简单,存取速度较快;缺点是建立文件时,要求给出文件的最大 长度,且不便于增删,一般只能在末端进行。 ②串联结构:也称为链接结构。其物理块可以不连续,也不必顺序排列;在每个物理块中 设置一个指针(也称链接字),它指向该文件的下一个物理块号。 串联结构的优点是文件可动态增删,不必事先知道文件的最大长度 p 缺点是只适合顺序 存取,必须从头开始查找,查找速度低,且因每块都要设置链接字,破坏了物理信息的完整 性。 ③索引结构:要求为每个文件建立一张索引表,其中每个表目指出文件逻辑记录所在的 物理块号。索引表是由系统自动建立的。 索引结构的优点是有串联结构的所有优点,克服了它的缺点,可随机存取;缺点是增加 了索引表的空间开销,增加了一次访问盘的操作而降低了丈件访问速度。 当文件很大时,文件的索引表也会很大。如果索引表的大小超过了一个物理块时,可以 将索引表本身作为一个文件,再为其建立一个"索引表",这个"索引表"作为文件索引的索引, 从而构成了二级索引。第一级索引表的表目指向第二级索引,第二级索引表的表目指向相应 信息所在的物理块号。以此类推可再逐级建立索引,进而构成多级索引。 ④Hash(散列)文件:是采用计算寻址结构,把链值通过某种计算处理,转换成相应记录的 相应地址。计算寻址就是通过 Hash 函数计算后求得的地址。 Hash 文件的优点是不需索引,节省查找时间;缺点是需要使用 Hash(散列)函数计算。 2.文件的存取方法 文件的存取方法是指读写文件存储器上的一个物理块的方法。 存取方法有三类:顺序存取法、直接存取法和按键存取法。 (1)顺序存取法严格按物理记录排列的顺序依次存取。 (2)直接存取法允许用户随意存取文件中的任何一个物理记录,而不管上次存取了哪一 个记录。 (3)按键存取法实质上也是直接存取法,它不是根据记录编号或地址来存取的,而是根 据文件中各记录内容进行存取的。 文件的物理结构密切依赖于文件存储器的特性和存取方法。 如果采用直接存取法,则索引文件效率最高,连续文件效率居中,串联文件效率最低。 3.文件存储设备 文件的存储设备主要有磁带、磁盘、光盘等。由于存储设备的特性可以决定文件的存 取方法,因此这里介绍以磁带为代表的顺序存储设备和以磁盘为代表的直接存储设备的特 性,以及存储设备、文件物理结构与存取方法之间的关系。 (1)磁带:是一种典型的顺序存取设备,这种设备只有在前面的物理块被存取访问过 之后,才能存取后续物理块的内容。由于磁带机的启动和停止都要花费一定的时间,因此在 磁带的相邻物理块之间设计有一段间隙将它们隔开,如下所示: 磁 带 … 间隙 第 i 块 间隙 第 i+1 块 间隙 … 磁带的存取速度与信息密度(字符数/英寸〉、磁带带速(英寸/秒)和块间间隙有关。如 果带速高,信息密度大且所需块间隙(磁头启动和停止时间〉小,则磁带存取速度高。反之, 若磁带带速低,信息密度小且所需块间隙〈磁带启动和停止时间〉大,则磁带存取速度低。 由于磁带读写时只有在第 i 块被存取之后,才能对第 i+1 块进行存取操作,因此,某个特定物 理块的存取访问与该物理块到磁头当前位置的距离有很大关系
(2)磁盘是典型的直接存取设备,这种设备允许文件系统直接存取磁盘上的任意物理 块。磁盘机一般由若干磁盘片组成,可沿一个固定方向高速旋转。每个盘面对应一个磁头, 磁臂可沿半径方向移动。磁盘上的一系列同心圆称为磁道,磁道沿径向又分成大小相等的多 个扇区,与盘片中心有一定距离的所有磁道称为一个柱面。因此,磁盘上的每个物理块可用 柱面号,磁头号和扇区号表示。 访问磁盘时间由三部分组成,即寻道时间、旋转延迟时间和传输时间,其中寻道自才间 是指将磁头从当前位置移动到指定磁道所经历的时间,旋转延迟时间是指定扇区移动到磁 头下面所经历的时间,传输时间是指将扇区上的数据从磁盘读出或向磁盘写入数据所经历 的时间 表7.1存取设备、存取方法和物理结构之间的关系 存取设备 磁带 物理结构顺序结构链接结构|索引结构|顺序结构 存取方法直接或顺序顺序直接或顺序顺序 文件长度固定可变、固定可变、固定固定 7.1.3文件目录管理 1.编排文件目录的原则 (1)系统中的文件种类繁多、数量庞大,为了使用户方便地找到文件,需要在系统中建立 一套目录机构。 (2)编排目录的原则是:能够实现″按名存取″,使査找文件准确、快速;解决命名的冲突 及文件共享等问题。 2.文件控制块、目录项和索引结点 为了能对一个文件进行正确的存取,必须为它设置用于描述和控制文件的数据结构,称 之为"文件控制块(FCB)"。文件控制块中最基本的内容是文件名和文件的物理地址,其他的 内容通常有文件的逻辑结构、文件的物理结构、文件的长度、文件的存取权限、文件的建 立日期和时间、文件最后一次修改的臼期和时间、文件的连接计数及文件主的标识符等文 件属性信息 文件控制块与文件一一对应,并分别存放,我们将文件控制块的有序集合称作目录,而 其中的每个文件控制块被称为目录项。目录通常也是以文件的方式存放在外存上,因此,也 将它称为目录文件。 文件目录通常跟文件一起存放在外存上,当文件很多时,文件目录可能要占用大量的物 理块。此时,在文件目录中查找一个指定的文件可能要多次启动外存,故十分费时。而在检 索目录的过程中,实际上只用到了其中的文件名信息,仅当找到了匹配的目录项(即其中的 文件名与指定的文件名相同)后,才需要从该目录项中读出该文件的物理地址等信息 为此,有些系统,如UNIX系统,便采用把文件名和文件描述信息分开的办法,即将文件最 描述信息单独形成一个称为索引结点的数据结构,存放在外存的索引结点区,而组成文件目 录的目录项中仅有文件名和指向该文件所对应的索引绪点的指针。这样,便可大大减少一文 件目录所占的物理块数,从而加快检索目录的速度 3.目录结构 目录结构是指文件目录的组织方式,它将直接关系到文件的存取速度以及文件的共享 性和安全性。常用的目录结构有: (1)单级目录结构 单级目录结构是指在整个文件系统中只建立一张目录表,每个文件占其中的一个表项 每当要建立一个新文件时,必须先检索所有的目录项,以保证新文件名在目录中是惟-的:然 后再从目录表中找出一个空白目录项,填入新文件的文件名和其他说明信息。删除文件时
(2)磁盘是典型的直接存取设备,这种设备允许文件系统直接存取磁盘上的任意物理 块。磁盘机一般由若干磁盘片组成,可沿一个固定方向高速旋转。每个盘面对应一个磁头, 磁臂可沿半径方向移动。磁盘上的一系列同心圆称为磁道,磁道沿径向又分成大小相等的多 个扇区,与盘片中心有一定距离的所有磁道称为一个柱面。因此,磁盘上的每个物理块可用 柱面号,磁头号和扇区号表示。 访问磁盘时间由三部分组成,即寻道时间、旋转延迟时间和传输时间,其中寻道自才间 是指将磁头从当前位置移动到指定磁道所经历的时间,旋转延迟时间是指定扇区移动到磁 头下面所经历的时间,传输时间是指将扇区上的数据从磁盘读出或向磁盘写入数据所经历 的时间。 表 7.1 存取设备、存取方法和物理结构之间的关系 存取设备 磁盘 磁带 物理结构 顺序结构 链接结构 索引结构 顺序结构 存取方法 直接或顺序 顺序 直接或顺序 顺序 文件长度 固定 可变、固定 可变、固定 固定 7.1.3 文件目录管理 1.编排文件目录的原则 (1)系统中的文件种类繁多、数量庞大,为了使用户方便地找到文件,需要在系统中建立 一套目录机构。 (2)编排目录的原则是: 能够实现"按名存取",使查找文件准确、快速;解决命名的冲突 及文件共享等问题。 2.文件控制块、目录项和索引结点 为了能对一个文件进行正确的存取,必须为它设置用于描述和控制文件的数据结构,称 之为"文件控制块(FCB)"。文件控制块中最基本的内容是文件名和文件的物理地址,其他的 内容通常有文件的逻辑结构、文件的物理结构、文件的长度、文件的存取权限、文件的建 立日期和时间、文件最后一次修改的臼期和时间、文件的连接计数及文件主的标识符等文 件属性信息。 文件控制块与文件一一对应,并分别存放,我们将文件控制块的有序集合称作目录,而 其中的每个文件控制块被称为目录项。目录通常也是以文件的方式存放在外存上,因此,也 将它称为目录文件。 文件目录通常跟文件一起存放在外存上,当文件很多时,文件目录可能要占用大量的物 理块。此时,在文件目录中查找一个指定的文件可能要多次启动外存,故十分费时。而在检 索目录的过程中,实际上只用到了其中的文件名信息,仅当找到了匹配的目录项(即其中的 文件名与指定的文件名相同)后,才需要从该目录项中读出该文件的物理地址等信息。 为此,有些系统,如 UNIX 系统,便采用把文件名和文件描述信息分开的办法,即将文件最 描述信息单独形成一个称为索引结点的数据结构,存放在外存的索引结点区,而组成文件目 录的目录项中仅有文件名和指向该文件所对应的索引绪点的指针。这样,便可大大减少一文 件目录所占的物理块数,从而加快检索目录的速度。 3.目录结构 目录结构是指文件目录的组织方式,它将直接关系到文件的存取速度以及文件的共享 性和安全性。常用的目录结构有: (1)单级目录结构 单级目录结构是指在整个文件系统中只建立一张目录表,每个文件占其中的一个表项。 每当要建立一个新文件时,必须先检索所有的目录项,以保证新文件名在目录中是惟-的;然 后再从目录表中找出一个空白目录项,填入新文件的文件名和其他说明信息。删除文件时
先从目录中找到该文件的目录项,然后再根据其中的物理地址回收外存空间,并清除该目录 项 单级目录的管理和实现十分简单。但它不能满足对目录管理的要求,例如它不允许文件 重名,因此也不便于实现文件共享;而且,当文件数目较多时,它的检索速度会变得十分缓 慢。 2)两级目录结构 为克服简单文件目录的缺点,可采用二级目录。二级目录由主目录表(MFD》和用户文件 目录表(UFD)组成。主目录表是管理用户目录表的总文件目录。用户文件目录表由各用户建 立自己的名空间构成。二级目录的优点是解决了"重名”、"别名”问题,提高了查找速度,比 一级目录快得多。 (3)多级目录结构 为了进一步提高对目录的检索速度,使用户更加方便地组织和使用自己的文件,现代操 作系统普遍使用多级目录结构(又称为树形目录结构)来进行文件管理。主目录在这里被称 为根目录,数据文件被称为树叶,而其他的目录均作为树的结点 通常,一个用户进程在一给定的时间内所访问的文件仅局限于某个文件目录之下。为了简化 文件的查找过程,可将该文件目录设置成”当前目录”或"工作目录”,以后用户进程对各文件 的访问都可相对于”当前目录"而进行,而将当前目录到数据文件之间的所有目录文件名(不 包括当前目录文件名)与数据文件名用/依次连接起来,便构成了文件的相对路径名。 4.文件目录项的组织和查询技术 (1)文件目录项的组织 文件目录项的组织随系统而异。不同系统的文件目录项的组织如下 ①CPM中的目录项:CP/M是一个早期的8位微机操作系统,该系统采用简单目录结构, 其目录项包含文件名、文件类型、盘驱动器号、范围、磁盘块数和磁盘块号。 ②MS-D0S中的目录项。MS-D0S采用树型目录结构。其目录项包含文件名、类型、属 性、时间、日期、首簇号、文件长度。MS-D0S采用串联(链接〉结构,其第一个磁盘块的块 号(称为首簇号〉放在目录项中,根据首簇号,按链接表(文件分配表FAT)可以找出该文件的 所有块 ③UNIX中的目录项。UNIX中使用的目录结构非常简单,每个目录项仅包含一个文件名及 其i节点号,而有关文件目录项中的其余文件结构信息、文件控制信息、文件管理等信息均 放在i节点中。 (2)目录查询系统 当用户要访问一个文件时,系统首先要利用用户提供的路径名对目录进行查询,只要找 到对应的文件控制块或索引结点,便可找到具体的文件并对之进行相应的操作。在读/写文 件前,必须先打开文件。打开文件时,操作系统利用用户给出的文件路径名到相应的目录项 中查找该文件相关信息:文件结构信息、文件管理信息和文件控制信息。 7.1.4文件存储空间管理 1.存储空间管理程序应解决的几个问题 个大容量的文件存储器为系统本身和许多用户所共享。为方便用户"按名存取”所需 之文件,系统应能自动为用户分配及管理系统和用户的存储空间。为此,应解决以下三个问 (1)登记空闲区的分布情况 (2)按需要给一个文件分配存储空间。 (3)收回不再需要保留的文件所占的存储空间。 以上问题都归结为盘空闲区的管理问题
先从目录中找到该文件的目录项,然后再根据其中的物理地址回收外存空间,并清除该目录 项。 单级目录的管理和实现十分简单。但它不能满足对目录管理的要求,例如它不允许文件 重名,因此也不便于实现文件共享;而且,当文件数目较多时,它的检索速度会变得十分缓 慢。 (2)两级目录结构 为克服简单文件目录的缺点,可采用二级目录。二级目录由主目录表(MFD〉和用户文件 目录表(UFD)组成。主目录表是管理用户目录表的总文件目录。用户文件目录表由各用户建 立自己的名空间构成。二级目录的优点是解决了"重名"、"别名"问题,提高了查找速度,比 一级目录快得多。 (3)多级目录结构 为了进一步提高对目录的检索速度,使用户更加方便地组织和使用自己的文件,现代操 作系统普遍使用多级目录结构(又称为树形目录结构)来进行文件管理。主目录在这里被称 为根目录,数据文件被称为树叶,而其他的目录均作为树的结点。 通常,一个用户进程在一给定的时间内所访问的文件仅局限于某个文件目录之下。为了简化 文件的查找过程,可将该文件目录设置成"当前目录"或"工作目录",以后用户进程对各文件 的访问都可相对于"当前目录"而进行,而将当前目录到数据文件之间的所有目录文件名(不 包括当前目录文件名)与数据文件名用"/"依次连接起来,便构成了文件的相对路径名。 4.文件目录项的组织和查询技术 (1)文件目录项的组织 文件目录项的组织随系统而异。不同系统的文件目录项的组织如下: ①CP/M 中的目录项:CP/M 是一个早期的 8 位微机操作系统,该系统采用简单目录结构, 其目录项包含文件名、文件类型、盘驱动器号、范围、磁盘块数和磁盘块号。 ②MS -DOS 中的目录项。MS -DOS 采用树型目录结构。其目录项包含文件名、类型、属 性、时间、日期、首簇号、文件长度。MS -DOS 采用串联(链接〉结构,其第一个磁盘块的块 号(称为首簇号〉放在目录项中,根据首簇号,按链接表(文件分配表 FAT)可以找出该文件的 所有块。 ③UNIX 中的目录项。UNIX 中使用的目录结构非常简单,每个目录项仅包含一个文件名及 其 i 节点号,而有关文件目录项中的其余文件结构信息、文件控制信息、文件管理等信息均 放在 i 节点中。 (2)目录查询系统 当用户要访问一个文件时,系统首先要利用用户提供的路径名对目录进行查询,只要找 到对应的文件控制块或索引结点,便可找到具体的文件并对之进行相应的操作。在读/写文 件前,必须先打开文件。打开文件时,操作系统利用用户给出的文件路径名到相应的目录项 中查找该文件相关信息:文件结构信息、文件管理信息和文件控制信息。 7.1.4 文件存储空间管理 1.存储空间管理程序应解决的几个问题 一个大容量的文件存储器为系统本身和许多用户所共享。为方便用户"按名存取"所需 之文件,系统应能自动为用户分配及管理系统和用户的存储空间。为此,应解决以下三个问 题。、 (1)登记空闲区的分布情况。 (2)按需要给一个文件分配存储空间。 (3)收回不再需要保留的文件所占的存储空间。 以上问题都归结为盘空闲区的管理问题
2.常用的盘空闲区管理方法 (1)空白文件目录 盘空间上一个连续的未分配区域称为空白文件。系统为所有这些空白文件单独建立 个目录。对每个空白文件,在这个目录中建立一个表目。表目的内容包括第一个空白块地址 (物理块号)、空白块个数等。在进行存储空间的分配时,同样可采用首次适应、最佳适应等 算法:而回收时,同样要进行空闲区的合并。 这种方法的优点是空闲区的分配和回收都相当容易,但用来管理空闲区的空闲表需要 占用大量的存储空间。 (2)空白块链 该方法是将所有空白块用链接指针或索引结构把它们组成一个空白文件。释放和分配 空白块都可以在链首进行,只需要修改几个有关的链接字。本方法只要求在主存中保存一个 指针,令它指向第一个空白块。 这种方法的优点是实现简单;但工作效率低,因为每当在链上增加或移去空白块时需要 对空白块链做较大的调整,因而会有较大的系统开销 种改进方法是将空白块分成若干组,再用指针将组与组链接起来,将这种管理空白块 的方法称为成组链接法。这种成组链接法,在进行空白块的分配与回收时要比空白块链法节 省时间 (3)位示图法 位示图是利用二进制的一位来表示文件存储空间中的一个块的使用情况。一个m行、n 列的位示图,可用来描述m×n块的文件存储空间,当行号、列号和块号都是从0开始编号时, 第i行、第j列的二进制位对应的物理块号为i×n+j。如果"0"表示对应块空闲,"1”表示对 应块己分配,则在进行存储空间的分配时,可顺序扫描位示图,从中找出一个或一组其值为 0″的二进制位,将对应的块分配出去,并将这些位置1:而在回收某个块时,只需找到对应的 位,并将其值清0便可。 位示图法适合于所有的分配方式,它简单易行,而且位示图通常较小,故可将其读入内 存,从而进一步加快文件存储空间分配和回收的速度 (4)MS-D0S的盘空间管理 MS-DOS盘空间的分配采用文件分配表FAT;盘空间的分配单位称为簇(相当于块),簇的 大小因盘而异,每个簇在FAT表中占一个项。FAT表是一个简单的线性表,它由若干项组成 FAT表的头两项用来标记盘的类型,其余的每个项包含三个十六进制的字符;若为000,表示 空闲簇;FFF表示该簇是一个文件的最后一簇;若为其它任何十六进制字符,表示该簇是某 文件的下一簇号。 (5)UNIX文件存储空间的管理(成组链接法) 成组链接法是UNIX系统采用的空闲盘块管理方式。它将一个文件卷的所有空闲盘块按 固定大小(如每组100块)分成若干组,并将每一组的盘块数和该组所有的盘块号记入前一组 的最后一个盘块中,第一组的盘块数(可小于100)和该组所有的盘块号则记入超级块的空闲 盘块号楼中。 当系统要为用户分配文件所需的盘块时,若第一组不只一块,则将超级块中的空闲盘块 数减1,并将空闲盘块钱校顶的盘块分配出去:若第一组只剩一块且钱顶的盘块号不是结束 标记0,则先将该块的内容(记录有下一组的盘块数和盘块号)读到超级块中,然后再将该块 分配出去:否则,若楼顶的盘块号为结束标记0,则表示该磁盘上己无空闲盘块可供分配 在系统回收空闲盘块时,若第一组不满1∞块,则只需将回收块的块号填入超级块的空 闲盘块钱钱顶,并将其中的空闲盘块数加1:若第一组已有100块,则必须先将超级块中的空 闲盘块数和空闲盘块号写入回收块中,然后将盘块数1和回收块的块号记入超级块中,值得
2.常用的盘空闲区管理方法 (1)空白文件目录 盘空间上一个连续的未分配区域称为空白文件。系统为所有这些空白文件单独建立一 个目录。对每个空白文件,在这个目录中建立一个表目。表目的内容包括第一个空白块地址 (物理块号)、空白块个数等。在进行存储空间的分配时,同样可采用首次适应、最佳适应等 算法;而回收时,同样要进行空闲区的合并。 这种方法的优点是空闲区的分配和回收都相当容易,但用来管理空闲区的空闲表需要 占用大量的存储空间。 (2)空白块链 该方法是将所有空白块用链接指针或索引结构把它们组成一个空白文件。释放和分配 空白块都可以在链首进行,只需要修改几个有关的链接字。本方法只要求在主存中保存一个 指针,令它指向第一个空白块。 这种方法的优点是实现简单;但工作效率低,因为每当在链上增加或移去空白块时需要 对空白块链做较大的调整,因而会有较大的系统开销。 一种改进方法是将空白块分成若干组,再用指针将组与组链接起来,将这种管理空白块 的方法称为成组链接法。这种成组链接法,在进行空白块的分配与回收时要比空白块链法节 省时间。 (3)位示图法 位示图是利用二进制的一位来表示文件存储空间中的一个块的使用情况。一个 m 行、n 列的位示图,可用来描述 m×n 块的文件存储空间,当行号、列号和块号都是从 0 开始编号时, 第 i 行、第 j 列的二进制位对应的物理块号为 i×n+j。如果"0"表示对应块空闲,"1"表示对 应块己分配,则在进行存储空间的分配时,可顺序扫描位示图,从中找出一个或一组其值为 "0"的二进制位,将对应的块分配出去,并将这些位置 1;而在回收某个块时,只需找到对应的 位,并将其值清 0 便可。 位示图法适合于所有的分配方式,它简单易行,而且位示图通常较小,故可将其读入内 存,从而进一步加快文件存储空间分配和回收的速度。 (4)MS -DOS 的盘空间管理 MS-DOS 盘空间的分配采用文件分配表 FAT;盘空间的分配单位称为簇(相当于块),簇的 大小因盘而异,每个簇在 FAT 表中占一个项。FAT 表是一个简单的线性表,它由若干项组成。 FAT 表的头两项用来标记盘的类型,其余的每个项包含三个十六进制的字符;若为 000,表示 空闲簇;FFF 表示该簇是一个文件的最后一簇;若为其它任何十六进制字符,表示该簇是某 一文件的下一簇号。 (5)UNIX 文件存储空间的管理(成组链接法) 成组链接法是 UNIX 系统采用的空闲盘块管理方式。它将一个文件卷的所有空闲盘块按 固定大小(如每组 100 块)分成若干组,并将每一组的盘块数和该组所有的盘块号记入前一组 的最后一个盘块中,第一组的盘块数(可小于 100)和该组所有的盘块号则记入超级块的空闲 盘块号楼中。 当系统要为用户分配文件所需的盘块时,若第一组不只一块,则将超级块中的空闲盘块 数减 1,并将空闲盘块钱校顶的盘块分配出去:若第一组只剩一块且钱顶的盘块号不是结束 标记 0,则先将该块的内容(记录有下一组的盘块数和盘块号)读到超级块中,然后再将该块 分配出去:否则,若楼顶的盘块号为结束标记 0,则表示该磁盘上己无空闲盘块可供分配。 在系统回收空闲盘块时,若第一组不满 1∞块,则只需将回收块的块号填入超级块的空 闲盘块钱钱顶,并将其中的空闲盘块数加 1:若第一组已有 100 块,则必须先将超级块中的空 闲盘块数和空闲盘块号写入回收块中,然后将盘块数 1 和回收块的块号记入超级块中,值得