首页 理论教育 操作系统原理:文件与文件系统的作用与功能

操作系统原理:文件与文件系统的作用与功能

时间:2023-10-17 理论教育 版权反馈
【摘要】:文件是操作系统进行信息管理的最小单位。指文件的所有者,文件的所有者通常是文件的创建者。对于每个I/O设备,我们用一个文件来表示,需要与该设备发生数据交换时就用该文件来替代,通过块文件,I/O与文件系统就统一了。从系统角度来看,文件系统是对外存文件存储空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。文件系统的主要目的是实现对文件的按名存取,它具有以下6种功能。

操作系统原理:文件与文件系统的作用与功能

1.文件

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

(1)保存性。文件被存储在某种存储介质上长期保存并多次使用。

(2)按名存取。每个文件都有唯一的文件名,并通过文件名来存取文件的信息,而无须知道文件在外存的具体存放位置。

(3)一组信息集合。文件的内容(即信息)可以是一个源程序、一个可执行的二进制程序、一篇文章、一首歌曲、一段视频、一张图片等。

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

文件包括的范围非常广泛,系统或者用户都可以将具有一定独立功能的程序模块、一组数据或一组文字命名为一个文件。如用户的一个C源程序、系统中的库程序、一批待加工的数据、一篇文章、一首歌曲、一段视频、一张图片等都可以构成一个文件。某些慢速的字符设备,因为设备上传输的信息可以视为一组顺序字符序列,所以也可以视为一个文件,称为设备文件。此外,多数文件都有一个扩展名,并通过扩展名来表示文件的类别。

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

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

(1)文件名。文件最基本的属性。

(2)文件类型。如源文件、目标文件、执行文件、普通文件、目录文件、设备文件等。

(3)文件长度。指文件当前的数据长度,也可能是最大允许长度。长度单位通常是字节,也可以是物理块。

(4)文件主。指文件的所有者,文件的所有者通常是文件的创建者。

(5)文件权限。文件权限用于对文件进行访问控制,通常赋予文件的权限有只读、读写、执行等。一般文件所有者对自己的文件拥有全部权限,而其他用户对文件只有部分权限。

(6)文件的物理位置。指文件在存储介质上存放的物理位置。

(7)文件时间。包括文件创建时间、文件最后一次修改时间、文件最后一次执行时间、文件最后一次读取时间等。

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

(1)目录。是记录文件的文件,即它的内容是有关其他文件的信息。

(2)一般文件(用于保存数据)。根据其内容的组织方式,一般文件可分为两种。

①文本文件。存放没有经过处理的数据,即以ASCII码表示的数据,任何编辑器都可以打开这种文件。

②二进制文件。经过编码的文件,普通编辑器不能打开,必须用专门的应用软件才能打开。

(3)块文件(用于I/O设备)。具体来说块文件模拟的是I/O,即为I/O提供了一个抽象。对于每个I/O设备,我们用一个文件来表示,需要与该设备发生数据交换时就用该文件来替代,通过块文件,I/O与文件系统就统一了。

2.文件系统

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

(1)文件存储空间的管理。文件系统的基本任务是为文件分配和回收外存空间,即记住哪些外存空间已被占用,哪些外存空间是空闲的。并通过对外存空间进行有效管理,来提高外存的利用率和文件系统的运行速度。(www.xing528.com)

(2)文件名到外存物理地址的映射。文件系统对用户透明地实现了文件名到文件存储的物理地址映射。有了这种映射关系,用户就无须记住信息在外存上具体的存放位置,也无须考虑如何将信息存放到外存介质上,以及如何实现在外存介质上的具体查找,只要给出文件名和操作要求就可以访问文件,从而实现“按名存取”。

(3)文件和目录的操作管理。文件系统有相应的程序模块来实现文件和目录的建立、删除、打开、读、写、修改、关闭、检索等操作功能。

(4)文件的组织与存取。当用户要求保存文件时,文件系统必须把逻辑文件转换成物理文件;当用户要求读文件时,文件系统必须把物理文件转换成逻辑文件,并且能够实现文件的顺序存取和随机存取。

(5)实现文件的共享、保护和保密。文件系统提供的文件共享功能,使多个用户可以同名或异名使用同一个文件。文件系统提供的安全、保护和保密措施,可以防止对文件信息的有意或无意破坏。

(6)文件和目录的用户接口。文件系统为用户提供了操作文件和目录的接口,使用户能够方便地对文件和目录进行建立、检索、删除之类的各种操作。

3.文件系统的层次模型

操作系统的层次化设计方法是由E.W.Dijkstra于1967年提出的,1968年Madnick将这一思想引入文件系统,它不针对某个具体的操作系统,而介绍文件系统的一般工作原理。即从用户发出文件存取要求开始,通过用户接口进入文件系统,直到存取外存上信息的实现。采用层次化方法设计出来的文件系统,可以根据系统所提供的功能来对系统进行划分,下层为上层提供服务,上层使用下层的功能,即上、下层之间无须了解对方的内部结构和实现方法,只需关心各自的接口。这样,使得文件系统结构清晰,易于设计也易于维护。

如图7-1所示,Madnick把文件划分为以下8层。

图7-1 文件系统的层次模型

(1)第1层是用户接口层。该层根据用户对文件的存取要求,在进行必要的语法检查后,把系统调用转换成统一格式的内部系统调用,并进入符号文件系统。

(2)第2层是符号文件系统层。该层将第1层提供的文件名转换成系统内部唯一标识,其主要工作是根据文件路径名来搜索文件目录,以找到相应文件名的表项,进而找到该文件在系统内部唯一标识,然后将其作为参数传递给第3层。

(3)第3层是基本文件系统层。根据系统内部唯一标识把该文件说明信息调入内存中的活动文件表中(系统专门为当前要访问的文件设置的,这样对该文件的访问都可以通过内存的活动文件表进行,而不需要再到磁盘上去查找有关该文件的目录信息),避免以后查找同一表项时需要再次读盘。

(4)第4层是存取控制验证层。该层从活动文件表中获得存取控制信息,根据用户访问要求验证存取权限,判定本次文件操作的合法性,实现文件的存取、共享、保护和保密。若操作非法,则本次文件操作请求失败。

(5)第5层是逻辑文件系统层。该层根据文件说明中的相关信息,将文件记录的逻辑地址转换成相应文件存储设备上的块地址。对于字符流式的文件,只需把用户指定的逻辑地址按块长计算出相对块号;对于记录式文件,先把记录号转换成逻辑地址,再将其转换成相对块号。

(6)第6层是物理文件系统层。该层根据活动文件表相应目录项中的物理结构信息,将相对块号及块内相对地址,转换为外存上的物理块号和块内地址(外存物理地址)。

(7)第7层是文件外存分配模块和外存设备策略模块。该层负责磁盘存储空间的管理,包括分配、释放和回收等。

(8)第8层是I/O控制系统。该层具体执行I/O操作,实现文件信息的存取,是文件系统与设备管理程序的接口层。

4.虚拟文件系统

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

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

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

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

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

我要反馈