首页 理论教育 计算机操作系统文件目录管理及二级文件目录结构

计算机操作系统文件目录管理及二级文件目录结构

时间:2023-11-06 理论教育 版权反馈
【摘要】:文件目录表由长度为32字节的文件目录项组成,文件目录项0称目录头,记录有关文件目录表的信息,其他每个文件目录项又称文件控制块。图7-12是二级文件目录结构示意。

计算机操作系统文件目录管理及二级文件目录结构

文件系统的基本功能之一就是负责文件目录的建立、维护和检索,要求编排的目录便于查找、防止冲突,目录的检索方便迅速。文件目录本身也是一种数据结构,用于标识系统中的文件及其物理地址,供检索时使用。文件系统中目录的功能如下:

(1)实现“按名存取”,即用户只须向系统提供所需访问文件的名字,便能快速准确地找到指定文件在外存上的存储位置。这是目录管理中最基本的功能,也是文件系统向用户提供的最基本的服务。

(2)提高对目录的检索速度。通过合理地组织目录结构的方法,可加快对目录的检索速度,从而提高对文件的存取速度。这是在设计一个大中型文件系统时所追求的主要目标。

(3)文件共享。在多用户系统中,应允许多个用户共享一个文件。这样就须在外存中只保留一份该文件的副本,供不同用户使用,以节省大量的存储空间,并方便用户和提高文件利用率。

(4)允许文件重名。系统应允许不同用户对不同文件采用相同的名字,以便用户按照自己习惯给文件命名和使用文件。

7.4.1 文件的组成

为了能对一个文件进行正确的存取,必须为文件设置用于描述和控制文件的数据结构,称之为“文件控制块”。文件管理程序可借助于文件控制块中的信息,对文件施以各种操作。文件与文件控制块一一对应,而人们把文件控制块的有序集合称为文件目录,即一个文件控制块就是一个文件目录项。通常一个文件目录也被看作是一个文件,称为目录文件。

1.文件控制块

为了能对系统中的大量文件施以有效的管理,在文件控制块中,通常应含有三类信息,即基本信息、存取控制信息及使用信息。

(1)基本信息类。基本信息类包括:

①文件名,指用于标识一个文件的符号名。在每个系统中,每一个文件都必须有唯一的名字,用户利用该名字进行存取。

②文件物理位置,指文件在外存上的存储位置,它包括存放文件的设备名、文件在外存上的起始盘块号、指示文件所占用的盘块数或字节数的文件长度

③文件逻辑结构,指示文件是流式文件还是记录式文件、记录数;文件是定长记录还是变长记录等。

④文件的物理结构,指示文件是顺序文件还是链接文件或索引文件。

(2)存取控制信息类。存取控制信息类包括文件主的存取权限、核准用户的存取权限以及一般用户的存取权限。

(3)使用信息类。使用信息类包括文件的建立日期和时间、文件上一次修改的日期和时间及当前使用信息(这项信息包括当前已打开该文件的进程数、是否被其他进程锁住、文件在内存中是否已被修改但尚未拷贝到盘上)。应该说明,对于不同OS的文件系统,由于功能不同,可能只含有上述信息中的某些部分。

2.索引结点

文件目录通常是存放在磁盘上的,当文件很多时,文件目录可能要占用大量的盘块。在查找目录的过程中,先将存放目录文件的第一个盘块中的目录调入内存,然后把用户所给定的文件名与目录项中的文件名逐一比较。若未找到指定文件,便再将下一个盘块中的目录项调入内存。设目录文件所占用的盘块数为N,按此方法查找,则查找一个目录项平均需要调入盘块(N+1)/2次。假如一个FCB为64 B,盘块大小为1 KB,则每个盘块中只能存放16个FCB;若一个文件目录中共有640个FCB,需要占用40个盘块,故平均查找一个文件需启动磁盘20次。

稍加分析可以发现,在检索目录文件的过程中,只用到了文件名,仅当找到一个目录项(即其中的文件名与指定要查找的文件名相匹配)时,才需要从该目录项中读出该文件的物理地址。而其他一些对该文件进行描述的信息,在检索目录时一概不用。显然,这些信息在检索目录时不需要调入内存。为此,在有的系统中,如UNIX系统,便采用了把文件名与文件描述信息分开的办法,亦即使文件描述信息单独形成一个称为索引结点的数据结构,简称为i结点。在文件目录中的每个目录项仅由文件名和指向该文件所对应的i结点的指针所构成。在UNIX系统中一个目录仅占16个字节,其中14个字节是文件名,2个字节为i结点指针。在1 KB的盘块中可做64个目录项,这样为找到一个文件,可使平均启动磁盘次数减少到原来的1/4,大大节省了系统开销。图7-10示出了UNIX的文件目录项。

(www.xing528.com)

图7-10 UNIX文件目录

7.4.2 文件层次目录

文件目录结构的组织关系到文件系统的存取速度,也关系到文件的共享性和安全性。因此组织好文件的目录是设计好文件系统的重要环节。目前常用的目录结构形式有单级目录、两级目录和多级目录。

图7-11 一级目录结构示意图

1.一级目录结构

最简单的文件目录是一级目录结构,在操作系统中构造一张线性表,与每个文件有关的属性占用一个目录项就成了一级目录结构,如图7-11所示。单用户微型机操作系统CP/M的软盘文件便采用这一结构,每个磁盘上设置一张一级文件目录表,不同磁盘驱动器上的文件目录互不相关。文件目录表由长度为32字节的文件目录项组成,文件目录项0称目录头,记录有关文件目录表的信息,其他每个文件目录项又称文件控制块。文件目录中列出了盘上全部文件的有关信息。CP/M操作系统中文件目录项包括盘号、文件名、扩展名、记录数、存放位置等。

一级文件目录结构存在若干缺点:一是重名问题,它要求文件名和文件之间有一一对应关系,但要在多用户的系统中,由于都使用同一文件目录,一旦文件名用重,就会出现混淆而无法实现“按名存取”。如果人为地限制文件名命名规则,对用户来说又极不方便;二是难以实现文件共享,如果允许不同用户使用不同文件名来共享同一个文件,这在一级目录中是很难实现的,为了解决上述问题,操作系统往往采用二级目录结构,使得每个用户有各自独立的文件目录。

2.二级目录结构

在二级目录中,第一级为主文件目录,它用于管理所有用户文件目录,它的目录项登记了系统接受的用户名字及该用户文件目录的地址。第二级为用户的文件目录,它为该用户的每个文件保存一登记栏,其内容与一级目录的目录项相同。每一用户只允许查看自己的文件目录。图7-12是二级文件目录结构示意。

图7-12 二级目录结构示意图

采用二级目录管理文件时,因为任何文件的存取都通过主文件目录,于是可以检查访问文件者的存取权限,避免一个用户未经授权就存取另一个用户的文件,使用户文件的私有性得到保证,实现了对文件的保密和保护。特别是不同用户具有同名文件时,由于各自有不同的用户文件目录而不会导致混乱。对于文件的共享,原则上只要把对应目录项指向同一物理位置的文件即可。

3.树形目录结构

二级目录的推广形成了多级目录。每一级目录可以是下一级目录的说明,也可以是文件的说明,从而形成了层次文件系统。如图7-13所示,多级目录结构通常采用树形结构,它是一棵倒向的有根树,树根是根目录;从根向下,每一个树枝是一个子目录;而树叶是文件。在采用树形目录结构的文件系统中,要根据用户提供的文件路径名,从根目录开始逐级查找路径名中的各子目录名,用它们作为索引,逐层搜索各个目录文件,最后找到匹配的文件目录项。

树形多级目录有许多优点:较好地反映现实世界中具有层次关系的数据集合和较确切地反映系统内部文件的分支结构;不同文件可以重名,只要它们不位于同一末端的子目录中,易于规定不同层次或子树中文件的不同存取权限,便于文件的保护、保密和共享等。

图7-13 树形目录结构示意图

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈