
一、常见的分类:
①按文件的性质和用途分类:
——系统文件:
- 该类文件只允许用户通过系统调用来执行它们,而不允许对其进行修改和读写。系统文件主要由操作系统核心、各种系统应用程序和数据所组成。
——库文件:
- 该类文件包括允许用户对其进行读取、执行,但是不允许对其进行修改的子程序库。如C语言子程序库等。
——用户文件:
- 用户文件是用户委托文件系统保存的文件。
- 这类文件只有文件的所有者和被授权的用户才能使用。
- 用户文件主要由源程序、目标程序、用户数据库等组成。
②按文件的组织形式分类:
——普通文件:
- 既包括系统文件也包括用户文件、库函数文件和使用程序文件。
- 普通文件主要是指组织格式为系统中所规定的最一般格式的文件,也就是平常所说的文件。
——目录文件:
- 由文件的目录信息构成的特殊文件数据。
——特殊文件:
- 有的系统中,所有的输入、输出设备都被看作特殊文件。
- 这组特殊文件在使用形式上与普通文件相同,如查找目录、存取操作等。
- 但是特殊文件的使用是与设备处理程序密切相关的。系统必须把对特殊文件的操作转入到对不同的设备的操作。
③按使用和管理情况分类:
——临时文件:
- 它是一种私有资源,使用户在某次求解问题过程中产生的中间文件。
- 这种文件仅仅保存在磁盘上。在作为“档案”的外存介质上没有副本。临时文件随用户撤离系统而撤离,因此不可共享。
——永久文件:
- 这是用户经常要使用文件。
- 这类文件不仅在磁盘上有文件副本,且在作为”档案“的介质上也有一个可用的副本。
——档案文件:
- 仅保存在作为“档案”用的外存介质上,以备查证和恢复用。
④按文件系统提出的保护级别分类:
——只读文件:
- 只允许用户对其执行读操作,对于写操作,系统将拒绝执行并给出错误信息。
——读写文件:
- 只允许用户对其进行读、写操作,而拒绝对其执行任何其他的操作。
——不保护文件:
- 这类文件是不加保护措施的文件,所有用户都可以对其进行存取等所有操作。
⑤按文件的数据流向分类:
——输入型文件:
- 这些文件只能读。
——输出型文件:
- 这些文件只能写入。
——输入\ 输出文件:
- 这类文件既可读又可写。
文件的分类还有许多种,但是在文件系统中比较重要的两种分类方式是按文件的逻辑结构和物理结构进行分类。下一节我将仔细介绍!
——文件的逻辑结构:用户按自己对信息的使用要求组织文件,这种文件是独立于物理环境而构造的,因此把用户概念中的文件称为文件的逻辑结构,或称逻辑文件。
——文件的物理结构:又称为文件的存储结构,是指文件在辅存上的存储组织形式,这与存储介质的性质有关。
- 无论是文件的逻辑结构还是物理结构,其构造方式都会影响对文件的处理速度。
二、文件的逻辑结构:
设计文件系统时,选择逻辑结构应遵循的原则:
- 便于修改
- 应提高检索效率
- 使文件信息占据最小的存储空间
- 便于用户进行操作
文件的逻辑结构分类:

①记录式文件(有结构文件):
记录式文件在逻辑上被看成一组连续有序的记录的集合。每个记录由彼此相关的域构成。
根据记录的长度分类:定长记录文件、变长记录文件。
- 定长记录文件:文件中所有记录的长度都是相同的。所有记录中的各数据项都处在记录中相同的位置,具有相同的顺序及长度,文件的长度用记录数目表示。
- 变长记录文件:文件中各记录的长度不相同。原因可能是一个记录中所包含的数据详数目不同。
记录式文件可把文件中的记录按各种不同的方式排列,构成不同的逻辑结构,这样的记录式文件可以分为三类:
- 顺序文件:它是指按照某种顺序排列的记录所构成的文件,通常是定长记录文件,因此能用较快的速度查找文件的记录。
- 索引文件:通常建立一张索引表,为每一个记录设置一个表项,以加速对于记录的检索速度。索引表本身就是一个定长记录的顺序文件,从而也就可以方便地实现直接存取。
- 索引顺序文件:是上述两种文件方式的结合,它将顺序文件中的所有记录分为若干组(譬如50个记录为一组),并且为顺序文件建立一张索引表,在索引表中为每组中的第一个记录建立一个索引项,其中含有记录的键值和指向该记录的指针。
索引顺序文件可能是最为常见的一种逻辑文件形式。它有效的克服了变长记录文件不便于直接存取的缺点,而且所付出的代价也在可接受的范围之内。
②流式文件(无结构文件):
无结构的流式文件是相关的有序字符的集合(源程序文件、目标代码文件、文档文件等)。
——特点是:
- 流式文件是指文件内的数据不再组成记录,只是依次的一串信息的集合。
- 字符是构成文件的基本单位。
- 读取经常按照长度来读取所需的信息,也可以使用插入的特殊字符作为分界。
- 查找困难、管理简单。
三、文件的物理结构:
文件的物理结构直接影响文件系统的性能。究竟采用哪种存储结构,需要根据存储设备类型、应用目标、响应时间和存储空间等多种因素进行权衡。
磁带文件的物理结构:
——磁带机是一种顺序存取的设备,一切组织在磁带上的文件都采用顺序结构,也就是将一个文件在逻辑上连续的信息存放到存储介质的依次相邻的块上,便形成顺序结构,磁带上的每个文件都有文件头标、文件信息和文件尾标三个组成部分。

磁盘文件的物理结构:
①顺序文件/连续文件:
——定义:将一个文件中逻辑上连续的信息存放到磁盘上的依次相邻的块上便形成顺序结构,这类文件叫顺序文件,又称连续文件。
——优点:顺序访问容易、速度快。
——缺点:要求有连续的存储空间、必须事先知道文件的长度。
②链接文件:
——定义:顺序的逻辑记录被存放在不连续的磁盘块上,用指针把这些磁盘块按逻辑记录的顺序链接起来,则形成了文件的链接结构,链接结构的文件称为“链接文件”或“串联文件” 。
——特性:采取离散分配方式,从而消除了外部碎片,故可显著地提高辅存空间的利用率,且也无需事先知道文件的长度。磁盘上的所有空闲块都可以被利用。
——优点:消除了外部碎片、显著地提高外存空间的利用率、无需事先知道文件的长度 、插入删除记录容易。
——缺点:隐式链接,只适合于顺序访问、直接访问低效 、可靠性较差 ;显式连接,不能支持高效地直接存取、存放链接指针的FAT表会占用较大的内存空间。
分类:
- 隐式链接:在每个盘块中含有一个指向下一个盘块的指针。

显式链接:把用于链接文件物理块的指针显式地存放在外存的一张链接表即文件分配表(FAT)中。


和FAT表相关的计算:假定磁盘有n块,若2m-1≤n≤2m,则FAT表的每项至少有m位,但多数情况取整字节倍数,有时取半个字节倍数。
计算举例:假定盘块的大小为1KB,硬盘的大小为500MB,采用显示链接分配方式时,该硬盘共有500K个盘块,故FAT中共有500K个表项;如果盘块从1开始编号,为了能保存最大的盘块号500K,该FAT表项最少需要19个比特位,将它扩展为半个字节的整数倍后,可知每个FAT表项需20位,即2.5个字节。因此,FAT需占用的存储空间的大小为:
- 2.5×500K=1250KB。
③索引文件:
——定义:为每个文件分配一个索引块(用来存放索引的物理块),把分配给该文件的所有盘块号都记录在该索引块中,按照这种分配方式存储的文件就是索引文件。
——应用:一级索引、两级索引或多级索引结构。

——优点:支持直接访问,且不会产生外部碎片。
——缺点:索引要花费较多的外存空间。
——混合索引分配方式 :指将多种不同级的索引分配方式结合而形成的一种分配方式,有效且实用。

相关计算题:索引文件的文件最大长度的计算
题目:在UNIX中,其索引结构共有13个地址项,其中10项登记直接地址,1项一级索引,1项二级索引,1项三级索引。假如每个盘块的大小为4KB,一个盘块号占用4字节。计算支持的文件最大长度是多少。
求解:直接地址项登记文件10个盘块,一级索引可登记1K个盘块,二级索引可登记1K×1K=1M个盘块,三级索引可登记1K×1K×1K =1G个盘块,允许文件长度=1G×4KB十1M×4KB十1K×4KB十40KB≥4TB。
④直接文件(散列/Hash):
——定义:在直接存取存储设备上,记录的关键字与其地址之间可以通过某种方式(函数)建立对应关系,利用这种关系实现记录存取的文件称为直接文件。
——“冲突”问题:地址的总数和记录的关键字之间并不存在一一对应的关系,不同的关键字经过变换可能会得到相同的地址。
——解决“冲突”方法:设计出好的变换函数,并且还要求有好的处理冲突的方法。
——优点:存取速度较快,存储空间不必连续,逻辑记录与物理记录之间不存在对应或顺序关系。
——缺点:对冲突的处理需要时间和空间的开销。
设备、文件、存取方法之间的关系:

Ending... ...