1
第 8章 文件管理
本章知识点:
? 8.1 文件与文件系统
? 8.2 文件的结构及存取方式
? 8.3 文件管理
? 8.4 文件存储空间的分配与管理
? 8.5 系统举例 —— Windows NT(略 )
2
第 8章 文件管理
? 文件管理是操作系统的基本功能之一,
在操作系统中,实现这一基本功能的程序
系统 (部分 )称为文件系统,它主要是进行
信息的组织、管理、存取和保护。
? 本章将讨论文件的组织方式、存取的机
制、可执行文件的结构,以及文件存储
空间的管理等问题。
3
8.1 文件与文件系统
8.1.1 文件及其分类
1,文件
文件的概念是在信息的物理存储,及其信
息表示方式需要的基础上引入的。一个
比较准确的定义是,文件是具有符号名
而且在逻辑上具有完整意义的信息项的
有序序列。
4
8.1.1 文件及其分类
在讨论文件时经常使用以下几个相关术语:域 (Field)、
记录 (Record)、文件 (File)以及数据库 (Database)。
? 域是数据的基本元素。
? 记录是相关域的集合,可以看成是将一个单元供应用程
序使用。在记录中也总存在着能唯一标识这个记录的数
据域,我们称其为“关键字”( Key)。关键字可以是
某一个域,但当只凭一个域无法标识出一个记录时,它
也可以是某几个域的集合。
? 文件是相关记录的集合。
? 数据库和文件系统是两个不同的概念,数据库是相关数
据的集合。数据库由一种或多种文件组成。通常会有一
个单独的数据库管理系统。
5
8.1.1 文件及其分类
所有的文件都具有 3个基本特征:
? ① 文件体的内容丰富,可以是源程序、
可执行代码、数据、表格、语言或图像
等。
? ② 无论何种内容的文件都遵循按名存取
的规则,用户无需了解存取内容在存储
介质上的物理位置。
? ③ 文件具有可重用性和可保存性。
6
8.1.1 文件及其分类
2,文件的分类
文件一般按其用途和存取控制属性来归类。
按用途把文件划分为用户文件,系统文件和库
文件 3种:
? ① 用户文件,由用户建立,并由文件拥有者进
行读 /写和执行。
? ② 库文件,由系统为用户提供的实用程序、标
准子程序、动态重链接库等。
? ③ 系统文件,由系统建立的文件,如操作系统、
编辑系统、编译系统等。
7
8.1.1 文件及其分类
如果按文件的属性来划分,文件又可分为:
? ① 可执行文件,用户可执行该程序,但不能修
改。
? ② 只读文件,允许文件主和文件的授权者读出
文件但不准改写文件内容。
? ③ 可读 /写文件,文件主和文件授权者可以读 /
写文件内容。
? ④ 非保护文件,可供任一用户读 /写或执行。
8
8.1.1 文件及其分类
有一些学者认为,也可以把设备看作是
文件。事实上,为了便于管理,包括
DOS,WINDOWS,UNIX在内的很多操
作系统都把计算机的一些常用外部设备
也当作文件来处理,这些特殊的文件称为
设备文件,是操作系统用来访问硬件设
备的一种特殊文件。
9
8.1.2 文件系统及其功能
1,文件系统的体系结构
文件系统是操作系统中实现对文件的组
织、管理和存取的一组系统程序,或者
说它是管理软件资源的软件,对用户来
说它提供了一种便捷地存取信息的方法 。
10
8.1.2 文件系统及其功能
文件系统软件体系结构,
用户程序
堆 顺序 索引顺序 索引 快速
逻辑 I / O
基本 I / O 管理器
基本文件系统
磁盘设备驱动器 磁带设备驱动器
11
8.1.2 文件系统及其功能
体系结构图中:
? 最底层的设备驱动器直接和外围设备控制器或通道进
行通信,对设备发来的中断信号进行处理。
? 基本文件系统 (Basic File System),或物理 I/O层
(Physical I/O level),它是与计算机系统外部环境的主
要接口。
? 基本 I/O管理器 (Basic I/O Supervisor),负责所有文件 I/O
的初始化和文件的终止。
? 逻辑 I/O(Logical I/O)作为文件系统的一部分,允许用户
和应用程序访问记录。
? 最接近用户的层称为存取方法 (Access Method)。
12
8.1.2 文件系统及其功能
2,文件系统的主要功能
? ① 实现按文件名存取文件信息,完成从文件名到文件
存储物理地址映射。
? ② 文件存储空间的分配与回收。
? ③ 对文件及文件目录的管理。
? ④ 提供 (创建 )操作系统与用户的接口。不同的操作系
统会提供不同类型的接口,不同的应用程序往往会使
用不同的接口,常见的接口有:
– 菜单式接口。
– 程序接口。
? ⑤ 提供有关文件自身的服务。
13
8.2 文件的结构及存取方式
? 文件的结构是指文件的组织形式,文件的结构
有两种,一种是逻辑结构,另一种是物理结构。
? 从用户观察和使用文件的角度出发所定义的文
件组织形式,称为文件的逻辑结构。
? 从系统的角度考察文件在实际存储设备上的存
放形式,称为文件的物理结构,这一结构直接
关系到存储空间的利用率。
14
8.2.1 文件的逻辑结构及存取方式
按文件的逻辑结构分,可将文件分为无结构的字 符流式文件和有结构的记录式文件。
1.字符流式文件
? 字符流式文件是由字符序列组成的文件,其
内部信息不再划分结构,也可以理解为字符
是该文件的基本信息单位。访问流式文件时,
依靠读写指针来指出下一个要访问的字符。
? 这种文件的管理简单,要查找信息的基本单
位困难。
15
8.2.1 文件的逻辑结构及存取方式
2,记录式文件
? 这是一种有结构文件。它把文件内的信
息划分为多个记录,用户以记录为单位
来组织信息。
? 记录是一个具有特定意义的信息单位,
它由该记录在文件中的相对位置、记录
名以及该记录对应的一组键、属性及属
性值组成。
16
8.2.1 文件的逻辑结构及存取方式
? 按照记录式文件中记录的排列方式不同,
记录式文件结构可分为:
? ① 连续结构。
? ② 顺序结构。
? ③ 多重结构。
? ④ 转置结构。
17
8.2.1 文件的逻辑结构及存取方式
文件多重结构,
K
1
K
2
K
3
?
K
m
R
2
R
1
R
2
?
R
1
R
3


R
3


R
n
R
n
0
1
0
?
1
0
1
0
?
1
K
1
K
2
K
3
?
K
m
R
1
1
0
1
?
0
R
2
1
0
0
?
1
R
3




R
n
18
8.2.1 文件的逻辑结构及存取方式
文件转置结构,
R
2
K
1
含 K
1
记录的
所有指针
K
2
含 K
2
记录的
所有指针
?
R
3
?
R
1
R
n
?
19
8.2.1 文件的逻辑结构及存取方式
3,文件存取方式
文件存取方式是指用户的逻辑存取方式,从逻辑存取到物
理存取之间有一个复杂的映射,逻辑存取常用的方式有:
? (1) 顺序存取
按照文件的逻辑地址依次存取,对记录式文件,便是按照
记录的排序顺序存取。
? (2) 随机存取
随机存取也称直接存取或立即存取 (这里的随机不等于随意 ),
用户按照记录的编号进行文件存取,根据存取的命令,把
读 /写指针直接移到读 /写处进行操作。
? (3) 按键存取
按键存取是根据给定记录的键进行存取,这种存取方法大
多适用于多重结构的文件。
20
8.2.2 文件的物理结构及存储设备
1,文件的物理结构
? 文件的物理结构是指文件在存储器上的存放方
式,以及它与文件的逻辑结构之间的关系,实
际上是指的文件的存储结构。
? 通常文件物理结构有顺序文件、链接文件、索
引文件 3种。
– (1) 顺序文件
按文件的逻辑记录顺序把文件放在连续的存储块中。
21
8.2.2 文件的物理结构及存储设备
顺序文件的存放方式,
文件 A
R
1
R
2
R
3
R
4
F C B

文件 A
第一块号
3
文件长 4

文件存储器
R
1
R
2
R
3
R
4
3 4 5 6
22
8.2.2 文件的物理结构及存储设备
– (2) 链接文件
一个逻辑上连续的文件,可以存放在不连续的存储
块中,而每个块之间用单向链表链接起来。
链接文件的存放方式,
F CB

文件 A
第一块号
21

R
1
05
21
R
2
06
1 8
R
3
07
28
R
4
08
5
23
8.2.2 文件的物理结构及存储设备
– (3) 索引文件
索引文件是由系统为每个文件建立一张索引表,表
中标明文件的逻辑块号所对应物理块号,索引表自
身的物理地址由 FCB给出。
索引表结构,
F CB
?
文件 A
索引表指针
?
文件 A 的索引表
记录号 物理块号
0 4
1 7
2 10
R
1
4
R
2
7
R
3
10
24
8.2.2 文件的物理结构及存储设备
如果索引表很大,超过了一个物理块,则系统势必
要像处理其他文件一样,来处理索引表的物理存放
方式,这样不利于索引表的动态增删。解决的办法
是采用多重索引的方式,也就是说,当索引表所指
的物理块超过一块时,再增加一个次级索引表。这
样,在高一级索引表表项里所指向的物理块中并不
存放实际的文件信息,而是存放的一个索引表,在
这个次一级的索引表中所指向的物理块才是存放的
文件信息。如果需要,可以增加到 3级以上的多级
索引。
25
8.2.2 文件的物理结构及存储设备
2,文件的存储设备
? 文件的存储设备分为不可重复使用的和
可重复使用的两类。
? 不可重复使用的文件存储设备也称为 I/O
式字符设备,如打印纸等。
? 可重复使用的文件存储设备有磁带、磁
盘、光盘等,也称块设备。
26
8.2.2 文件的物理结构及存储设备
下面介绍两种典型的存储设备特性及存取方法。
? (1) 顺序存取设备
顺序存取设备通常是指那些容量大、价格低的存储设
备。
? (2) 直接存取设备
光盘、磁盘都是一种可直接存取的存储设备 (磁盘又分
为硬盘和软盘 )。
– ① 磁盘
磁盘是一种可直接存取 (按地址存取 )的存储设备,它把信息记
录在盘片上,每个盘片有正反两面。
– ② 只读型光盘
光盘存储器是利用光学原理存取信息的存储设备
27
8.2.2 文件的物理结构及存储设备
3,文件结构、存储设备与存取方式
综上所述,文件的物理结构,必须适应文件的存储设
备,而不同的存储设备的特性,又决定了其上的文件
的存取方式,下面以磁盘和磁带存储设备为例,简要
说明 3者的关系:
? ① 磁盘上的文件结构为连续时,其存取方式一般为顺
序或随机。
当文件为连续方式时,存取方式通常为顺序的。
? ② 磁带上的文件结构为连续时,其存取方式一般为顺
序存取。
当其上文件为索引文件时,存取方式可为顺序、随机
两种形式。
28
8.3 文件管理
8.3.1 文件目录结构
1,文件目录
? 文件系统为程序和用户提供了按文件名
存取文件的机制,而将文件名转换为存
储地址,以及对文件实施控制管理则需
通过文件目录来实现。
? 文件目录的管理和文件存储空间的管理
已成为文件管理的重要内容。
29
8.3.1 文件目录结构
一个文件由文件说明和文件体组成。文件说明部分包
括文件的基本信息、存取控制信息和文件使用信息。
? ① 基本信息包括:
– 文件名,用于标识一个文件的符号名。
– 文件物理位置,标明文件内容在外存上的存储位置。
– 文件结构,指示文件的逻辑结构和物理结构。它决定了文件
的寻址方式。
? ② 存取信息包括:各类用户 (包括文件主、核准用户、
普通用户等 )的存取权限,实现文件的共享及保密。
? ③ 使用信息包括:文件创建、修改的日期和时间,以
及当前使用的状态信息。
30
8.3.1 文件目录结构
? 文件系统将这些说明部分的全部信息集中起来,
以一个数据结构的形式表示,称此结构为文件
控制块 FCB (File Control Block)。
? 文件目录由文件控制块组成。文件系统在每个
文件建立时都要为它建立一个文件目录。文件
目录用于文件描述和文件控制,实现按名存取
和文件信息共享与保护,随文件的建立而创建,
随文件的删除而消亡。
? 不同的操作系统有不同的文件目录。
31
8.3.1 文件目录结构
? 下面以 UNIX文件目录为
例加以说明。
? UNIX系统的文件目录由
目录项和索引节点两部分
组成。目录项占 16B,其
中 14B为文件名,2B为指
向文件说明信息的索引节
点的指针,每个索引节点
占 64B,包括文件属性、
文件共享目录数、时间、
文件存放块号、文件长度
等说明信息。
文件名 指针
? ?
文件名 i
索引
节点号
文件属性
?
文件长度
索引
节点
64 B
? ?
?
32
8.3.1 文件目录结构
2,文件目录结构
? 文件目录是由文件说明组成的,若干个
文件目录组成一个专门的目录文件,目
录文件的结构如何,关系到文件的存取
速度和文件的共享及安全特性。
? 文件目录结构是指专门的目录文件的组
织形式。常用的目录结构有单级目录,
二级目录和多级目录。
33
8.3.1 文件目录结构
? (1) 单级目录
文件系统在每个存储设备上仅建立一个目录文件的目
录结构,称为单级目录 (或称一级目录 )。目录文件中的
每一目录项 (或称一条记录 )对应一个文件目录,它包含
相对的数据项 (文件名及扩展名、物理地址、说明信息 ),
如图所示。
文件名 物理地址 文件说明信息
X
1
R
1
W
1
X
2
R
2
W
2
? ? ?
34
8.3.1 文件目录结构
? 单级目录的优点是结构简单,通过管理
其目录文件,便可实现对文件信息的管
理。
? 单级目录的特点是:
– ① 搜索范围宽。
– ② 不允许文件重名。
– ③ 不便于文件共享。
35
8.3.1 文件目录结构
? (2) 二级目录结构
二级目录结构将存储在设备上的目录文件分成
两级:第一级为系统目录 (称主目录 MFD),它
包含了用户目录名和指向该用户目录的指针;
第二级为用户目录 (称 UFD),它包含了该用户
所有文件的文件目录,该文件目录和上述单级
的目录一样,包含了相应文件的名字,物理地
址等。
36
8.3.1 文件目录结构
二级目录结构,
XQX SE T XQX h el p
系统目录
U s er l ?
U s er N
?
用户目录名
用户目录指针
XQX h el p
文件名
物理地址
U s er l 用户目录 U s er N 用户目录
XQX SE T
37
8.3.1 文件目录结构
? (3) 多级目录结构
? 采用树型数据结构方法,便形成一种树
型的结构目录。
? 这种文件目录的第一级系统目录为树的
根节点,定义为根目录,文件目录的第
二级和以下各级目录均为树的分支节点
(非终节点 ),均定义为子目录,只有树的
叶节点 (终节点 )才为文件。
38
8.3.1 文件目录结构
? 从根目录经各级子目录到达文件的通路上的所有子目录名称为文件的存取路径。
? 在多级目录结构中,要访问一个文件必须从根
目录开始,逐级查找各级子目录,直到文件。
无疑这样查找速度较慢。有必要为系统建立一
个称之为“工作目录”的当前目录(不一定是
根目录),当用户不另外指定缺省目录时,系
统从该目录起进行查找。不同的文件系统都可
以设置这种工作目录。
? 将多级目录结构进一步推广,就产生了无环结
构目录图状结构目录。
39
8.3.1 文件目录结构
3,文件目录与文件共享
为了有效的实现文件共享,文件系统在建立文
件目录的过程中,采用了以下两种方法,使文
件只需保存一个副本,达到多个用户共享的目
的。
? (1) 绕道法 (交叉法 )
绕道法查找共享文件的方法是每个用户从各自
当前目录开始,向上返回到共享文件所在路径
的交叉节点,然后沿交叉节点顺序向下访问到
共享文件。
40
8.3.1 文件目录结构
绕道法:
被共享文件交叉点
共享文件 当前目录
文件
41
8.3.1 文件目录结构
? (2) 基本文件目录表法
? 为了有效实现系统文件的共享,文件系统需建
立一基本文件目录 BFD,它包括了文件的结构、
物理块号、存取控制和管理信息。
? 另外,需增加符号文件目录表 SFD,包括用户
给定的符号名和系统文件赋予的文件说明信息
的内部标识符。
? 主目录 (MFD)记录了文件名和系统给定的惟一
标识。
42
8.3.1 文件目录结构
文件目录表,
标识符
物理
块号
0 ·
1 ·
2 ·
3 ·
4 ·
5 ·
6 ·
7 ·
8 ·
9 ·
主目录 ( M F D )
文件名 ID
A 3
B 5
空闲文件目录
A 的 SF D
文件名 ID
X
1
.t 4
X
2
,t 6
B 的 SF D
文件名 ID
y
1
,c 6
su b, d 8
s u b,d 的 SF D
文件名 ID
y
2
.c 7
Y
3
.b 9
基本文件目录 (B F D )
x
1
.t
x
2
.t
y
1
.c
y
2
.c
y
3
.b
43
8.3.1 文件目录结构
在实现文件共享时,可以有以下的两种模式:
? ① 不同时使用同一文件。
? ② 同时使用同一文件。
– 当所有进程都不修改文件时,情况比较简单;
– 如果某些进程要求对文件修改,那么就必需加以控
制,否则数据一致性就得不到保证。控制的方法有
两种:
? 一种是不允许读者与写者,或者写者与写者同时打开文件,但这会降低文件并发性,并可能导致死锁;
? 另一种是允许其同时打开文件,由 OS为用户提供相应的互
斥手段,文件使用者借用这种手段保证对文件的同时共享
不发生冲突。
44
8.3.2 文件目录管理
? 如上所述,文件的目录是以目录文件的形式存放的,
当存取一个文件时,往往需要访问多级文件目录,如
果对每一级目录访问都需要到文件存储设备上去搜索,
势必占用过多的 CPU时间,若在系统启动时,把全部
目录文件读入内存,由系统直接在内存实施对各级目
录的搜索则虽然提高了访问速度,但需要的内存容量
太大。
? 一般来说,系统只把当前正在使用的那些文件的目录
表复制到内存中,为此,系统提供两种特殊操作:
– 其一是把有关的目录文件复制到内存指定区,通常称为打开 文件 (Open);
– 其二是提供用户不再访问的有关文件的目录文件删除的操作,通常称为关闭文件 (Close)。
45
8.4 文件存储空间的分配与管理
? 由文件的存储结构可知,文件信息的交换都是以块为
单位进行的。因此,将文件存储设备称为块设备,这
里介绍的存储空间的管理实际上是对文件块空间而言
的,具体说是指空闲块的组织与回收。
? 一般来说,空闲块空间的分配常常有两种方式:
– 一种静态分配;
– 另一种是动态分配。
? 另外在分配的区域上,可以将一个文件分配在一个完
整的分区中(以块或簇为单位),常使用包含文件名、
起始地址、长度的文件分配表 FAT等。
46
8.4.1 文件存储空间的分配
文件空间分配常采用:连续分配、索引分配、链接分
配 3种方法。
1,连续分配
连续分配方式是将文件存放在辅存的连续存储区中。
F A T
文件名 起始块号 长度
Y 1 2 5
Y 2 9 3
1 2 3 4 5 6
7 8 9 10 1 1 1 2
y 1 y
1 y 1 y 1 y 1
y 2 y 2 y 2
盘块
47
8.4.1 文件存储空间的分配
2,索引分配
? 索引分配方法主要是利用文件分配表 FAT给每
个文件分配一个指出该文件的索引表所在的物
理块号的表目,索引表所在的索引块与存储文
件的文件块是分离的。
? 文件索引的每个表目的设置有两种情况:
– 一种是直接给出索引文件各物理块;
– 另一种是设置文件的起始块和长度,这有利于连续
分配,也有利于节省索引表空间、提高效率,如图
所示。
48
8.4.1 文件存储空间的分配
F A T
文件名 索引块号
? ?
X
1
9
X
2
1
? ?
索引块 X
2
7
12
2
索引块 X
1
起始块 长度
3 3
10 2
1 2 3 4
5 6 7 8
9 1 0 1 1 1 2
? ? ? ?
X
2
X
1
X
1
X
1
X
2
X
1
X
1
X
2
盘块
49
8.4.1 文件存储空间的分配
3,链接分配
? 链接分配文件空间的方法是一种离散分
配方式,适用于文件长度需动态增减,
或用户对其文件的应用不十分明确的情
况,一般分配非连续的辅存空间。
? 采用链接表方法链接存储空间,链接空
间的大小大多以区或段为单位。
50
8.4.1 文件存储空间的分配
? (1) 以扇区为链接单位
这是给需动态变化的文件分配若干磁盘
扇区,这些扇区在磁盘上可以不连续,
而分配给同一文件的各扇区按其上文件
逻辑记录的次序用链指针链接起来。
? (2) 以区段 (或簇 )为单位分配
这不是以扇区为单位进行分配,而是以
区段 (或称簇 )为单位进行分配的。
51
8.4.2 磁盘空间管理
文件的磁盘存储空间的管理包括磁盘空间块的
分配和回收。
1,盘块
? 盘块是操作系统传输数据的基本单位,盘块大,
I/O操作传输数据量多,传输性能好,但也会造
成盘空间的浪费。
? 既要提高传输率,又要减少盘空间的浪费,是
文件系统追求的目标,盘块是重要因素之一。
52
8.4.2 磁盘空间管理
? (1) 逻辑块
逻辑磁盘是文件系统中一个抽象的存储概念。系统将逻辑
磁盘视为一些有固定大小可随机存取的逻辑块的线性序列。
磁盘驱动程序将逻辑块映射到物理介质上。一般情况下,
一个物理磁盘被分成物理上连续的几个分区,每个分区就
是一个逻辑磁盘,又称磁盘分区。
通常所说的磁盘分区就是将每一个分区定义为一个盘,此
盘就是一个逻辑磁盘。
? (2) 盘区
磁盘分区是将磁盘上一组连续的柱面空间组成一体,定义
为一个盘区。其上可有一个独立的文件系统。不同类的文
件系统可占有不同的盘,各自定义自己盘块的大小。
53
8.4.2 磁盘空间管理
2,磁盘块大小
? ① 磁盘块大小。可以理解为磁盘分配的
单位,它规定了文件系统的分配粒度和
磁盘 I/O粒度,盘块大,有利于增加系统
性能,不同的文件系统块大小也不同,
FFS可大于等于 4KB,NTFS可大到 64KB,
FAT32的簇大小可达到 32KB。
? ② 片断。是盘块的组成单位。
54
8.4.2 磁盘空间管理
3,盘块管理
盘块管理常用盘图,链表和 i节点等手段,因文
件系统而异。
? (1) 盘图法
盘图也称字位映像图,是一种常用的方法,它
用位 (bit)的值 0,1来表示磁盘上相应物理块是
否被分配,bit值为 1表示对应物理块被分配,
为 0表示对应物理块为空闲。
对应一串连续的 bit值,按字节构成一张表,此
表可以把一个完整磁盘的使用情况记载下来。
55
8.4.2 磁盘空间管理
? (2) 链接法
– ① 链接索引块。这是一种常用的方法,它首先是选
择若干空闲物理块建立索引表块,假设这样块的大
小为 1KB,可以设 512个表目,每个表目占用 16位,
以此表示一个空闲物理块的块号,则每个表目对应
一个空闲物理块。
而后将这些含有空闲块号的索引块之间用链接方式
链接起来,即每个索引块的第 0个表目作为链表的
指针,指向下一个索引块,或链尾标志。
56
8.4.2 磁盘空间管理
链接索引块:
超级块
T
1
T
1
T
2 ?
T
2
T
3 ?
T
3
?
57
8.4.2 磁盘空间管理
– ② 分配与回收空闲块。为了操作方便,通常将索引
链表中的链头指针所指向的索引块的表目中留出空
项 (其他索引块表目项全填满 ),当文件系统分配盘
空间时从链表头的索引块的块尾开始,直到该索引
块的第 0个表目,如果该索引块仅剩下第 0个表目,
则将该表目的内容读到特定块链头指针中,然后将
原链头指针指向的索引块 T,分给请求分配空闲块
的文件。
空闲块的回收则相反,仅将释放的空闲块块号加到
链头指针指出的索引表块的尾部表目中即可。
58
The end
Thanks!