当前位置:文档之家› 计算机操作系统第七章-文件管理资料

计算机操作系统第七章-文件管理资料

第七章文件管理第一节文件和文件系统一、文件系统的引入1、用户在使用计算机的过程中遇到的有关软件资源的两个基本问题:●产生了新的资源时:怎样长期存放;●使用系统中现有资源时:怎样检索,如何使用;解决的方法:把信息以一种单元--文件--的形式存储在磁盘或其他外部存储介质上。

文件由操作系统来统一管理,包括:文件的结构,命名,存取,使用,保护,以及实现方法。

2、现代OS中引入文件系统的目的●管理系统和用户的软件资源,让用户实现对信息的“按名存取”;●提供信息的存储、检索、更新、共享和文件保护等一系列文件操作,使用户能方便有效地使用和操作文件;●文件系统给用户带来的好处是:使用方便、数据安全、接口统一3、文件系统的功能●统一管理文件的存储空间(外存空间),实施存储空间的分配与回收●实现文件的按名存取:名字空间映射存储空间●实现文件信息的共享,并提供文件的保护和保密措施●向用户提供一个方便使用的接口●系统维护及向用户提供有关信息●提供与I/O的统一接口文件系统在操作系统接口中占的比例最大,用户使用操作系统的感觉在很大程度上取决于对文件系统的使用效果。

二、文件系统中的相关概念1、数据项:构成文件内容的基本单位●基本数据项。

这是用于描述一个对象的某种属性的字符集,是数据组织中可以命名的最小逻辑数据单位,即原子数据,又称为数据元素或字段。

它的命名往往与其属性一致。

●组合数据项。

它是由若干个基本数据项组成的,简称组项。

2、记录:是一组相关数据项的集合,用于描述一个对象在某方面的一组属性。

3、关键字:是能唯一标识一个记录的数据项。

记录的关键字可以不止一个;关键字可以是一个基本数据项,也可以是一个组合数据项。

4、文件:是指由创建者所定义的、具有文件名的一组相关信息的集合,可分为有结构文件和无结构文件两种。

在有结构的文件中,文件由若干个相关记录组成(是记录的序列);而无结构文件则被看成是一个字符(字节)流。

文件是文件系统中一个最大的数据单位,它描述了一个对象集。

图7-1文件、记录和数据项之间的层次关系5、文件的属性:文件具有描述自己各方面特质的----属性,文件的属性主要包括:P7●文件类型。

(可以从不同的角度对文件进行分类)●文件长度。

●文件在外存上的物理位置。

●文件的建立(修改)时间。

6、文件分类(1) 文件分类的目的文件的分类是为了更好地管理和使用,要科学地分门别类,对不同的文件进行不同的管理。

这样,不仅提高了文件的存取速度,对文件的共享和保护也有利。

(2) 文件的分类方法----P10-14●按性质和用途分类●按文件中数据的形式分类●按存取控制属性分类●按组织形式和处理方式分类◆用户在OS界面之上看到的文件分类--P9,还有在图形界面上看到的不同形状的文件图标。

✧按逻辑结构分类✧按物理结构分类7、文件系统●是操作系统中统一管理信息资源(软件)的子系统,管理文件的存储、检索、更新,提供安全可靠的共享和保护手段,并且方便用户使用。

●文件系统包含文件管理程序和被管理的全部文件●是用户与外存的接口。

系统软件为用户提供统一方法,访问存储在物理介质上的信息三、文件系统的层次模型OS的文件系统可以分为三个层次:P16-19●最底层:被管理的对象及其属性;●中间层:对对象进行管理和操作的软件的集合;●最顶层:文件系统的用户接口四、文件操作1、最基本的文件操作(命令):P20-22●创建文件●删除文件●读文件●写文件●截断文件●设置文件的读/写位置2、为了方便用户使用文件,通常,OS都提供了数条有关文件操作的系统调用,可将这些调用分成若干类:●有关对文件属性进行操作的●有关目录的●用于对文件进行操作的●用于实现文件共享和保护的3、关于文件的打开和关闭:P24第二节文件的逻辑结构和内部数据访问方式一、文件组织的两种观点1、用户观点(逻辑结构):研究的是用户思维中的抽象文件,其目的是为用户提供一种结构清晰、使用简便的信息的数据结构。

用户按此结构去存储、检索和加工处理文件内信息。

它独立于文件的物理特性,又称文件组织。

2、实现观点(物理结构):研究的是存储在物理设备介质上的实际文件,即文件在外存上的实际存放形式。

它不仅与存储介质的性能有关,还与采用的外存分配方式有关。

系统按此和外部设备打交道,进行信息的存取。

二、文件逻辑结构的类型1、有结构的(记录式)文件:P27-28记录可以是定长的、可以是变长的。

记录式文件可以组织成:●顺序文件。

●索引文件。

●索引顺序文件。

●直接文件数据文件通常用这种类型来组织。

2、无结构的(流式)文件●流式文件是有一定意义的字符(字节)流。

●信息单元的长度以字节为单位。

对流式文件的访问,采用读写指针来指出下一个要访问的字符。

可以把流式文件看作是记录式文件的一个特例。

●大量的源程序、 可执行文件、 库函数等,所采用的就是无结构的文件形式,即流式文件。

●在UNIX 系统中,所有的文件都被看作是流式文件;即使是有结构文件,也被视为流式文件;文件系统本身不对文件进行内部结构处理。

三、顺序文件1、记录被顺序排列在文件中。

这种顺序可以是记录生成时的先后顺序(串结构,连续结构),也可以是按照某个关键字值的大小,递增或递减排列的顺序(顺序结构)。

顺序文件的记录可以是定长的,也可以是变长的。

L L L LLL 2L 3L 4LL (i +1)L(a) 定长记录文件(b ) 变长记录文件00L 0L 0+1L 1L 0+L 1+2L i∑(L k +1)i -1k =0∑(L k +1)ik =0图 7-3 定长和变长记录文件2、对顺序文件(Sequential File)的读/写操作 顺序读写(顺序访问)●定长记录:读指针rptr----指向下一次读出的记录地址;写指针wptr----指向下一次写入的记录地址。

读完指针做相应修改:rptr+L=>rptr写完指针做相应修改:wptr+L=>wptr●变长记录:每个记录长度存于记录前的单元中。

访问完,rptr+Li=>rptr;wptr+Li=>wptr3、顺序文件的优缺点●顺序文件的最佳应用是对连续的记录进行批量存取时,即每次要读或写一大批记录时,对顺序文件的存取效率是所有逻辑文件中最高的;●此外,也只有顺序文件才能存储在磁带上,并能有效地工作。

◆在交互应用的场合,如果用户要求查找或修改单个记录,系统要逐个地查找诸记录。

这时,顺序文件所表现出来的性能就可能很差,尤其是当文件较大时,情况更为严重。

◆插入或删除一个记录较困难。

四、索引文件1、对于定长记录的顺序文件,如果要查找第i个记录,可直接根据下式计算来获得第i个记录相对于第一个记录首址的地址:A i=i×L算出地址后可以对该记录进行直接访问;另外,如果记录按关键字值大小顺序存放,还可以对记录进行按键访问。

2、对于可变长度记录的顺序文件,要查找其第i 个记录时,须首先顺序访问前面的每个记录,从中获得相应记录的长度L i ,然后才能按下式计算出第i 个记录的首址。

假定在每个记录前用一个字节指明该记录的长度,则 ∑-=+=1i i i i i L A ,这样,变长记录式文件只能顺序访问。

3、索引文件为了对所有的记录式文件都能进行直接访问,给记录式文件建立一张索引表,文件中每个记录,在索引表中有一个表项,存放记录的关键字和地址。

索引表本身是一个定长记录的顺序文件,记录按关键字值的大小顺序存放。

通过查找索引表,找到一个记录的起始地址,来完成对记录的直接访问和按键访问。

索引表逻辑文件图 7-4 索引文件的组织五、索引顺序文件为了缩短索引表的长度,将文件中连续的若干个记录(有相同的关键字值或特征)作为一个记录组。

在为文件建立索引表时,文件中每个记录组,在索引表中有一个表项,存放记录组的关键字和首地址。

索引表本身是一个定长记录的顺序文件。

通过查找索引表,直接找到每组第一个记录的起始地址,组内顺序查找,来完成对记录的访问。

逻辑文件图7-5 索引顺序文件六、直接文件和哈希文件直接文件,可根据给定记录的键值,直接获得该记录的地址。

换言之,记录键值本身就决定了记录的地址。

这种由记录键值到记录地址的换算被称为键值转换(Key to address transformation)。

组织直接文件的关键,在于用什么方法(转换函数)进行从记录键值到地址的转换。

哈希(Hash)文件----一种直接文件:目录表图7-6 Hash文件的逻辑结构七、小结1、文件的逻辑结构(1) 记录式文件●定长的●变长的(2) 流式文件,可以看成定长记录式文件的特例2、记录的组织方式(1) 顺序文件,文件是记录的序列,记录的排列可以是串结构的,也可以是顺序结构的。

顺序文件是文件的基本逻辑结构,所有的文件,都是顺序文件。

●对于定长的记录式文件,可以进行顺序访问,也可以进行直接访问;对于定长的顺序结构的记录式文件还可以进行按键访问。

●对于变长的记录式文件只能进行顺序访问。

(2) 索引文件,为了对所有的文件都能实现直接访问或按键访问、提高文件的访问速度,就为文件建立索引表,登记每个记录的键值或逻辑序号+地址。

文件的索引表是一个定长的记录式文件。

对索引文件中记录的访问,首先根据键值或逻辑序号、用按键访问方式检索索引表,找到记录的地址,再按照地址直接访问记录。

(3) 索引顺序文件,为了缩短索引表的长度,将顺序文件中的记录按一定的规则分组。

建立索引表,登记每组第一个记录的键值或逻辑序号+地址。

对索引顺序文件中记录的访问,首先用按键访问方式检索索引表,找到记录所在组的首地址,然后从该地址开始,对文件进行顺序检索,找到要访问的记录。

(4) 直接文件,每个记录,通过键值换算出地址,进行存放和访问。

现代OS一般已不在文件系统这一级过多关注文件的逻辑结构,所有的文件都是流式文件,文件的访问就是“对文件中的第几个字节进行访问”。

文件内部的逻辑结构,到打开、加工文件的软件工具中去进一步解释,文件内部的数据访问由软件工具支持。

第三节文件目录一、概述文件存储器上存放着大量的文件。

为了能对这些文件实施有效的管理----实现“按名存取”;方便、准确、快速的文件检索;实现文件共享与保护;允许文件重名----需要引入一种数据结构,将文件组织起来。

这个数据结构就是目录。

目录设计的目标就是实现上述管理功能。

二、文件控制块1、什么是文件控制块文件控制块(FCB)是操作系统为管理文件而设置的数据结构,存放了为管理一个文件所需的所有相关信息,也称文件说明。

文件控制块是文件存在的标志。

(对比进程控制块PCB)2、文件控制块的内容(1) 基本信息类①文件名;②文件物理位置;③文件逻辑结构;④文件的物理结构。

(2) 存取控制信息类(存取权限信息)(3) 使用信息类P91-92将多个文件控制块组织成序列就构成目录。

相关主题