《操作系统原理与实践教程.ppt》由会员分享,可在线阅读,更多相关《操作系统原理与实践教程.ppt(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第6章 文件管理三两草上传6.16.1 文件的概念文件的概念6.1.1 6.1.1 文件及其分类文件及其分类1.1.文件的定义文件的定义n文件是计算机系统中信息存放的一种组织形式,目前尚无文件是计算机系统中信息存放的一种组织形式,目前尚无严格的定义,下面给出两种有代表性的解释:严格的定义,下面给出两种有代表性的解释:(1 1)文件是具有标识符的相关字符流的集合。)文件是具有标识符的相关字符流的集合。(2 2)文件是具有标识符的相关记录(一个有意义的信息)文件是具有标识符的相关记录(一个有意义的信息单位)的集合。单位)的集合。n这两种解释定义了两种文件形式:前者说明文件是由字节这两种解释定义了两
2、种文件形式:前者说明文件是由字节组成,这是一种无结构的文件,或称流式文件。后者说明组成,这是一种无结构的文件,或称流式文件。后者说明文件是由记录组成。而记录则是由一组相关信息项组成。文件是由记录组成。而记录则是由一组相关信息项组成。6.16.1 文件的概念文件的概念2.2.文件命名文件命名n一般情况下,一个文件是一组逻辑上具有完整意义的信息一般情况下,一个文件是一组逻辑上具有完整意义的信息集合,并赋以一个文件名。文件名由用户给定,它是由字集合,并赋以一个文件名。文件名由用户给定,它是由字母或数字组成的一个字符串,用来标识文件母或数字组成的一个字符串,用来标识文件。n文件名是文件存在的标识,操作
3、系统根据文件名来对其进文件名是文件存在的标识,操作系统根据文件名来对其进行控制和管理。行控制和管理。n各个操作系统的文件命名规则略有不同,即文件名的格式各个操作系统的文件命名规则略有不同,即文件名的格式和长度因系统而异。和长度因系统而异。n一般来说,文件名由文件名和扩展名两部分组成,中间用一般来说,文件名由文件名和扩展名两部分组成,中间用“”隔开。它们都是字母或数字组成的字母数字串。扩隔开。它们都是字母或数字组成的字母数字串。扩展名也称为文件后缀,利用扩展名可以区分文件的属性。展名也称为文件后缀,利用扩展名可以区分文件的属性。6.16.1 文件的概念文件的概念3.3.文件的分类文件的分类(1
4、1)以文件的用途分类)以文件的用途分类系统文件系统文件:由操作系统及其他系统程序和数据组成的文件。:由操作系统及其他系统程序和数据组成的文件。这种文件不对用户开放,仅供系统使用,用户只能通过操这种文件不对用户开放,仅供系统使用,用户只能通过操作系统提供的系统调用来使用它们。作系统提供的系统调用来使用它们。库文件库文件:是指系统为用户提供的各种标准函数,标准过程:是指系统为用户提供的各种标准函数,标准过程和实用程序等。用户只能使用这些文件,而无权对其进行和实用程序等。用户只能使用这些文件,而无权对其进行修改。修改。用户文件用户文件:由用户的信息组成的文件,如源程序文件,数:由用户的信息组成的文件
5、,如源程序文件,数据文件等。这种文件的使用和修改权均属于用户。据文件等。这种文件的使用和修改权均属于用户。6.16.1 文件的概念文件的概念(2 2)按文件的操作保护分类)按文件的操作保护分类只读文件只读文件:只允许进行读操作,不能进行写操作的文件。只允许进行读操作,不能进行写操作的文件。读写文件读写文件:允许文件主和授权用户对其进行读或写操作的文允许文件主和授权用户对其进行读或写操作的文件。件。只执行文件只执行文件:该类文件只允许授权的用户调用执行,而不允:该类文件只允许授权的用户调用执行,而不允许其修改或读出文件的内容。许其修改或读出文件的内容。(3 3)按文件的性质分类)按文件的性质分类
6、普通文件普通文件:指一般的用户文件和系统文件。指一般的用户文件和系统文件。目录文件目录文件:管理和实现文件系统的文件目录项组成的系统文管理和实现文件系统的文件目录项组成的系统文件,对目录文件可以进行与普通文件一样的各种文件操作。件,对目录文件可以进行与普通文件一样的各种文件操作。特别文件特别文件:有的系统把设备作为文件统一管理和使用,并为有的系统把设备作为文件统一管理和使用,并为区别起见,把设备称为特别文件。区别起见,把设备称为特别文件。6.16.1 文件的概念文件的概念6.1.2 6.1.2 文件的属性文件的属性n为了对文件进行控制和管理,大多数操作系统都用一组信为了对文件进行控制和管理,大
7、多数操作系统都用一组信息来指定文件的类型、操作特性和存取保护等,这组信息息来指定文件的类型、操作特性和存取保护等,这组信息称为文件的属性。称为文件的属性。n文件的属性虽然不是文件的信息内容,但对于文件的管理文件的属性虽然不是文件的信息内容,但对于文件的管理和控制是十分重要的。这组属性包括:和控制是十分重要的。这组属性包括:文件基本属性文件基本属性 文件的类型属性文件的类型属性 文件的保护属性文件的保护属性 文件的管理属性文件的管理属性 文件的控制属性文件的控制属性6.16.1 文件的概念文件的概念6.1.3 6.1.3 文件的组织文件的组织1.1.有结构的文件有结构的文件n有结构文件又称记录式
8、文件。它在逻辑上可被看成一组连有结构文件又称记录式文件。它在逻辑上可被看成一组连续记录的集合,即文件是由若干相关记录组成,且对每个续记录的集合,即文件是由若干相关记录组成,且对每个记录编上号码,依次为记录记录编上号码,依次为记录1 1、记录、记录2 2、记录、记录n n。每个。每个记录是一组相关的数据集合,用于描述一个对象某个方面记录是一组相关的数据集合,用于描述一个对象某个方面的属性,如年龄、姓名、职务、工资等。的属性,如年龄、姓名、职务、工资等。n记录式文件按照记录长度是否相同,又可分为定长记录文记录式文件按照记录长度是否相同,又可分为定长记录文件和不定长记录文件两种。件和不定长记录文件两
9、种。(1 1)定长记录:文件中所有记录的长度相等)定长记录:文件中所有记录的长度相等 。(2 2)变长记录:文件中记录的长度不相等。)变长记录:文件中记录的长度不相等。6.16.1 文件的概念文件的概念6.16.1 文件的概念文件的概念2.2.无结构的文件无结构的文件n无结构文件是指文件内部不再划分记录,是由一组相关信无结构文件是指文件内部不再划分记录,是由一组相关信息组成的有序字符流,即流式文件。其长度直接按字节来息组成的有序字符流,即流式文件。其长度直接按字节来计算。计算。n大量的源程序、可执行程序、库函数等均采用无结构的文大量的源程序、可执行程序、库函数等均采用无结构的文件形式。在件形式
10、。在 UNIXUNIX和和WindowsWindows系统中,所有的文件都被看成系统中,所有的文件都被看成流式文件。流式文件。n事实上操作系统不知道或不关心文件中存放的内容是什么,事实上操作系统不知道或不关心文件中存放的内容是什么,它所见到的都是一个一个的字节。文件中任何信息的含义它所见到的都是一个一个的字节。文件中任何信息的含义都由用户级程序解释。都由用户级程序解释。6.16.1 文件的概念文件的概念6.1.4 6.1.4 文件的访问方式文件的访问方式1.1.顺序访问:顺序访问:n顺序存取是最简单的方法。它严格按照文件信息单位排列顺序存取是最简单的方法。它严格按照文件信息单位排列的顺序依次存
11、取,后一次存取总是在前一次存取的基础上的顺序依次存取,后一次存取总是在前一次存取的基础上进行,所以不必给出具体的存取位置。进行,所以不必给出具体的存取位置。n当打开文件时,文件的存取指针指向第一个信息单位,如当打开文件时,文件的存取指针指向第一个信息单位,如第一个字节或第一个记录,每存取一个信息单位存取指针第一个字节或第一个记录,每存取一个信息单位存取指针加加1 1指向下一个信息单位,如此类推。指向下一个信息单位,如此类推。6.16.1 文件的概念文件的概念2.2.随机访问:随机访问:n随机访问也称直接存取,每次存取操作时必须先确定存取随机访问也称直接存取,每次存取操作时必须先确定存取的位置。
12、直接访问是基于文件的磁盘模型,这是因为磁盘的位置。直接访问是基于文件的磁盘模型,这是因为磁盘允许对任意文件块进行随机读和写。对直接访问,文件可允许对任意文件块进行随机读和写。对直接访问,文件可作为块或记录的编号序列。直接访问文件允许对任意块进作为块或记录的编号序列。直接访问文件允许对任意块进行读或写,读写顺序是没有限制的。行读或写,读写顺序是没有限制的。n直接访问文件可立即访问大量的数据信息,因此,随机访直接访问文件可立即访问大量的数据信息,因此,随机访问方式主要对大批信息的立即访问,如大型数据库的访问。问方式主要对大批信息的立即访问,如大型数据库的访问。当接到访问请求时,系统计算出信息所在块
13、的位置,然后当接到访问请求时,系统计算出信息所在块的位置,然后直接读取其中的信息。直接读取其中的信息。6.16.1 文件的概念文件的概念3.3.其他访问方式其他访问方式-索引方式索引方式6.26.2 目录结构目录结构6.2.1 6.2.1 文件控制块和文件目录文件控制块和文件目录1.1.文件控制块文件控制块n从文件管理的角度看,一个文件包括两部分:文件说明和从文件管理的角度看,一个文件包括两部分:文件说明和文件体。文件体指文件本身的信息,它可能是记录式文件文件体。文件体指文件本身的信息,它可能是记录式文件或字符流文件。而文件说明有时也叫文件控制块(或字符流文件。而文件说明有时也叫文件控制块(f
14、ile file control block,FCBcontrol block,FCB),它是操作系统为管理文件而设置),它是操作系统为管理文件而设置的数据结构,存放了为管理文件所需的所有有关信息(文的数据结构,存放了为管理文件所需的所有有关信息(文件属性)。件属性)。n文件控制块是文件存在的标志,它通常由文件属性信息组文件控制块是文件存在的标志,它通常由文件属性信息组成。成。6.26.2 目录结构目录结构2.2.文件目录文件目录n为了对众多的文件进行分门别类的管理,提高文件检索的为了对众多的文件进行分门别类的管理,提高文件检索的效率,现代操作系统往往将文件的文件控制块集中在一起效率,现代操作
15、系统往往将文件的文件控制块集中在一起进行管理。这种进行管理。这种FCBFCB的有序集合就称为文件目录,文件控制的有序集合就称为文件目录,文件控制块就是其中的目录项(构成文件目录的项目)。另外,为块就是其中的目录项(构成文件目录的项目)。另外,为了实现对文件目录的管理,通常将文件目录以文件的形式了实现对文件目录的管理,通常将文件目录以文件的形式保存在外存,这个文件就叫目录文件。保存在外存,这个文件就叫目录文件。n文件目录具有将文件名转换成该文件在外存的物理位置的文件目录具有将文件名转换成该文件在外存的物理位置的功能。当用户要求存取某个文件时,系统首先查找目录文功能。当用户要求存取某个文件时,系统
16、首先查找目录文件,先找到对应的文件目录,然后比较文件名就可以找到件,先找到对应的文件目录,然后比较文件名就可以找到所查找文件的文件控制块,再通过所查找文件的文件控制块,再通过FCBFCB指出的文件信息就能指出的文件信息就能存取文件的内容。存取文件的内容。6.26.2 目录结构目录结构n 不同的系统,文件目录的组织也不完全相同。不同的系统,文件目录的组织也不完全相同。MS-DOSMS-DOS的目录结构的目录结构nUNIX/LinuxUNIX/Linux采用了一种比较特殊的目录建立方法,它把文采用了一种比较特殊的目录建立方法,它把文件目录项中的文件名和其他的管理信息分开,后者单独组件目录项中的文件
17、名和其他的管理信息分开,后者单独组成一个定长的数据结构,成为索引节点(成一个定长的数据结构,成为索引节点(i_nodei_node),该索),该索引节点的编号称为索引号,记为引节点的编号称为索引号,记为i_nodei_node。于是,文件目录。于是,文件目录项中仅剩下项中仅剩下1414个字节的文件名和两个字节的个字节的文件名和两个字节的i_nodei_node。6.26.2 目录结构目录结构6.2.2 6.2.2 单级目录单级目录n单级目录是最简单的目录结构。在这种组织方式下,全部单级目录是最简单的目录结构。在这种组织方式下,全部文件都登记在同一目录中。文件都登记在同一目录中。n其特点是简单、
18、易于理解和实现,但那也存在以下的其特点是简单、易于理解和实现,但那也存在以下的缺陷:查找速度慢、允许重名和不便于文件的共享。缺陷:查找速度慢、允许重名和不便于文件的共享。6.26.2 目录结构目录结构6.2.3 6.2.3 两级目录两级目录每个用户使用一个相对独立的目录,在所有用户的目录每个用户使用一个相对独立的目录,在所有用户的目录上层再建一层目录来管理各个用户目录。上层再建一层目录来管理各个用户目录。二级目录结构把文件目录分成二级,第一级称为主目录,二级目录结构把文件目录分成二级,第一级称为主目录,第二级称为子目录或次目录。第二级称为子目录或次目录。系统允许每个用户有一个子目录。也称为用户
19、目录。系统允许每个用户有一个子目录。也称为用户目录。二级目录结构有效地解决文件重名的问题,不同用户的二级目录结构有效地解决文件重名的问题,不同用户的文件,使用相同名字也不会导致混乱。文件,使用相同名字也不会导致混乱。6.26.2 目录结构目录结构6.26.2 目录结构目录结构6.2.4 6.2.4 树型目录树型目录n又称为多级目录结构,它是二级目录结构的扩充。又称为多级目录结构,它是二级目录结构的扩充。n这种多层次的目录结构如同一棵倒置的树,主目录这种多层次的目录结构如同一棵倒置的树,主目录就是树根,称为根目录就是树根,称为根目录n每一个树枝结点就是一个子目录,每一片树叶描述每一个树枝结点就是
20、一个子目录,每一片树叶描述的一个文件。的一个文件。6.26.2 目录结构目录结构6.26.2 目录结构目录结构n在在树树形形目目录录结结构构中中,一一个个文文件件的的全全名名将将包包括括从从根根目目录录开开始始到到文文件件为为止止的的通通路路上上遇遇到到的的所所有有子子目目录录路路径径。各各子子目目录录名名之之间间用用正正斜斜线线“/”/”或或反反斜斜线线“”隔隔开开,其其中中,子子目目录录名名组组成成的的部分又称为路径名。部分又称为路径名。n系系统统内内的的每每个个文文件件都都有有惟惟一一的的路路径径名名。路路径径名名是是从从根根经经过过所所有子目录再到指定文件的路径。有子目录再到指定文件的
21、路径。n路径名有两种形式:绝对路径名和相对路径名。绝对路径名路径名有两种形式:绝对路径名和相对路径名。绝对路径名从根目录开始并给出路径上的目录名直到指定的文件,而相从根目录开始并给出路径上的目录名直到指定的文件,而相对路径名从当前目录开始定义一个路径。对路径名从当前目录开始定义一个路径。6.26.2 目录结构目录结构6.2.5 6.2.5 目录的实现目录的实现1.1.线性表线性表n目录文件由目录项构成一个线性表,每个目录项包括文件目录文件由目录项构成一个线性表,每个目录项包括文件名和指向数据块的指针。名和指向数据块的指针。n当需要创建一个新文件时,系统必须首先搜索目录文件以当需要创建一个新文件
22、时,系统必须首先搜索目录文件以确定有没有同名文件的存在,然后把新文件的目录项添加确定有没有同名文件的存在,然后把新文件的目录项添加到目录的末尾。到目录的末尾。n删除一个文件时,系统根据给定的文件名来搜索文件目录。删除一个文件时,系统根据给定的文件名来搜索文件目录。找到该文件所在目录项后,释放分配给该文件的磁盘空间,找到该文件所在目录项后,释放分配给该文件的磁盘空间,并将相应的目录项删除。并将相应的目录项删除。6.26.2 目录结构目录结构6.26.2 目录结构目录结构2.2.哈希表哈希表n用于实现文件目录的另一种数据结构是哈希表。采用这种用于实现文件目录的另一种数据结构是哈希表。采用这种方法时
23、,除了使用线性列表来存放目录项以外,还使用了方法时,除了使用线性列表来存放目录项以外,还使用了哈希表。哈希表。n哈希表根据文件名计算出一个哈希值,并返回一个指向线哈希表根据文件名计算出一个哈希值,并返回一个指向线性列表中元素的指针。因此,它大大降低了目录搜索时间,性列表中元素的指针。因此,它大大降低了目录搜索时间,插入和删除也很方便,不过需要一些措施来避免冲突插入和删除也很方便,不过需要一些措施来避免冲突(collisioncollision)(两个不同的文件名哈希到同一位置)。哈)(两个不同的文件名哈希到同一位置)。哈希表的最大困难在于其大小通常是固定的,而且哈希函数希表的最大困难在于其大小
24、通常是固定的,而且哈希函数也依赖于哈希表的大小。也依赖于哈希表的大小。6.36.3 文件和目录操作文件和目录操作6.3.1 6.3.1 文件操作文件操作n创建文件:创建文件:n写文件:写文件:n读文件:读文件:n文件定位:文件定位:n删除文件:删除文件:n截短文件:截短文件:6.36.3 文件和目录操作文件和目录操作n大多数文件操作都涉及到为给定文件搜索相关目录条目的操大多数文件操作都涉及到为给定文件搜索相关目录条目的操作。为了避免这种不断的搜索操作,提高文件操作的效率,许作。为了避免这种不断的搜索操作,提高文件操作的效率,许多系统要求在首次使用文件时,必须使用系统调用多系统要求在首次使用文件
25、时,必须使用系统调用openopen来显式来显式地打开文件。操作系统维护着一个包含所有打开文件的信息表地打开文件。操作系统维护着一个包含所有打开文件的信息表(打开文件表,(打开文件表,open file tableopen file table)。当需要进行一个文件操作)。当需要进行一个文件操作时,可通过打开文件表的一个索引来指定文件,而不需要搜索时,可通过打开文件表的一个索引来指定文件,而不需要搜索整个文件目录。当文件不再使用时,进程可以关闭它,操作系整个文件目录。当文件不再使用时,进程可以关闭它,操作系统从打开文件表中删除这一条目。统从打开文件表中删除这一条目。n有的系统在首次使用文件时,
26、会隐式地打开它,在打开文件有的系统在首次使用文件时,会隐式地打开它,在打开文件的作业或程序终止时会自动关闭它。然而,绝大多数操作系统的作业或程序终止时会自动关闭它。然而,绝大多数操作系统要求程序员在使用文件之前,显式地打开它。要求程序员在使用文件之前,显式地打开它。6.36.3 文件和目录操作文件和目录操作6.3.2 6.3.2 目录操作目录操作n创建目录:创建目录:被创建的新目录除了目录项被创建的新目录除了目录项“”(表示该目(表示该目录本身)和录本身)和“”(表示父目录)以外,其内容为空。(表示父目录)以外,其内容为空。目录项目录项“”和和“”是系统自动放在该目录中的。创是系统自动放在该目
27、录中的。创建目录时,系统首先根据调用者提供的路径名来进行目录建目录时,系统首先根据调用者提供的路径名来进行目录检索。如果存在同名的目录文件,则返回出错信息,创建检索。如果存在同名的目录文件,则返回出错信息,创建失败。否则,为新目分配磁盘空间和控制结构,并进行初失败。否则,为新目分配磁盘空间和控制结构,并进行初始化,将新目录文件对应的目录项添加到父目录中。始化,将新目录文件对应的目录项添加到父目录中。n删除目录:删除目录:6.46.4 文件系统的实现文件系统的实现6.4.1 6.4.1 文件系统的结构文件系统的结构获得结果获得结果用户存取要求用户接口用户接口符号文件系统符号文件系统存取控制验证存
28、取控制验证逻辑文件系统逻辑文件系统物理文件系统设备和分配策略模块I/OI/O控制系统控制系统物理介质物理介质基本文件系统6.46.4 文件系统的实现文件系统的实现6.4.2 6.4.2 文件系统的实现文件系统的实现n文件系统以文件的形式保存在计算机的磁盘上,磁盘和内文件系统以文件的形式保存在计算机的磁盘上,磁盘和内存之间以块为单位进行数据存之间以块为单位进行数据I/OI/O转移。每块为一个或多个扇转移。每块为一个或多个扇区,扇区的大小通常为区,扇区的大小通常为512B512B。因此,实现文件系统需要使。因此,实现文件系统需要使用磁盘和内存结构。用磁盘和内存结构。n文件系统在使用之前必须安装。安
29、装通常比较简单,操作文件系统在使用之前必须安装。安装通常比较简单,操作系统需要知道磁盘设备的名称以及在哪里安装文件系统。系统需要知道磁盘设备的名称以及在哪里安装文件系统。通常,一个磁盘设备可以分为不同的分区,每个分区可以通常,一个磁盘设备可以分为不同的分区,每个分区可以安装不同的操作系统。每个分区的格式在不同的操作系统安装不同的操作系统。每个分区的格式在不同的操作系统下有很大的差别,一般由引导块、管理块和数据块三部分下有很大的差别,一般由引导块、管理块和数据块三部分组成。组成。6.46.4 文件系统的实现文件系统的实现6.4.3 6.4.3 文件存储空间的分配文件存储空间的分配1.1.连续分配
30、连续分配n连续分配(连续分配(Contiguous allocationContiguous allocation)方法要求每个文件在)方法要求每个文件在磁盘上占用一组连续的块。文件的连续分配可以用第一块磁盘上占用一组连续的块。文件的连续分配可以用第一块的磁盘地址和连续块的数量来定义。如果文件有的磁盘地址和连续块的数量来定义。如果文件有n n块长并从块长并从位置位置b b开始,那么该文件将占有块开始,那么该文件将占有块b b、b+1b+1、b+2b+2、b+n-1b+n-1。一个文件目录项包括开始块的地址和该文件所分配区域的一个文件目录项包括开始块的地址和该文件所分配区域的长度。长度。n采用连
31、续分配方法可把逻辑文件中的信息顺序地存放到一采用连续分配方法可把逻辑文件中的信息顺序地存放到一组邻接的物理盘块中,这样形成的物理文件称为连续文件组邻接的物理盘块中,这样形成的物理文件称为连续文件(或顺序文件)。(或顺序文件)。6.46.4 文件系统的实现文件系统的实现文件文件FileAFileA的起始地址为盘块的起始地址为盘块2 2,长度为,长度为3 3,它占用了盘块,它占用了盘块2 2、3 3和和4 4。文件。文件FileBFileB的起始地址为盘块的起始地址为盘块9 9,长度为,长度为5 5,其占用,其占用的连续块为的连续块为9 9、1010、1111、1212和和1313。6.46.4
32、文件系统的实现文件系统的实现2.2.链接分配链接分配n链接分配(链接分配(linked allocationlinked allocation)克服了连续分配的所有缺)克服了连续分配的所有缺点。采用链接分配,每个文件是磁盘块的链表。链接分配点。采用链接分配,每个文件是磁盘块的链表。链接分配采用非连续的物理块来存放文件信息,这些非连续的物理采用非连续的物理块来存放文件信息,这些非连续的物理块分布在磁盘的任何地方,它们之间没有顺序关系,其中块分布在磁盘的任何地方,它们之间没有顺序关系,其中每个物理块设有一个指针,指向其后续连接的另一个物理每个物理块设有一个指针,指向其后续连接的另一个物理块,从而使
33、得存放同一文件的物理块链接成一个串联队列。块,从而使得存放同一文件的物理块链接成一个串联队列。n采用链接分配形成的物理文件称为链接文件或串联文件。采用链接分配形成的物理文件称为链接文件或串联文件。6.46.4 文件系统的实现文件系统的实现6.46.4 文件系统的实现文件系统的实现n一个采用链接分配方法的变种是文件分配表(一个采用链接分配方法的变种是文件分配表(FATFAT)的使用。)的使用。每个分区的开始部分用于存储该每个分区的开始部分用于存储该FATFAT表。磁盘上的每个块都表。磁盘上的每个块都在该表中登记,占用一个表项,该表可以通过块的编号来在该表中登记,占用一个表项,该表可以通过块的编号
34、来索引,索引,FATFAT的每个表项含有文件的下一块的块号。的每个表项含有文件的下一块的块号。n系统首先根据目录文件中的文件第一块的块号去检索系统首先根据目录文件中的文件第一块的块号去检索FATFAT表,表,从中得出文件下一个盘块号,以此类推,直到该文件的最从中得出文件下一个盘块号,以此类推,直到该文件的最后一块,该块对应后一块,该块对应FATFAT表的值为文件结束标志。表的值为文件结束标志。n在在FATFAT表中,未使用的块用表中,未使用的块用0 0来表示,因此,当一个文件需来表示,因此,当一个文件需要分配新的存储空间时,就在要分配新的存储空间时,就在FATFAT表中查找第一个标志为表中查找
35、第一个标志为0 0的块,用新分配块的块号来替换该条目的值,把该块链接的块,用新分配块的块号来替换该条目的值,把该块链接到文件的尾部。到文件的尾部。6.46.4 文件系统的实现文件系统的实现6.46.4 文件系统的实现文件系统的实现3.3.索引分配索引分配n索引分配(索引分配(indexdedindexded allocation allocation)要求系统为每个文件建)要求系统为每个文件建立一张索引表,表中每一栏目指出文件信息所在的逻辑块立一张索引表,表中每一栏目指出文件信息所在的逻辑块号和与之对应的物理块号。索引表的物理地址则由文件目号和与之对应的物理块号。索引表的物理地址则由文件目录对
36、应的表项给出。这种物理结构形式的文件称为索引文录对应的表项给出。这种物理结构形式的文件称为索引文件。件。6.46.4 文件系统的实现文件系统的实现n多重索引:多重索引:6.46.4 文件系统的实现文件系统的实现6.4.2 6.4.2 空闲空间的管理空闲空间的管理 1 1、空闲文件目录:、空闲文件目录:简单的空闲块管理方法就是把文件存储设备中的空闲块的简单的空闲块管理方法就是把文件存储设备中的空闲块的块号统一放在一个称为空闲文件目录的物理块中。其中空块号统一放在一个称为空闲文件目录的物理块中。其中空闲文件目录的每个表项对应一个由多个空闲块构成的空闲闲文件目录的每个表项对应一个由多个空闲块构成的空
37、闲区,它包括空闲块个数,空闲块号和第一个空闲块号等。区,它包括空闲块个数,空闲块号和第一个空闲块号等。6.46.4 文件系统的实现文件系统的实现2 2、空闲块链:、空闲块链:空闲块链是一种较常用的空闲块管理方法。空闲块链把文空闲块链是一种较常用的空闲块管理方法。空闲块链把文件存储设备上的所有空闲块链接在一起,当申请者需要空件存储设备上的所有空闲块链接在一起,当申请者需要空闲块时,分配程序从链头开始摘取所需要的空闲块,然后闲块时,分配程序从链头开始摘取所需要的空闲块,然后调整链首指针。反之,当回收空闲块时,把释放的空闲块调整链首指针。反之,当回收空闲块时,把释放的空闲块逐个插入链尾上。逐个插入链
38、尾上。3.3.位示图:位示图:系统首先从内存中画出若干个字节,为每个文件存储设备建系统首先从内存中画出若干个字节,为每个文件存储设备建立一张位示图。这张位示图反映每个文件存储设备的使用立一张位示图。这张位示图反映每个文件存储设备的使用情况。在位示图中,每个文件存储设备的物理块都对应一情况。在位示图中,每个文件存储设备的物理块都对应一个比特位。如果该位为个比特位。如果该位为“1”1”,则表示所对应的块是空闲块;,则表示所对应的块是空闲块;反之,如果该位为反之,如果该位为“0”0”,则表示所对应的块已被分配出去。,则表示所对应的块已被分配出去。重点概念和内容提示重点概念和内容提示l文件、文件名、文件属性、结构文件、流式文件文件、文件名、文件属性、结构文件、流式文件l文件的顺序访问和随机访问文件的顺序访问和随机访问l文件目录、文件路径文件目录、文件路径l磁盘存储空间的分配磁盘存储空间的分配Thank You Very Much!