1、7.1 文件和文件系统文件系统的管理功能是将其管理的程序和数据通过组织为一系列文件的方式实现的。而文件则是指具有文件名的若干相关元素的集合。元素通常是记录,而记录又是一组有意义的数据项的集合。可见,基于文件系统的概念,可以把数据组成分为数据项、记录和文件三级。7.1.1 数据项、记录和文件1.数据项在文件系统中,数据项是最低级的数据组织形式,可把它分成以下两种类型:(1)基本数据项。(2)组合数据项。2.记录记录是一组相关数据项的集合,用于描述一个对象在某方面的属性。一个记录应包含哪些数据项,取决于需要描述对象的哪个方面。由于对象所处的环境不同可把他作为不同的对象。3.文件文件是指由创建者所定
2、义的、具有文件名的一组相关元素的集合,可分为有结构文件和无结构文件两种。图7-1 文件、记录和数据项之间的层次关系7.1.2 文件名和类型1.文件名和扩展名(1)文件名。(2)扩展名。2.文件类型1)按用途分类根据文件的性质和用途的不同,可将文件分为三类:(1)系统文件,这是指由系统软件构成的文件。大多数的系统文件只允许用户调用,但不允许用户去读,更不允许修改;有的系统文件不直接对用户开放。(2)用户文件,指由用户的源代码、目标文件、可执行文件或数据等所构成的文件。用户将这些文件委托给系统保管。(3)库文件,这是由标准子例程及常用的例程等所构成的文件。这类文件允许用户调用,但不允许修改。2)按
3、文件中数据的形式分类按这种方式分类,也可把文件分为三类:(1)源文件,这是指由源程序和数据构成的文件。通常,由终端或输入设备输入的源程序和数据所形成的文件都属于源文件。它通常是由ASCII码或汉字所组成的。(2)目标文件,这是指把源程序经过编译程序编译过,但尚未经过链接程序链接的目标代码所构成的文件。目标文件所使用的后缀名是“.obj”。(3)可执行文件,这是指把编译后所产生的目标代码经过链接程序链接后所形成的文件。其后缀名是.exe。3)按存取控制属性分类根据系统管理员或用户所规定的存取控制属性,可将文件分为三类:(1)只执行文件,该类文件只允许被核准的用户调用执行,不允许读和写。(2)只读
4、文件,该类文件只允许文件主及被核准的用户去读,不允许写。(3)读写文件,这是指允许文件主和被核准的用户去读或写的文件。4)按组织形式和处理方式分类根据文件的组织形式和系统对其处理方式的不同,可将文件分为三类:(1)普通文件。(2)目录文件。(3)特殊文件。7.1.3 文件系统的层次结构如图7-2所示,文件系统的模型可分为三个层次:最底层是对象及其属性,中间层是对对象进行操纵和管理的软件集合,最高层是文件系统提供给用户的接口。图7-2 文件系统模型1.对象及其属性文件管理系统管理的对象如下:(1)文件。(2)目录。(3)磁盘(磁带)存储空间。2.对对象操纵和管理的软件集合该层是文件管理系统的核心
5、部分。文件系统的功能大多是在这一层实现的,其中包括有:对文件存储空间的管理;对文件目录的管理;用于将文件的逻辑地址转换为物理地址的机制;对文件读和写的管理;对文件的共享与保护等功能。在实现这些功能时,OS通常都采取了层次组织结构,即在每一层中都包含了一定的功能,处于某个层次的软件,只能调用同层或更低层次中的功能模块。3.文件系统的接口为方便用户的使用,文件系统以接口的形式提供了一组对文件和记录操作的方法和手段。通常是下面两种类型的接口:(1)命令接口,是指作为用户与文件系统直接交互的接口,用户可通过键盘终端键入命令取得文件系统的服务。(2)程序接口,是指作为用户程序与文件系统的接口,用户程序可
6、通过系统调用取得文件系统的服务,例如,用于创建文件的系统调用Creat,用于打开一个文件的系统调用Open等。7.1.4 文件操作 1.最基本的文件操作最基本的文件操作包含下述内容:(1)创建文件。(2)删除文件。(3)读文件。(4)写文件。(5)设置文件的读/写位置。2.文件的“打开”和“关闭”操作当用户要求对一个文件实施多次读/写或其它操作时,每次都要从检索目录开始。为了避免多次重复地检索目录,在大多数OS中都引入了“打开”(open)这一文件系统调用,当用户第一次请求对某文件进行操作时,须先利用open系统调用将该文件打开。3.其它文件操作OS为用户都提供了一系列文件操作的系统调用,其中最常用的一类是有关对文件属性的操作,即允许用户直接设置和获得文件的属性,如改变已存文件的文件名、改变文件的拥有者(文件主)、改变对文件的访问权,以及查询文件的状态(包括文件类型、大小和拥有者以及对文件的访问权等)。另一类是有关目录的操作,如创建一个目录,删除一个目录,改变当前目录和工作目录等。此外,还有用于实现文件共享的系统调用,以及用于对文件系统进行操作的系统调用等。