更新时间:2023-12-24 11:20
在软件工程中,一个目录是指一组名字和值的映射。它允许根据一个给出的名字来查找对应的值,与词典相似。像词典中每一个词也许会有多个词义,在一个目录中,一个名字也许会与多个不同的信息相关联。现在程序和系统大部分都有两级或多级目录。内目录是指两级或多级目录中除第一级目录之外的目录。
内目录是指两级或多级目录中除第一级目录之外的目录。使用内目录主要目的有:1、使每个用户都有自己的目录,管理方便;可以提高检索速度。内目录在计算机中很多地方都有用到,如文件目录,基本分页存储管理方式,和段页式存储管理方式中都有用到内目录。
提高了检索目录的速度。 如果在主目录中有 n 个子目录, 每个用户目录最多为 m 个目录项,则为查找一指定的目录项,最多只需检索 n + m 个目录项。但如果是采用单级目录结构,则最多需检索 n × m 个目录项。假定 n = m,可以看出,采用两级目录可使检索效率提高 n/2 倍。
在不同的用户目录中,可以使用相同的文件名。只要在用户自己的 UFD 中,每一个文件名都是惟一的。例如,用户 Wang 可以用 Test 来命名自己的一个测试文件;而用户Zhang 则可用 Test 来命名自己的一个并不同于 Wang 的 Test 的测试文件。
不同用户还可使用不同的文件名来访问系统中的同一个共享文件。采用两级目录结构也存在一些问题。该结构虽然能有效地将多个用户隔开,在各用户之间完全无关时,这种隔离是一个优点;但当多个用户之间要相互合作去完成一个大任务,且一用户又需去访问其他用户的文件时,这种隔离便成为一个缺点,因为这种隔离会使诸用户之间不便于共享文件。
一个计算机系统中有成千上万个文件,为了便于对文件进行存取和管理,计算机系统建立文件的索引,即文件名和文件物理位置之间的映射关系,这种文件的索引称为文件目录。
文件目录(file directory)为每个文件设立一个表目。文件目录表目至少要包含文件名、文件内部标识、文件的类型、文件存储地址、文件的长度、访问权限、建立时间和访问时间等内容。
文件目录(或称为文件夹)是由文件目录项组成的。文件目录分为一级目录、二级目录和多级目录。多级目录结构也称为树形结构,在多级目录结构中,每一个磁盘有一个根目录,在根目录中可以包含若干子目录和文件,在子目录中不但可以包含文件,而且还可以包含下一级子目录,这样类推下去就构成了多级目录结构。
为了能对这些文件实施有效的管理,必须对它们加以妥善组织,这主要是通过文件目录实现的。文件目录也是一种数据结构,用于标识系统中的文件及其物理地址,供检索时使用。对目录管理的要求如下:
(1) 实现“按名存取” ,即用户只须向系统提供所需访问文件的名字,便能快速准确地找到指定文件在外存上的存储位置。这是目录管理中最基本的功能,也是文件系统向用户提供的最基本的服务。
(2) 提高对目录的检索速度。通过合理地组织目录结构的方法,可加快对目录的检索速度,从而提高对文件的存取速度。这是在设计一个大、中型文件系统时所追求的主要目标。
(3) 文件共享。在多用户系统中,应允许多个用户共享一个文件。这样就须在外存中只保留一份该文件的副本,供不同用户使用,以节省大量的存储空间,并方便用户和提高文件利用率。
(4) 允许文件重名。系统应允许不同用户对不同文件采用相同的名字,以便于用户按照自己的习惯给文件命名和使用文件。
单级目录是指在整个文件系统中只建立一张目录表,每个文件占一个目录项,目录项中含文件名、文件扩展名、文件长度、文件类型、文件物理地址以及其它文件属性。具有查找速度慢、不允许重名、不便于实现文件共享等缺点。
为了克服单级目录所存在的缺点,可以为每一个用户建立一个单独的用户文件目录UFD(User File Directory)。这些文件目录具有相似的结构,它由用户所有文件的文件控制块组成。 此外, 在系统中再建立一个主文件目录 MFD(Master File Directory); 在主文件目录中,每个用户目录文件都占有一个目录项,其目录项中包括用户名和指向该用户目录文件的指针。这里的用户文件目录即是内目录。
段页式系统的基本原理,是分段和分页原理的结合,即先将用户程序分成若干个段,再把每个段分成若干个页,并为每一个段赋予一个段名。在段页式系统中,其地址结构由段号、段内页号及页内地址三部分所组成。在段页式系统中既有段表,也有页表。页表相当于内目录。