9.1 文件系统的概念

9.1.1 引言

计算机的重要作用就在于它能够以极快的速度处理大量的信息。而要进行数据(信息)的处理,必须同时要解决信息的组织与存取的问题。信息的组织又分为逻辑组织与物理组织,前者成为今天计算机学科中的一门基础学科——数据结构,后者与存取方法紧密结合并由操作系统的信息管理逐步发展到数据库系统。

计算机处理的大量信息可驻留在各类存储介质上,其中有些信息需要长期保存,有些只是临时产生,当场用一下。在早期的计算机系统中,用户想要存取这些介质上的信息是一项相当复杂、极为琐碎的工作,它不仅要按照辅存设备的物理地址去安排信息的存放位置,组织相应的 I/O 指令,而且还要确切记住信息在存储介质上的分布情况。如果稍一疏忽,就会破坏已保存的信息,造成无法挽回的严重后果。尤其是在多道程序出现之后,用户想自己去协调、管理那些可为多个用户所其享的磁鼓、磁盘等大量存储介质上的信息,实际上是不可能的,也是不允许的。这是因为,同时运行的几道程序是独立编写、随机搭配的,人们事先无法预测这些程序之间的信息是如何分布的。况且,为了信息的安全和保密起见,每个用户也不希望别人干预、过问他的信息。所以,对信息的管理应交给系统来负责。现代操作系统提供了文件系统——存取和管理信息的机构,它利用大容量辅存设备作为存放文件的存储器——文件存储器。文件系统为用户提供一种简单的、统一的存取和管理信息的方法。因此,配置了文件系统后,用户就可以通过文件名字,使用直观的文件操作命令,按照信息的逻辑关系去存取他所需要的信息,从而使用户摆脱了存储介质的特性和 I/O 指令的细节。从这个意义上讲,文件系统提供了用户与外存的接口。

另外,操作系统本身就是一种重要的系统资源,而且往往是一个庞大的资源,占用几百 K 甚至几千 K 字节的存储量。因此,它们不能全部常驻主存。因为主存空间总是有限的,且应主要留作存放用户程序用,所以要求把相当一部分操作系统的程序模块暂存放在直接存取的磁盘存储器或其他辅存上,只有在用户需要用到某部分功能时,才把相应的一组操作系统的例程调入主存。由此可见,操作系统也需要信息管理的功能。因此,一个操作系统的信息管理部分不仅为用户作业所需要,同时也为操作系统自身的其他部分所需要。文件系统将把存储、检索、共享和保护文件的手段提供给操作系统和用户,以达到进一步方便用户、提高资源利用率的目的。

9.1.2 文件

(一)文件的定义及分类

1 .文件

文件管理系统是通过把它所管理的信息(程序和数据)组织成一个个文件的方式来实现其管理的。文件是在逻辑上具有完整意义的信息集合,它有一个名字以供标识,文件名是以字母开头的字母数字串。文件是由文件系统存储和加工的逻辑部件。

每一个信息形成一个信息项,它是一个字节或一个字符。由于大多数计算机系统一般使用 8 位字节,因此在字符集中可以表示为 2 8 即 256 个可能的字符。数 3 值字符是 0 到 9 中任何一个十进制数字。字母字符可以是字母表中任何一个,即 A~Z (大写字母)或 a~z (小写母)中的任何一个。空格常常看作是字母字符。计算机字符集中的其他字符称作特殊字符。例如:美元符号( $ ),冒号(:),斜线( / ),星号( * )等。

一组相关的字符称作一个域。数字域只包含数字。字母域只包含字母与空格(空格是字符集中完全合法的字符)。字母域数字域只包含数字、字母和空格。包含任意特殊籽符的域简称字符域。例如:“ 123 ”是数字域,“ TEST ”是字母域,“ 15WINDOR DRIVE ”是字母数字域,“ $ 578.34 ” 是字符域。

构成文件的基本单位可以是信息项(单个字符或字节),也可以是记录。这样,又可以提出关于文件的两个定义:

①文件是具有符号名的信息(数据)项的集合。

②文件是个有符号名的记录的集合。

一般来说,构成文件的基本单位之间无结构意义,只有顺序关系。一个文件可以代表范围很广的对象。系统和用户可以将具有一定独立功能的程序模块和数据集合命名成为一个文件。例如:用户贩一个 FORTRAN 源程序,一个目标代码,一批初始数据,以及系统中的库程序和系统程序(编译程序、汇编程序、连结程序)都可命名为文件。另外,还可以为每个学生的情况建立一个文件,其中的记录可以是上述学生记录的内容。

顺便指出,一些慢速字符设备也被看作是一个“文件”,这是因为这些设备传输的信息均可看作是一组顺序出现的字符字列。严格说来,这些字符设备传输的信息可看成是一个顺序组织的文件。在 UNIX 系统中,每个设备有一个像文件名一样的名字,作为设备特殊文件来处理。

引入文件后,用户就可以用统一的观点去看待和处理驻留在各种存储介质上的信息。即用户可用虚拟 I/O 指令(即文件命令)读“下一张”卡片,在打印机上印出“下一行”字符,或者在磁鼓、磁带、磁盘上存取某个文件的一个记录等,而无需去考虑保存其文件的设备之上差异。

2 .文件的分类

文件按其性质和用途大致可以分为三类:

①系统文件——有关操作系统及其他系统程序的信息所组成的文件。这类文件、对用户不直接开放,只能通过操作系统调用为用户服务。

②程序库文件——由标准子程序及常用的应用程序所组成的文件。这类文件允许用户调用,但不允许用户修改。

③用户文件——由用户委托给系统保存的文件。如源程序、目标程序、原始数据、计算结果等组成的文件。

为了安全可靠,每个文件可被规定保护级别。文件按保护级别可分为四类:

①执行文件——用户可将文件当作程序执行,但既不能阅读,也不能修改。

②只读文件——允许文件所有者或授权者读出或执行,但不准写入。

③读写文件——限定文件所有者或授权者可以读写,但禁止未核准写入。

④不保护文件——所有用户都可以存取。

按文件流向,它又可以分以下三类:

①输入文件——例如读卡机或纸带输入机上的文件,只能读入,所以它们是输入文件。

②输出文件——例如打印机、穿孔机上的文件,只能写出,所以它们是输出文件。

③输入输出文件——在磁盘、磁鼓、磁带上的文件,既可读又可写,它们是输入输出文件。

根据文件的存取方法或文件的物理结构,还可以对它们作出多种分类。这些分类将在以下有关节段中介绍。

(二)文件名及文件属性

1 .文件名

每个文件都有区别于其他文件特征。从最低限度上讲,这个区别是没有任何两个文件具有相同的名字(在同一用户目录中)。每个文件有一个给定的名字,这个名字由串来描述且由文件内容来表示。在大多数微型计算机系统中,文件名的长度一般为 1 ~ 12 个字符。现在,有些系统(如 Windows 系统)已采用长文件名。一些有效的文件名或设备名的例子是: fortcom 表示 fortran 编译程序; testdata 表示一组用户测试数据。

2 .文件扩展

文件名通常还附加 2 ~3 个字符作为文件扩展,用来表示文件的使用特征。文件扩展可以由用户自由地确定,然而,一般操作系统只识别一些标准设置。如通用的文件扩展是:

扩展

意义

dr

目录或子目录文件

fr

fortran 源程序

ol

覆盖库存程序

sv

执行程序

lb

用户程序库

文件扩展属于文件名的一部分,例如:

forthran.lb 表示 frotran 库;

system.sv 表示一个可执行的操作系统程序。

3 .文件属性

一个文件可通过其类型、保护和缓冲方案的属性来识别。文件控制块 FCB 的 FILEAATIRIBUTES 字中的各位即为文件属性设置。属性字母及其意义如下:

属性

意义

属性

意义

P

永久文件

W

写保护

D

目录文件

R

读保护

C

连续文件

O

标准缓冲输出

S

随机文件

I

标准缓冲输入

L

串联文件

X

只能执行

E

联接记录

 

 

9.1.3 文件系统

文件系统是操作系统中负责管理和存取文件信息的软件机构,它由管理文件所需的数据结构(如目录表、文件控制块、存储分配表)和相应的管理软件,以及访问文件的一组操作所组成。

从系统角度看,文件系统对文件存储器的存储空间进行组织、分配、负责文件的存储并对存入的文件进行保护、检索的系统。从用户角度看,文件系统主要是实现“按名存取”。就是说,当用户要求系统保存一个已命名的文件时,文件系统根据一定的格式把他的文件存放到文件存储器适当的地方;当用户要使用文件时,系统根据他给出的文件名,能够从文件存储器找到所要的文件,或文件中某一个记录。因此,文件系统的用户(包括操作系统本身及一般用户),只要知道他们的文件名字就可以存取文件中的信息,而无需知道这些文件究竟存放在什么地方。

一般而言,文件都存储在辅存设备上,如磁带和磁盘上。因此,文件系统首先要解决的问题是有效地分配文件存储器的空间。通常,一个文件存储器上的物理空间是以块(又称物理块)进行分配的。块区可以是定长的或变长的。对于分页系统,块区的大小一般仅和页的大小有关而同文件中的记录大小无关。

文件系统要解决的第二个问题是提供一种组织数据的方法。存储数据的海量存储器具有固一的物理特性。数据在辅存设备上的排布构成了文件的物理结构,但它对于程序的使用是不相适应的。用户看到的应该是逻辑文件结构。文件系统负责实现逻辑特性到物理特性的转 换,这实质上是实现了“按名存取”的功能。

文件系统要解决的第三个问题是提供合适的存取方法,以适应各种不同的应用。例如,用户不仅可以顺序地对文件进行操作,而且可以任意地对文件中的记录进行操作。即系统应提供顺序存取和直接存取方法。

最后,文件系统应提供一组服务,使用户能处理数据,以执行所需要的操作。这些操作包括创建文件、撤消文件、组织文件、读文件、写文件、传输文件和控制文件的访问权限等。另外,文件系统还允许许多个用户共享一个文件副本。这一服务目的是在辅存设备上只保留一个单一的使用程序和数据的副本,以提高设备利用率。这时,文件保护尤为重要,系统必须提供对文件的保护措施。

文件系统的功能可以很简单,也可以很复杂。它们的特性依赖于各种不同的应用环境。对于一个通用目的系统而言,下述基本要求地需要的:

①每个用户可以执行创建、删除、读写文件等命令。

②用户应能在慎密的控制状态下,互相合作共享彼此的文件。

③共享文件的机制应提供各种类型的、受到控制的访问,例如读、写、执行或者它们的组合。

④用户应能以最适合于各自的应用方式构造他们的文件。

⑤实现辅助存储空间的自动管理,使文件在辅助存储器中的分配位置与它的用户无关。

⑥允许用符号名访问文件。

⑦必须提供后备与复原能力以防止有意或无意地毁损信息。

⑧文件系统对在敏感环境中需要保密与私用的数据提供加密和解密的能力,例如电子拨款系统、犯罪记录系统、医疗记录系统。这样可使信息只供授权的用户(即掌握解密键的人)使用。

⑨最重要的是,文件系统应给用户提供友好的接口。它应给用户以数据和施加在它上面的功能的逻辑视图而不是物理视图。用户应不必考虑存储数据的特定设备,以及在这些设备上的数据形式和进出这些设备的数据传送的物理方法。
 
 Copyright © 2007 华中师范大学计算机科学系  All Rights Reserved