第5章文件管理综述_第1页
第5章文件管理综述_第2页
第5章文件管理综述_第3页
第5章文件管理综述_第4页
第5章文件管理综述_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章文件管理5.1文件和文件系统5.2文件的存储介质5.3文件的存取方式5.4文件目录5.5文件的组织5.6硬盘存储空间的管理5.7基本文件操作及其使用5.8文件的安全性5.1文件和文件系统——文件

用户作业中用到的源程序、目标程序、数据、各种语言的编译程序都是在逻辑上独立的具有完整意义的信息集合。我们把逻辑上具有完整意义的信息集合称为文件。每个文件都要用一个名字作标识,称为文件名。例如,一个源程序、一个目标程序、一批数据、一个编译程序以及各种实用程序都可自成一个文件。每个文件可用由字符和数字组成的“字符数字串”作为文件名,如Al、BC、F2G34等。一个文件可以是一系列的二进制数、字符或记录,它们的含义和命名都由文件的建立者定义。一个文件被命名后,就可以被独立处理。文件系统在管理文件时还要识别和区分文件的类型。如果是文件系统所确认的文件类型,则可根据类型对文件进行合理的操作。通常,可把文件类型包含在文件名中。例如,Windows操作系统中的文件名由两部分组成:文件名和扩展名,其中扩展名有“COM”(可执行的二进制代码文件)、“EXE”(可执行的代码文件、“BAT”(可执行的批处理文件)和“SYS”(系统文件)等。文件的分类(按用途分类)文件的分类(按保护分类)文件的分类(按存放时限分类)文件的分类(按文件组织形式分类)文件的分类(按文件的物理结构分类)文件的分类(按文件的逻辑存储结构分类)文件的分类(按文件中的数据形式分类)文件的分类(UNIX的文件类型)5.1文件和文件系统——文件系统夹文件系统对文件统一管理,目的是方便用户且保证文件的安全可靠。面向用户,文件系统主要是实现“按名存取”。为此,文件系统应由如下一些部分组成:

(1)文件目录文件目录是实现按名存取的一种手段。对用户要求建立的每一个新文件都要把与该文件有关的一些属性登记在文件目录中。用户要求读一个文件时,应从文件目录中查找指定文件是否存在,并核对是否有权使用。一个好的目录结构应既能方便检索,又能保证文件的安全。

(2)文件的组织用户按信息的使用和处理方式来组织文件。把用户组织好的文件保存到存储介质上的工作是由文件系统来完成的,这样可以减轻用户的负担。文件系统要从系统效率和方便检索的角度来考虑如何保存文件。通常文件在存储介质上可以有多种组织形式。

(3)文件存储空间的管理把文件保存到存储介质上时,必须要记住哪些存储空间已经被占用,哪些存储空间是空闲的。文件只能保存到空闲的存储空间中,否则会破坏已保存的信息。当文件因没有必要再保留而被删除时,该文件所占的存储空间应成为空闲空间。

5.1文件和文件系统——文件系统(4)文件操作为了保证文件系统能正确地存储和检索文件,系统规定了在一个文件上可执行的操作,这些可执行的操作统称为文件操作。文件系统提供的基本文件操作有建立文件、打开文件、读文件、写文件、关闭文件和删除文件等。文件操作是文件系统提供给用户使用文件的一组接口。用户调用文件操作提出对文件的使用要求。(5)文件的安全措施在多道程序设计系统中,有些文件是可以共享的,如编译程序、库文件。实现文件共享既可节省文件的存放空间,又可减少传送文件的时间,但必须对文件采取安全保护措施。既要防止有意或无意地破坏文件,又要不让他人剽窃文件。5.2文件的存储介质用来记录信息的磁带、硬磁盘组、软磁盘片、光盘、卡片等称为存储介质。目前大量使用的文件存储介质是磁盘和磁带。

卷和块:

存储介质的物理单位为“卷”,如一盘磁带、一张软盘、一个磁盘组都可以称为一个卷。根据卷中的文件数,可分为单文件卷、多文件卷、多卷文件和多卷多文件。存储介质上由连续的信息所组成的区域称为块,块是存储设备与主存储器之间进行信息交换的物理单位。一般情况下,块的长度在32~4096B之间。在MS_DOS和UNIX系统中,磁盘块的长度均为512B。如图为磁带上块的划分示意。5.2文件的存储介质

磁盘机是一种按地址直接存取的存储设备。它把信息记录在盘片上。每个盘片有正反两面。若干个盘片可组成一个盘组。盘组中的盘片都被固定在一根轴上,沿一个方向高速旋转。每个盘面有一个读写磁头。所有的读写磁头都被固定在唯一的移动臂上同时移动。把所有的读写磁头按从上到下的次序进行编号,称其为磁头号。在磁头位置下的各个盘面上的磁道在同一个圆柱面上,我们称这些磁道组成了一个柱面。每个盘面上有许多磁道,按由外向里的顺序编号。移动臂可移动读写磁头访问所有的磁道。当移动臂移到某一位置时,所有的读写磁头都在同一柱面上,我们把盘面上磁道的编号作为柱面号。每个盘面被划分成若干相等的扇区,每个扇区中的各个磁道都是图5—12盘组结构示意可存放相等字节数的一个块,沿与磁盘旋转相反的方向给各扇区编号,称为扇区号。所以,磁盘存储空间中的每一块的位置可以由三个参数决定,它们是柱面号、磁头号、扇区号。每个参数均从“O”开始编号。为了减少移动臂移动花费的时间,存放信息时,不是按盘面上的磁道顺序存放满一个盘面后再存放到下一个盘面上,而是按柱面存放,同一柱面上的磁道放满后,再放到下一个柱面上。存取信息时按给定的柱面号、磁头号、扇区号,先由磁盘机根据柱面号控制移动臂做机械的横向运动,带动所有的读写磁头到达指定柱面,由于每次只允许一个磁头进行读或写,所以必须再按磁头号确定信息所在的盘面,然后等到待访问的扇区旋转到读写磁头下时,由指定的磁头进行存取。5.2文件的存储介质5.3文件的存取方式

从对文件信息的存取次序考虑,存取方式可以分成两种:顺序存取和随机存取。

顺序存取是指对文件中的信息按顺序依次进行读写的存取方式。

随机存取是指对文件按任意的次序随机地读写的存取方式。采用哪种存取方式,主要取决于两个方面的因素:

(1)与文件的使用方式有关文件的性质决定了文件的使用,也就决定了存取方式的选择。例如,一个源程序文件,它由一连串的顺序字符组成,编译程序在对源程序进行编译时,必须按字符顺序进行存取。又如,要对一个文件进行编辑时,也总是按照顺序存取的方式进行。但是对于数据库的访问,经常要采取随机存取方式。例如,对于职工的工资文件、学生成绩档案文件等,应允许方便地查找任何一个职工的工资情况和任何一个学生的学习成绩。于是应选择随机存取方式。

5.3文件的存取方式(2)与存储介质的特性有关目前常用的存储设备是磁带机和磁盘机。磁带机是一种适合顺序存取的存储设备。它总是从磁头的当前位置开始读写磁带上的信息。当磁头读了第i块的信息后,走过其后的间隙就到达了第i+1块的位置。当磁带机继续工作时,一定是读写第H一1块的信息。所以对存储在磁带上的文件,一般均采用顺序存取的方式。如果想随机地读磁带上的某一块信息,则必须让磁头先定位到磁带的始端,然后才能正确定位到指定块的位置。例如,为了读第100块上的信息,就必须让磁头从头开始走过99个间隙,才能读到第100块上的信息。这样花费在定位上的时间就非常多,影响系统效率。因此对组织在磁带上的文件很少采用随机存取方式。磁盘机是一种可按指定的块地址进行信息存取的设备。磁盘机上的每一个块都有确定的位置和一个唯一的地址。磁盘机能根据给定的地址带动读写磁头到达指定的柱面后,让擀定的磁头存取指定扇区上的信息。所以磁盘机能随机读写磁盘机上任何一块的信息,具有随机存取功能。于是对存储在磁盘上的文件,既可采取顺序存取方式,又可采用随机存取方式。但是在建立文件时,应定义好存取方式,使用文件时必须与定义好的存取方式一致。5.4文件目录文件目录用于检索文件的,它是文件系统实现按名存取的重要手段。文件目录由若干目录项组成,每一个目录项记录一个文件的有关的信息。一般来说,目录项应包含如下内容:(1)有关文件存取控制的信息例如,用户名,文件名,文件的类型,文件属性(可读写、只能读、只可执行等)。(2)有关文件结构的信息

例如,文件的逻辑结构,文件的物理结构,记录个数,文件在存储介质上位置。(3)有关文件管理的信息

例如,文件的建立日期,文件被修改的日期,文件保留期限,记账信息。有了文件目录后,当用户要求使用某个文件时,文件系统顺序查找目录项并比较文件名,就可找到指定文件的目录项,根据该目录项中给出的有关信息可对使用权限等工作进行核对,并读出文件供用户使用。因此,文件目录的组织和管理应便于检索和防止冲突。

5.4文件目录——一级目录一级目录是最简单的文件目录结构。这种目录结构是把一卷存储介质上的所有文件都登记在一个文件目录中。一级目录结构简单,管理方便。每当建立一个新文件时,就在文件目录中增加一个目录项。每当删去一个文件时,就在文件目录中抹去该文件的目录项。一级目录结构要求在文件目录中登记的各个文件都有不同的文件名。如果有重名,则在进行按名存取时就可能出错。对一个用户来说,当要为一个新文件命名时,必须记住原有文件的文件名,对自己的所有文件都应定义成不同的文件名。一个用户是可以做到将自己的所有文件都定义成不同的名字,但在多道程序设计系统中,若要求所有的用户定义的文件名都不相同是很困难的。所以一级目录结构一般只适用于微型计算机的单用户系统。5.4文件目录——二级目录结构

一级目录的主要问题是:当不同的用户定义了相同的文件名时,会引起文件的混淆。解决重名问题的一种办法是采用二级目录结构或多级目录结构。二级目录结构是为每个用户设置一张目录表,称为用户文件目录。用户文件目录为本用户的每一个文件设置一个目录项。再用一张总的目录表来登记各个用户的目录表存放地址,这张总的目录表称为主文件目录。当用户需要访问某个文件时,系统根据用户名从主文件目录中找出该用户的文件目录的存放地址,然后根据该地址找到该用户的文件目录,再按指定的文件名查这张用户文件目录表,从用户文件目录表中找出对应的目录项就可找到文件存放的物理位置。5.4文件目录——二级目录结构示意图5.4文件目录——树型目录结构

有的文件系统允许用户为自己的不同类型的文件建立子目录,再把子目录登记在用户文件目录中。同样地,又可把子目录中的文件细分后建立再下一级的目录。这样就逐渐形成了多层次的目录,称为多级目录结构。在UNIX系统和Windows系统中都采用了多级目录结构。这种目录结构像一棵倒置的有根树,故也称为树形目录结构。在树形目录结构中,每一个节点都是一个目录或一个文件,主文件目录是树根,常常称它为根目录。允许用户在根目录下建立子目录和组织文件,子目录可以是多层次的,就像是树枝。最末一个节点是文件就像是树叶。

在树形目录结构中,根目录或子目录中的目录项可能指向文件,也可能指向下一级子目录。由于每个目录项都有相同的形式,那么怎样才能区分出它指向的是文件还是子目录呢?这可以在目录项中设置一个二进制位,用该位的值O或1来区分所指向的是文件还是子目录。5.4文件目录——树型目录结构5.4文件目录——树型目录结构

在树形目录结构中,每一个文件都有一个从根到叶的路径。要访问一个文件时,必须指出文件所在的路径名。路径名可以由从根目录开始到该文件的通路上所有各级子目录名及该文件名顺序拼起来组成,各子目录名与文件名之间用“\”隔开,称为绝对路径。例如,在上图结构中,访问文件f1和f7时的绝对路径名分别为:\A\A1\f1和\C\C1\C12\f7。但每次都从根目录开始搜索文件需耗费很多时间。事实上,用户在一段时间内会经常访问一个子目录下的文件,因此在采用树形目录结构的系统中引入了当前目录的概念。每个用户都可把某级目录设置为当前工作目录。当要访问文件时,就可从当前目录开始设置路径,称为相对路径。用相对路径可缩短搜索路径,提高搜索速度。例如,当前目录是C1,则要访问文件f7时可用如下的相对路径:C1\C12\f7

用户总是使用指定的路径名请求存取文件。如果文件就在当前目录中,则存取文件时只需要指出文件名,文件系统就在当前目录中寻找该文件。如果文件不在当前目录中,但在当前目录的下级目录中,则可用相对路径指定文件,文件系统就从当前目录开始沿着指定的路径名检索各级目录,从而确定文件所在的物理位置。5.4文件目录——文件目录的管理

文件系统要管理许多用户的大量文件,因此系统中的文件目录也很庞大。如果把文件目录都存放在主存储器中,则会占去大量的主存空间。事实上,任何一个用户在一段时间里只使用少数文件,故可以只把当前正在使用的文件目录存放在主存储器中。由于文件目录也是在逻辑上有完整意义的信息集合,因此为了对文件目录进行管理,通常把文件目录也作为文件保存在存储介质上。由文件目录组成的文件称为目录文件。目录文件可以像其他文件一样进行读写等处理。当需要时可把目录文件中的有关文件目录读到主存储器进行检索或修改,也可把主存储器中的文件目录写回到存储介质上的目录文件中。所以文件系统可以根据用户的要求从目录文件中找出用户的当前目录,把当前目录读入主存储器。这样既不占用太多的主存空间,又可减少搜索目录的时间。5.5文件的组织

文件的组织是指文件的构造方式。由用户构造的文件称为文件的逻辑结构(或称逻辑文件),存储介质上的文件构造方式称为文件的物理结构(或称物理文件)。用户按逻辑结构使用文件,文件系统按物理结构管理文件。当用户请求读写文件时,文件系统必须实现文件的逻辑结构与物理结构之间的转换。5.5文件的组织——文件的逻辑结构

(1)流式文件流式文件是指用户对文件内的信息不再划分可独立的单位,整个文件是由依次的一串信息组成。

(2)记录式文件记录式文件是由若干个逻辑记录组成的文件。逻辑记录是用户对文件内的信息按逻辑上独立的含义再划分后的信息单位,简称记录。一个逻辑文件由若干个逻辑记录组成,每个逻辑记录又由若干个数据项组成。但在记录式文件中,逻辑记录(而不是数据项)是文件内可以独立存取的最小信息单位。为正确和快速地存取逻辑记录,可把记录中的数据项设置为主键和次键,能惟一地标志某个逻辑记录的数据项称为记录的主键,其他数据项都称做次键。5.5文件的组织——文件的存储结构

文件的物理结构和存储设备的类型与用户采用的存取方式有关。把存放在存储介质上的文件称为物理文件。目前,用户主要采用磁盘与磁带存取文件。因此,我们将专门讨论记录文件在磁带和磁盘上的组织结构。(1)磁带上文件的组织形式5.5文件的组织——磁盘文件的组织(1)顺序结构顺序结构把一个文件逻辑上连续的信息存放到磁盘上相邻的块中,或者说,顺序结构是一种逻辑记录顺序与磁盘块的顺序相一致的文件结构。具有顺序结构的文件称为顺序文件或连续文件。采用顺序结构的文件顺序存取时速度比较快,但不适用于随机存取。采用顺序结构时存在一些问题:磁盘存储空间利用率不高,对输出到磁盘上的文件很难估计需要分配多少个连续的磁盘块,且影响文件的扩展。5.5文件的组织——磁盘文件的组织(2)链接结构把顺序的逻辑记录存放在不连续的磁盘块上,并用指针把这些磁盘块按逻辑记录的顺序链接起来,便形成文件的链接结构。具有这种结构的文件称为链接文件或串联文件。链接结构解决了顺序结构中存在的问题。采用顺序存取时,链接结构的效率很高,但采用随机存取则效率很低。

链接结构的特点是每个磁盘块中必须留出若干单元用来存放磁盘块之间的链接指针。文件信息占用的第一个磁盘块的块号登记在文件目录中,链接结构中每个磁盘块中的链接指针指出了文件信息存放的下一个磁盘块的块号。通常,当某块中链接指针为“O”时,表示文件信息至本块结束。图5—8指出了文件的链接结构。5.5文件的组织——磁盘文件的组织(链接结构)5.5文件的组织——磁盘文件的组织(链接结构)5.5文件的组织——磁盘文件的组织(索引结构)

索引结构为每个文件建立一张索引表,并把指示每个逻辑记录存放位置的指针集中在索引表中。采用索引结构的文件称为索引文件。索引结构既适合顺序存取记录,又可方便地按任意次序随机地存取记录,且容易实现记录的增、删和插入。但是,采用索引结构将会增加索引表占用的空间和读写索引表的时间。5.5文件的组织5.5文件的组织——记录的成组与分解逻辑记录的大小往往与存储介质分块的大小不一致,因此,当逻辑记录比块长小得多时,一个块中仅放一个记录就会造成空间的浪费,为此可采用记录成组和分解技术解决这个问题。

1.记录的成组把若干个逻辑记录合成一组存人一个块中的工作称为记录的成组,每个块中的逻辑记录个数称为“块因子”。进行成组操作时必须使用主存缓冲区,缓冲区的长度等于最大逻辑记录长度乘以成组的块因子。记录的成组不仅可以提高存储空间的利用率,而且还可以减少启动外设的次数,提高系统的工作效率。在记录式文件中,若每个记录的长度一致,则这种记录格式就称为定长记录格式;若记录长度不相同,则称为变长记录格式。在实现记录成组时,需要在文件目录或记录块中说明记录的长度和块因子信息。

2.记录的分解从一组逻辑记录中把一个逻辑记录分离出来的操作称为记录的分解。记录的成组和分解都要付出一定的代价,即要设立主存缓冲区,并在操作系统中增加成组和分解操作的功能。5.5文件的组织——记录的成组与分解示例

假设磁带的记录密度为1600bpi(字节/英寸),每个逻辑记录长为200B,块与块之间的间隔为O.5英寸,请回答下列问题:①不采用成组操作时,磁带空间的利用率是多少?②采用块因子6作成组操作时,磁带空间的利用率为百分之几?③为了使磁带空间的利用率大于80%,采用记录成组时其块因子至少为多少?

①间隔=1600×0.5=800(字符)200÷(200+800)=20%这说明不采用成组操作时磁带空间的利用率为20%。②(200×6)÷(200×6+800)=60%采用成组操作时磁带空间的利用率为60%。③设块因子为X,则200X÷(200X+800)>O.8250X>200X+80050X>800

X>16说明块因子至少为17。5.6磁盘空间的存储管理

文件系统对磁盘空间进行管理,当用户存储文件时就要为文件分配空间,当用户删除文件时又要回收文件占用的存储空间。实现存储空间的分配和回收取决于空闲块的管理方法。常用的管理方法有位示图、空闲块表和空闲块链。

1、位示图位示图中的每一位与一个磁盘块相对应,指示磁盘空间的使用情况。一般情况下,位示图中的“1”表示相应块已被占用;“0”表示对应块是空闲块。磁盘空间的块数=每盘面扇区数×每柱面磁道数×柱面数位示图常用若干字组成,假设字长为n位,由m个字组成位示图,则:

m×n=磁盘空间的块数

5.6磁盘空间的存储管理——位示图法

假定一个盘组共有l00个柱面,编号为O~99。每个柱面上有8个磁道,编号为0~7。每个盘面分成4个扇区,编号为O~3。则整个磁盘空间共有4×8×100=3200个存储块。如果用字长为32位的字来构造位示图,共需100个字,如图所示:第i个字的第j位对应的块号为:块号=i×32(字长)+j5.6磁盘空间的存储管理——位示图法确定空闲块地址的通用公式为:

块号=字号×字长+位号柱面号=[块号/柱面上的块数]

磁头号=[(块号mod柱面上的块数)/盘面上的扇区数]

扇区号=(块号mod柱面上的块数)mod盘面上的扇区数归还一块时,寻找位示图中位置的通用公式为:块号=柱面号×柱面上的块数+磁头号×盘面上的扇区数+扇区号字号=[块号/字长]

位号=块号mod字长5.6磁盘空间的存储管理——位示图法示例假设一个磁盘组共有100个柱面,每柱面有8个磁道,每个盘面被分成4个扇区。若逻辑记录的大小与扇区大小一致,柱面、磁道和扇区的编号均从“O”开始,现用字长为16位的200个字(第0字~第199字)组成位示图来指示磁盘空间的使用情况。请问:①文件系统发现位示图中第15字第7位为O而准备分配给某一记录时,该记录会存放到磁盘的哪一块上?此块的物理位置(柱面号、磁头号和扇区号)如何?②删除文件时要归还存储空间,第56柱面第6磁道第3扇区的块就变成了空闲块,此时,位示图中第几字第几位应由1改为O?5.6磁盘空间的存储管理——位示图法示例5.6磁盘空间的存储管理——空闲块表法系统为每个磁盘建立一张空闲块表,表中每个登记项记录一组连续空闲块的首块号和块数。空闲块数为“0”的登记项为无效登记项。这种管理方式适合采用顺序结构的文件。存储文件时从空闲块表中找一组连续的空闲块,删除文件时把归还的一组连续块登记到空闲块表中。空闲块的分配和回收算法类似主存储器的可变分区管理方式中采用的最先适应、最优适应和最坏适应算法。同样地,对分配和归还的块要进行块号与柱面号、磁头号、扇区号之间的换算。5.6磁盘空间的存储管理——空闲块链法

把所有的磁盘空闲块用指针连接在一起构成空闲块链。分配空间时从链中取出空闲块,归还空间时把归还块加入到链中。这种管理方式不需要外加专门记录空闲块分配情况的表格。

对磁盘空闲块可用单块连接法连接起来。每一个空闲块中都设置一个指向另一个空闲块的指针,最后一个空闲块中的指针为“0”。这样,所有空闲块就构成了一个空闲块链。系统设置一个链首指针,指向链中的第一个空闲块。分配一块时,根据链首指针把链头的一块分配给申请者,并修改链首指针,使其指向后继的空闲块。归还一块时,把归还块加入到链头,并使链首指针指向归还块。这种方法效率较低,每分配一块时都要启动磁盘读出空闲块后才能取得其中的指针,把该指针作为链首指针。每归还一块时也要启动磁盘把原链首指针写到归还块中,新链首指针指向归还块。为了分配或回收一块,增加了启动磁盘进行读写的工作,这是非常麻烦和费时的。作为改进,可把空闲块分成若干组,把指向一组中各空闲块的指针集中在一起,这样既可方便查找,又可减少为修改指针而启动磁盘的次数。UNIX系统就是采用空闲块成组连接的方法。5.7基本文件操作及其使用——基本操作用户可以通过访管指令调用文件操作功能模块,实现对文件的存取要求。(1)建立文件在用户把一个新文件存放到存储介质上之前,首先要调用文件系统的“建立文件”操作。(2)打开文件用户要求使用已经存放在存储介质上的文件时,首先要调用文件系统的打开文件操作,该操作将在系统设置的“已打开文件表

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论