6.2.4 文件目录

为了有效地管理文件,必须对它们加以适当组织,这可以通过目录来实现。因此,可以说文件系统主要是通过文件目录来实现文件管理的。

文件系统的“按名存取”功能,使得用户只要给出文件的符号名,就能方便地对外存上的文件进行存取,而不必关心文件的具体物理地址。实现文件名到文件物理地址的映射,主要环节是检索文件目录。

文件目录是一种保存文件说明信息的数据结构,记录了文件的名字、长度、文件存放的物理地址、文件属性、建立时间、日期等。文件目录由若干个目录项组成,用于标志系统中的文件及其物理地址,供检索使用。

每个文件目录都对应一张表,称为文件目录表。现代操作系统采用“目录文件”技术,将每张文件目录表看做是一个文件,即每个目录对应一个文件,其内容就是该目录的文件目录表,表中每一行称为一个目录项,每个目录项对应其中一个文件的FCB。因此,可以说文件目录是将所有的FCB组织在一起构成的,是文件控制块的有序集合。

1.文件目录管理的主要目的

1)实现“按名存取”,即用户只需提供文件名,就可对文件进行存取,这是目录管理最基本的功能,也是文件系统向用户提供的最基本的服务。

2)提高对目录的检索速度,合理地组织目录结构,可以加快对目录的检索速度,从而加快了对文件的存取速度。

3)实现文件的共享,在多个用户系统中,允许多个用户共享一个文件,这样在外存中只需保留一份该文件的副本,供不同的用户使用,可以节省大量的存储空间并方便用户。

4)允许文件重名,允许不同用户对不同的文件取相同的名字,即用户可以按照自己的习惯命名和使用文件。

文件目录管理解决了文件重名问题和文件共享问题,降低查找时间,但增加了系统开销。

2.文件目录与目录文件

(1)文件目录

文件与文件控制块是一一对应的。文件控制块的有序集合构成文件目录,每个目录项是一个文件控制块。给定一个文件名,通过查找文件目录便可找到该文件对应的目录项(即FCB)。

(2)目录文件

文件目录是需要长期保存的,为了实现文件目录的管理,通常将文件目录以文件的形式保存在外存空间,这个文件就称为目录文件。目录文件是长度固定的记录式文件。

3.文件目录的组织形式

(1)单级目录结构

单级目录结构是最简单的目录结构。为整个文件系统建立一张目录表,每个文件占用其中的一项来存放文件的说明信息,当系统初启或需要时,将其调入内存,然后就可以实现文件的按名存取、修改、删除等操作。其缺点也是显而易见的:各文件说明处于平等地位,只能按连续结构或顺序结构存放,因此文件名与文件一一对应,文件名不能重名。此外,文件平均检索时间长,限制了对文件的共享。如图6-3所示。

6.2.4 文件目录 - 图1

图 6-3 单级目录结构

(2)二级目录结构

二级目录结构如图6-4所示。此结构中,将目录分成两级:主文件目录(Master File Directory,MFD)和用户文件目录(User File Directory,UFD)。在二级目录结构中,仅设立一个MFD,并为每个用户建立一个UFD。MFD中记录了所有用户的用户名及其UFD的相关信息,每个用户的UFD记录了该用户所有文件的信息,UFD的用户名和物理位置由MFD中的对应目录项指出。

6.2.4 文件目录 - 图2

图 6-4 二级目录结构

二级目录结构实现了文件从名字空间到外存地址空间的映射:用户名→文件名→文件内容。该结构解决了文件的重名问题和文件共享问题,查找时间降低,增加了系统开销。

(3)多级目录结构

多级目录结构又称树形目录结构。在这种结构中,每个文件都由根目录开始的一串符号名唯一确定,实际上说明了在文件目录中寻找该文件的一条路径。

在多级目录结构中,除了最低一级的物理块中装有文件信息外,其他每一级目录中存放的都是下一级目录或文件的说明信息。由此形成层次关系,最高层为根目录,最底层为文件。多级目录结构如图6-5所示。

6.2.4 文件目录 - 图3

图 6-5 多级目录结构

多级目录结构的优点如下:

·层次清楚,便于文件分类。

·解决了文件的重名。

·提高了查找搜索的效率。

·便于进行存取权限的控制,不同的目录可以规定不同的存取权限。

但是,由于查找一个文件按路径名逐层检查,而每个文件都放在外存,多次访问磁盘会影响查找速度。

(4)图形目录结构

树形目录结构便于实现文件分类,但不便于实现文件共享。图形目录结构允许若干目录共同描述或共同指向被共享的子目录或文件。图形目录结构又称为无环图目录结构,是在树形目录结构的基础上增加了一些指向同一节点的有向边,从而使整个目录构成一个有向无环图。