Faster, Higher, Stronger
更快,更高,更强

文件系统的基本概念

一、引入文件系统的原因

在现代操作系统引入文件系统主要基于以下4方面原因。

  1. 用户直接存取外存中的信息,这个操作过于复杂。
  2. 多任务共享资源的出现。
  3. 出于对信息安全和保密的考虑。
  4. 操作系统自身的需要。

因此,现代操作系统基恩上都有文件系统,使用户按文件名存取文件信息更加方便。

二、文件与文件系统

2.1、文件

文件是信息的一种组织形式,是存储在外存中具有文件名的一组相关信息的集合,如源程序、数据、目标程序等。文件由创建者定义,任何一段信息,只要给定一个文件名并将其存储在某一存储介质上就形成了一个文件,它包含两个方面的信息:一是本身的数据信息;二是附加的组织与管理信息。文件是操作系统进行信息管理的最小单位。文件主要有以下三个特点。

  1. 保存性。
  2. 按名存取。
  3. 一组信息集合。

一个文件通常由若干称为逻辑记录的较小单位组成,记录是一个有意义的信息集合,是对文件进行存取的基本单位。一个文件的各个记录可以是等长的也可以是不等长的。最简单的情况下一个记录只有一个字符(视为字符流文件)。所以文件的记录是一个可编址的最小信息单位,其意义由用户或文件的创建者定义。文件应保存在一种存储介质上,如磁带、磁盘、光盘、优盘等。

某些慢速的字符设备,因为设备上传输的信息可以视为一组顺序字符序列,所以也可以视为一个文件,称为设备文件。此外,多数文件都有一个扩展名,并通过扩展名来表示文件的类别。

用户看到的文件称为逻辑文件,逻辑文件的内容(数据)可由用户直接处理,它是独立于文件的物理特性。逻辑文件是以用户观点并按用户“思维”把文件抽象为一种逻辑结构清晰 、使用简便的文件形式,供用户存取、检索和加工文件中的信息。物理文件是按某种存储结构实际存储在外存上的文件,它与外存介质的存储性能有关,操作系统按文件的物理结构管理文件并与外存设备打交道。

文件是文件系统管理的基本对象。用户通过文件名来访问和区分文件。每个文件都有自己的属性,常见的文件属性包括:

  1. 文件名。文件的最基本的属性。
  2. 文件类型。
  3. 文件长度。
  4. 文件主。指文件的所有者。
  5. 文件权限。
  6. 文件的物理位置。
  7. 文件时间。

大部分操作系统支持多种文件。根据文件的内容是用户数据还是文件系统本身的数据将文件分为以下三种:

  1. 目录。是记录文件的文件,即它的内容是有关其他文件的信息。
  2. 一般文件(用于保存数据)。根据其内容的组织方式,一般文件可分为两种:①文本文件。存放没有经过处理的数据,即以ASCII码表示的数据,任何编辑器都可以打开这种文件。②二进制文件。经过编码的文件,普通编辑器不能打开,必须用专门的应用软件才能打开。
  3. 块文件(用于I/O设备)。具体来说块文件模拟的是I/O,即为I/O提供了一个抽象。对于每个I/O设备,我们用一个文件来表示,需要与该设备发生数据交换时就用该文件来替代,通过块文件,I/O与文件系统就统一了。

2.2、文件系统

文件系统是操作系统中负责管理和存取文件的程序模块,它由实现文件管理的有关软件、实施文件管理所需的数据结构(如文件控制块、存储分配表等)以及被管理的文件组成。从系统角度来看,文件系统是对外存文件存储空间的组织和分配,负责文件存储并的存入的文件进行保护和检索的系统。文件系统的主要目的是实现对文件的按名存取,它具有以下6种功能。

  1. 文件存储空间的管理。
  2. 文件名到外存物理地址的映射。
  3. 文件和目录的操作管理。
  4. 文件的组织与存取。
  5. 实现文件的共享、保护和保密。
  6. 文件和目录的用户接口。

2.3、文件系统的层次模型

Madnick将文件系统划分为以下8层。

  1. 第1层是用户接口层。
  2. 第2层是符号文件系统层。
  3. 第3层是基本文件系统层。
  4. 第4层是存取控制验证层。
  5. 第5层是逻辑文件系统层。
  6. 第6层是物理文件系统层。
  7. 第7层是文件外存模块和外存设备策略模块。
  8. 第8层是I/O控制系统。

2.4、虚拟文件系统

传统的操作系统中只设计了一种文件系统,因此只能支持一种类型的文件系统,但随着信息技术的快速发展,对文件系统提出了新的要求。如要求在UNIX系统中支持费UNIX文件系统,要求在Windows系统中支持非Windows文件系统,要求现代操作系统能够支持分布式文件系统和网络文件系统,甚至一些用户希望能定制自己的文件系统。解决上述问题有多种方案,其中成文事实上工业标准的是虚拟文件系统。

虚拟文件系统的主要设计思想体现在两个层次上,即虚拟层和实现层。虚拟层是在对多个文件系统的共同特性进行抽象的基础上形成的,并在此层次上定义用户的一致性接口;实现层使用类似开关表技术进行文件系统转接,实现各文件系统的具体细节,包含文件系统实现的各种设施,各种数据结构以及对文件的操作函数。

虚拟文件系统要实现以下目标:1、应同时支持多种文件系统;2、系统中可以安装多个文件系统,它们应与传统的单一文件系统没有区别,用户的使用接口不变;3、对网络共享文件提供完全支持,即访问远程节点上的文件系统应与访问本地节点的文件系统一直。4、支持新开发出的文件系统,并以模块方式加到操作系统中。

严格地说,虚拟文件系统并不是一种实际存在的文件系统,它只存在于内存张红,不存在与外存空间,在操作系统启动时建立,在系统关闭时消亡。

三、文件操作

文件系统将用户的逻辑文件按一定的组织方式,转换成物理文件存放到外存(如磁盘)上。也就是说,文件系统为每个文件与该文件在外村上的存放位置建立了对应关系。为了方便使用,文件系统通常向用户提供来各种调用接口,用户通过这些接口对文件进行各种操作。当用户使用文件时,文件系统通过用户给出的文件名查找出该文件在外存上的存放位置,并读出文件的内容。有的文件操作系统是对文件自身的操作,如建立文件、打开文件、关闭文件、读写文件及设置文件权限等,有的文件操作是对记录的操作(最简单的记录可以是一个字符),如查找文件中的字符串、插入和删除等。

在多用户环境下,为了文件安全和保护起见,操作系统为每个文件建立和维护关于文件访问权限等方面的信息。因此文件系统提供了操作文件的命令接口、图形接口和程序接口(系统调用)。用户可以使用命令接口和图形接口直接进行文件操作,或者在程序中通过系统调用实现文件操作。

3.1、文件创建

当用户进程将信息存放到外存上时,需要向系统提供文件名、设备号、文件属性及存取控制信息(文件类型、记录大小、保护级别等),以便建立文件。因此文件系统应完成以下5种功能。

  1. 根据设备号在所选外存设备上建立一个文件目录(即文件控制块FCB),并返回用户一个文件标识,用户在此后的读写操作中可以使用此文件标识。
  2. 将文件名及文件属性等信息填入文件目录。
  3. 调用文件存储空间管理程序为文件分配物理块。
  4. 需要时发出提示装卷信息(如可装卸磁盘、磁带)。
  5. 在内存活动文件表中登记该文件的有关信息。

在某些文件系统中,可以隐含地执行文件建立操作,即系统发现有一批信息呀写入一个尚未建立的文件时,就自动先建立一个临时文件,当用户进程真正写文件时,才将临时文件中的信息写入用户命名的文件中。

3.2、文件打开

使用已经存放在外存(如磁盘)上的文件之前,要通过打开文件操作系统建立起文件与用户之间的联系。打开文件应完成以下三种功能。

  1. 在内存活动文件表中申请一个空表目,用来存放该文件的有关信息。
  2. 根据文件名查找目录文件,将找到的文件目录信息送入内存的文件控制块(FCB)中保存,并在内存活动文件表中登记打开的文件名及其在内存中的FCB地址。若打开的是共享文件则应进行相应处理,比如将共享用户数加1。
  3. 问i爱你定位,卷标处理。文件一旦打开就可以被反复使用直至文件关闭。这样做的优点是每次访问该文件时,无须再查找外存中的目录文件,而直接根据内存中该文件的FCB进行访问,从而减少了查找目录的时间,加快了文件的存取速度。

3.3、文件读写

文件读操作是通过读指针将位于外存中的数据读到内存缓冲区;文件写操作是通过写指针将内存缓冲区中的数据写到外存中。文件打开以后,就可以使用读写文件的系统调用访问文件,要进行文件读写应给出文件名、内存地址、读写字节数等有关信息。读写文件应完成以下4种功能。

  1. 根据文件名从内存活动文件表中找到该文件的文件名及FCB地址。
  2. 按存取控制说明检查本次访问的合法性。
  3. 根据FCB中的文件目录得到该文件的逻辑和物理组织方式、文件存放的外存地址以及文件长度等信息。
  4. 向设备管理发出I/O请求,依据得到的有关信息控制完成数据的传送。

3.4、文件关闭

一旦文件使用完毕应当及时关闭文件,关闭文件操作就是切断该外存文件与内存之间的联系。关闭文件时系统要做的主要工作有以下两项。

  1. 从内存活动文件表中找到该文件的文件名,将当前使用的用户数减1,若减为0则撤销该文件在内存中的FCB,同时撤销内存活动文件表中登记的该文件有关信息。
  2. 若此次打开文件改变了该文件目录项基本信息(在FCB中),则关闭文件时应将改变的信息写回外存目录文件中该文件所对应的目录项(该文件的FCB),以保证及时更新目录文件。

文件关闭之后若要再次访问该文件,则必须将其重新打开。

3.5、文件删除

当一个文件不再使用时,可以向系统提出删除该文件的请求。删除文件时系统要做的工作主要有以下两项。

  1. 从目录文件中找到待删文件的目录项,使之成为空目录项。
  2. 释放文件所占用的外存存储空间。此时,待删文件就被删除。

除上述常用的文件操作外,为了方便用户使用文件,通常文件系统都提供了有关文件操作的系统调用。可将这些系统调用分成若干类,最常用的一类是有关文件属性操作的,即允许用户直接设置和获得文件的属性,如改变已有文件的文件名、改变文件的所有者(文件主)、改变文件的访问权限以及查询文件的状态(包括文件类型、大小和所有者以及对文件的访问权限)等;另一类是有关目录的,如创建一个目录、删除一个目录、改变当前目录和工作目录等。此外,还有用于实现文件共享的系统调用和用于对文件系统进行操作的系统调用等。

要说明的是,许多文件操作可以利用上述基本操作加以组合来实现。如创建一个文件副本的操作可以利用两条基本操作来实现:第一步是利用创建文件的系统调用来创建一个新文件;第二步是将原有文件中的内容写入新文件。

赞(0) 打赏
未经允许不得转载:峰间的云 » 文件系统的基本概念

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏