文件管理实验
报告
软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载
1、加深对文件,文件系统的理解;
2、加深对目录,目录结构的理解;
3、模拟有关文件操作的常用命令。
1、编写程序完成实验内容;
2、画出程序流程图;
3、撰写实验报告。
1、为DOS系统设计一个简单的二级文件系统。 2、实现下列命令(至少两个)。
DELETE 删除文件
CLOSE 关闭文件
READ 读文件(显示出读的文件的内容)
WRITE 写文件(对原文件改写或添加内容,并显示修改后的文件内容)
文件是指由创建者所定义的、具有文件名的一组相关元素的集合,可分为有结构文件和无结构文
件两种。在有结构的文件中,文件由若干个相关记录组成;而无结构文件则被看成是一个字符流。文
件在文件系统中是一个最大的数据单位,它描述了一个对象集。一个文件必须要有一个文件名,它通
常是由一串ASCII码或(和)汉字构成的。用户利用文件名来访问文件。
文件系统分为三个层次,其最底层是对象及其属性;中间层是对对象进行操纵和管理的软件集合;
最高层是文件系统提供给用户的接口。 其模型如图5.1所示:
图5.1 文件系统模型 1)
文件管理系统管理的对象有:? 文件。它作为文件管理的直接对象。? 目录。为了方便用户对文件的存取和检索,在文件系统中必须配置目录,每个目录项中,必须含有文件名及该文件所在的物
理地址(或指针)。对目录的组织和管理是方便用户和提高对文件存取速度的关键。? 磁盘(磁带)存储空间。文件和目录必定占用存储空间,对这部分空间的有效管理,不仅能提高外存的利用率,而且能
提高对文件的存取速度。
2)
这是文件管理系统的核心部分。文件系统的功能大多是在这一层实现的,其中包括: 对文件存储空间的管理、对文件目录的管理、用于将文件的逻辑地址转换为物理地址的机制、对文件读和写的管
理,以及对文件的共享与保护等功能。
3)
为方便用户使用文件系统,文件系统通常向用户提供两种类型的接口:
(1) 命令接口。 这是指作为用户与文件系统交互的接口。 用户可通过键盘终端键入命令,取得
文件系统的服务。
(2) 程序接口。这是指作为用户程序与文件系统的接口。用户程序可通过系统调用来取得文件系
统的服务。
通常,在现代计算机系统中,都要存储大量的文件。为了能对这些文件实施有效的管理,必须对
它们加以妥善组织,这主要是通过文件目录实现的。文件目录也是一种数据结构,用于标识系统中的
文件及其物理地址,供检索时使用。
对目录管理的要求如下:
(1) 实现“按名存取”,即用户只须向系统提供所需访问文件的名字,便能快速准确地找到指定文
件在外存上的存储位置。这是目录管理中最基本的功能,也是文件系统向用户提供的最基本的服务。
(2) 提高对目录的检索速度。通过合理地组织目录结构的方法,可加快对目录的检索速度,从而
提高对文件的存取速度。这是在设计一个大、中型文件系统时所追求的主要目标。
(3) 文件共享。在多用户系统中,应允许多个用户共享一个文件。这样就须在外存中只保留一份
该文件的副本,供不同用户使用,以节省大量的存储空间,并方便用户和提高文件利用率。
(4) 允许文件重名。系统应允许不同用户对不同文件采用相同的名字,以便于用户按照自己的习
惯给文件命名和使用文件。
1)
这是最简单的目录结构。在整个文件系统中只建立一张目录表,每个文件占一个目录项,目录项
中含文件名、文件扩展名、文件长度、文件类型、文件物理地址以及其它文件属性。此外,为表明每
个目录项是否空闲,又设置了一个状态位。单级目录如图5.2所示。
文件名 物理地址 文件说明 状态位
文件名1
文件名2
…
图5.2 单级目录结构
每当要建立一个新文件时,必须先检索所有的目录项,以保证新文件名在目录中是惟一的。然后
再从目录表中找出一个空白目录项,填入新文件的文件名及其它说明信息,并置状态位为1。删除文件时,先从目录中找到该文件的目录项,回收该文件所占用的存储空间,然后再清除该目录项。
单级目录的优点是简单且能实现目录管理的基本功能——按名存取,但却存在下述一些缺点:
(1) 查找速度慢。对于稍具规模的文件系统,会拥有数目可观的目录项,致使为找到一个指定的
目录项要花费较多的时间。对于一个具有N个目录项的单级目录,为检索出一个目录项,平均需查
找N/2个目录项。
(2) 不允许重名。在一个目录表中的所有文件,都不能与另一个文件有相同的名字。然而,重名
问题在多道程序环境下却又是难以避免的;即使在单用户环境下,当文件数超过数百个时,也难于记
忆。
(3) 不便于实现文件共享。通常,每个用户都有自己的名字空间或命名习惯。因此,应当允许不
同用户使用不同的文件名来访问同一个文件。然而,单级目录却要求所有用户都用同一个名字来访问
同一文件。简言之,单级目录只能满足对目录管理的四点要求中的第一点, 因而,它只能适用于单用户环境。
2
为了克服单级目录所存在的缺点,可以为每一个用户建立一个单独的用户文件目录UFD(User File Directory)。这些文件目录具有相似的结构,它由用户所有文件的文件控制块组成。此外,在系统
中再建立一个主文件目录MFD(Master File Directory);在主文件目录中,每个用户目录文件都占有一
个目录项,其目录项中包括用户名和指向该用户目录文件的指针。如图5.3所示,图中的主目录中示出了三个用户名,即Wang、Zhang和Gao。
Wangó???????AlphaAlpha用户名指向子目录指针 TestTestWang
Zhang
GaoZhangó??????? ReportReport
TestTest
Gaoó???????
BetaBeta DeviceDeviceMisxMisx
图5.3 两级目录结构
在两级目录结构中,如果用户希望有自己的用户文件目录UFD,可以请求系统为自己建立一个
用户文件目录;如果自己不再需要UFD,也可以请求系统管理员将它撤消。在有了UFD后,用户可以根据自己的需要创建新文件。每当此时,OS只需检查该用户的UFD,判定在该UFD中是否已有同名的另一个文件。若有,用户必须为新文件重新命名;若无,便在UFD中建立一个新目录项,将新文件名及其有关属性填入目录项中,并置其状态位为“1”。当用户要删除一个文件时,OS也只需查找该用户的UFD,从中找出指定文件的目录项, 在回收该文件所占用的存储空间后,将该目录项删
除。
两级目录结构基本上克服了单级目录的缺点,并具有以下优点:
(1) 提高了检索目录的速度。如果在主目录中有n个子目录,每个用户目录最多为m个目录项,则为查找一指定的目录项,最多只需检索n + m个目录项。但如果是采用单级目录结构,则最多需检
索n × m个目录项。假定n = m,可以看出,采用两级目录可使检索效率提高n/2倍。
(2) 在不同的用户目录中,可以使用相同的文件名。只要在用户自己的UFD中,每一个文件名都是惟一的。例如,用户Wang可以用Test来命名自己的一个测试文件;而用户Zhang则可用Test来命名自己的一个并不同于Wang的Test的测试文件。
(3) 不同用户还可使用不同的文件名来访问系统中的同一个共享文件。采用两级目录结构也存在
一些问题。该结构虽然能有效地将多个用户隔开,在各用户之间完全无关时,这种隔离是一个优点;
但当多个用户之间要相互合作去完成一个大任务,且一用户又需去访问其他用户的文件时,这种隔离
便成为一个缺点,因为这种隔离会使诸用户之间不便于共享文件。
3
对于大型文件系统,通常采用三级或三级以上的目录结构,以提高对目录的检索速度和文件系统
的性能。多级目录结构又称为树型目录结构,主目录在这里被称为根目录,把数据文件称为树叶,其
它的目录均作为树的结点。图 5.4示出了多级目录结构。图中,用方框代表目录文件,圆圈代表数据
文件。在该树型目录结构中,主(根)目录中有三个用户的总目录项A、B和C。在B项所指出的B用
户的总目录B中,又包括三个分目录F、E和D,其中每个分目录中又包含多个文件。如B目录中的
F分目录中,包含J和N两个文件。为了提高文件系统的灵活性,应允许在一个目录文件中的目录项
既是作为目录文件的FCB,又是数据文件的FCB,这一信息可用目录项中的一位来指示。例如,在
图5.4中,用户A的总目录中,目录项A是目录文件的FCB,而目录项B和D则是数据文件的FCB。
1ABC
2ABD3FED4GA
8967
5AC
1011a
12JNK13JMK14AHF
b15161718192021
图5.4 多级目录结构
一、
WindowsXP和CV++6.0集成开发环境