4.3.6 本节小结

2026 旧版 · 非 2027 主源 · 原书检索 · 文字用于定位,公式与图表请回原页核验 · 本次导入快照

## 4.3.6 本节小结

本节开头提出的问题的参考答案如下。

1)什么是文件系统?

操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统由三部分组成:与文件管理有关的软件、被管理文件及实施文件管理所需的数据结构。

2)文件系统要完成哪些功能?

对于用户而言,文件系统最主要的功能是实现对文件的基本操作,让用户可以按名存储和查找文件,组织成合适的结构,并应当具有基本的文件共享和文件保护功能。对于操作系统本身而言,文件系统还需要管理与磁盘的信息交换,完成文件逻辑结构和物理结构上的变换,组织文件在磁盘上的存放,采取好的文件排放顺序和磁盘调度方法以提升整个系统的性能。

## 4.3.7 本节习题精选

### 一、单项选择题

01. 从用户的观点看,操作系统中引入文件系统的目的是()。

A. 保护用户数据

B. 实现对文件的按名存取

C. 实现虚拟存储

D. 保存用户和系统文档及数据

02. 逻辑文件系统的功能有()。

I. 文件按名存取

II. 文件目录组织管理

III. 把文件名称换为文件描述符或文件句柄

IV. 存储保护

A. I、II 和 III

B. II、III 和 IV


<!-- page: 313 -->

C. I、II 和 IV

D. I、II、III 和 IV

03. 下列关于文件系统的说法中,正确的是()。

A. 一个文件系统可以管理的文件数量受限于文件控制块的数量
B. 一个文件系统可使用的容量一定等于其所在磁盘的容量
C. 一个文件系统中单个文件的大小只受磁盘刺余容量大小的限制
D. 一个文件系统不能将数据存放在多个磁盘上

04. UNIX 操作系统中,文件的索引结构放在()。

A. 超级块
B. 索引节点
C. 目录项
D. 空闲块

05. 文件的存储空间管理实质上是对( )的组织和管理。

A. 文件目录
B. 外存已占用区域
C. 外存空闲区
D. 文件控制块

06. 对外存文件区的管理应以( )为主要目标。

A. 提高系统吞吐量
B. 提高换入换出速度
C. 降低存储费用
D. 提高存储空间的利用率

07. 位示图可用于()。

A. 文件目录的查找
B. 磁盘空间的管理
C. 主存空间的管理
D. 文件的保密

08. 下列各种文件存储空间的管理方法中,()需要使用空闲盘块号线。

A. 空闲表法
B. 空闲链表法
C. 位示图法
D. 成组链接法

09. 硬盘的主引导扇区()。

A. 包含引导记录
B. 包含分区表和主引导程序
C. 只包含主引导程序
D. 只包含分区表

10. 若用 8 个字(字长 32 位)组成的位示图管理内存,即位示图有 8 行、32 列,行号和列号均从 1 开始,则块号为 100 的内存块所对应位示图的位置是()。

A. 字号为 3,位号为 5
B. 字号为 4,位号为 4
C. 字号为 3,位号为 4
D. 字号为 4,位号为 5

11. 比较难得到连续空间的空闲空间管理方式是()。

A. 空闲链表
B. 空闲表
C. 位示图
D. 成组链接

12. 下列选项中,()不是 Linux 实现虚拟文件系统 VFS 所定义的对象类型。

A. 超级块(superblock)对象
B. 目录项(inode)对象
C. 文件(file)对象
D. 数据(data)对象

13.【2014 统考真题】现有一个容量为 10GB 的磁盘分区,磁盘空间以簇为单位进行分配,簇的大小为 4KB,若采用位图法管理该分区的空闲空间,即用一位来标识一个簇是否被分配,则存放该位图所需的簇数为()。

A. 80
B. 320
C. 80K
D. 320K

14.【2015 统考真题】文件系统用位图法表示磁盘空间的分配情况,位图存于磁盘的 $32 \sim 127$ 号块中,每个盘块占 $1024\mathrm{B}$,盘块和块内字节均从 0 开始编号。假设要释放的盘块号为 409612,则位图中要修改的位所在的盘块号和块内字节序号分别是()。

A. 81, 1
B. 81, 2
C. 82, 1
D. 82, 2

15.【2019 统考真题】下列选项中,可用于文件系统管理空闲磁盘块的数据结构是()。

I. 位图
II. 索引节点
III. 空闲磁盘块链
IV. 文件分配表(FAT)
A. 仅 I、II
B. 仅 I、III、IV
C. 仅 I、III
D. 仅 II、III、IV

16.【2023 统考真题】某系统采用页式存储管理,用位图管理空闲页框。若页大小为 4KB,物理内存大小为 16GB,则位图所占空间的大小是()。


<!-- page: 314 -->

A. 128B
B. 128KB
C. 512KB
D. 4MB

17.【2024 统考真题】文件系统需要占用部分外存空间记录空闲块位置。在下列方法中,占用外存空间的大小与当前空闲块数量无关的是( )。

A. 位图法
B. 空闲表法
C. 成组链接法
D. 空闲链表法

## 二、综合应用题 公众号:小兔网盘免费分享无水印PDF

01. 一计算机系统利用位示图来管理磁盘文件空间。假定该磁盘组共有 100 个柱面,每个柱面有 20 个磁道,每个磁道分成 8 个盘块(扇区),每个盘块 1KB,位示图如下图所示。

[tbl-141.md](tbl-141.md)

1)试给出位示图中位置(i,j)与对应盘块所在的物理位置(柱面号,磁头号,扇区号)之间的计算公式。假定柱面号、磁头号、扇区号都从 0 开始编号。
2)试说明分配和回收一个盘块的过程。

02. 假定一个盘组共有 100 个柱面,每个柱面上有 16 个磁道,每个磁道分成 4 个扇区。

1)整个磁盘空间共有多少个存储块?(每个扇区对应一个存储块)
2)若用字长 32 位的单元来构造位示图,共需要多少个字?
3)位示图中第 18 个字的第 16 位对应的块号是多少?(字号和位号都从 1 开始)

## 4.3.8 答案与解析

### 一、单项选择题

#### 01. B

从系统角度看,文件系统负责对文件的存储空间进行组织、分配,负责文件的存储并对文件进行保护、检索。从用户角度看,文件系统根据一定的格式将文件存放到存储器中适当的地方,当用户需要使用文件时,系统根据用户所给的文件名能够从存储器中找到所需要的文件。

#### 02. D

逻辑文件系统的功能包括对文件按名存取,进行文件目录组织管理,将文件名转换为文件描述符或文件句柄,进行存储保护,因此 4 个说法均正确。

#### 03. A

一个文件系统的容量不一定等于承载该文件系统的磁盘容量。一个磁盘可分为多个分区,每个分区可以有不同的文件系统,单个文件的大小不仅受磁盘剩余容量大小的限制,还受 FCB 和 FAT 表等结构的限制。利用磁盘阵列技术,一个文件系统可将数据存放到多个磁盘上。

#### 04. B

UNIX 采用树形目录结构,文件信息存放在索引节点中。超级块是用来描述文件系统的。

#### 05. C

文件存储空间管理即文件空闲空间管理。文件管理要解决的重要问题是,如何为创建文件分配存储空间,即如何找到空闲盘块,并对其管理。

#### 06. D

文件区占磁盘空间的大部分,因为通常的文件都较长时间地驻留在外存上,对它们的访问频


<!-- page: 315 -->

率是较低的,所以对文件区管理的主要目标是提高存储空间的利用率。

07. B

位示图方法是空闲块管理方法,用于管理磁盘空间。

08. D

成组链接法将所有空闲盘块分成若干组,每组的第一个盘块记录下一组的空闲盘块总数和空闲盘块号。第一组的空闲盘块总数和空闲盘块号存放在内存的专用栈中,称为空闲盘块号栈。

09. B

硬盘的主引导扇区由三部分组成:主引导程序,也称主引导记录(MBR),用于系统启动时将控制转给用户指定的并在分区表中登记了的某个活动分区;分区表,给出每个分区的起始和结束地址;结束标志,其值通常为AA55。

10. B

首先求出块号100所在的行号, $1\sim 32$ 在行号1中, $33\sim 64$ 在行号2中, $65\sim 96$ 在行号3中, $97\sim 128$ 在行号4中,所以块号100在行号4中;然后求出块号100在行号4中的哪列,行号4的第1列是块号97,以此类推,块号100在行号4中的第4列。另解,行号row和列号col分别为

$$
\begin{array}{l}
\operatorname{row} = (100 - 1) \operatorname{DIV} 32 + 1 = 4 \\
\mathrm{col} = (100 - 1) \mathrm{MOD} 32 + 1 = 4 \\
\end{array}
$$

即字号为4,位号也为4。

## 注意

若注明行号和列号从0开始,则答案是不同的。

11. A

空闲链表法适用于离散分配,比较难得到连续空间。空闲表法适用于连续分配,容易得到连续空间。位示图法适用于连续分配和离散分配,容易找到连续的空闲块。成组链接法是将连续分配和离散分配相结合的方法,也能方便找到连续的空闲块。

12. D

为了实现虚拟文件系统(VFS),Linux主要抽象了四种对象类型:超级块对象、索引节点对象、目录项对象和文件对象。选项D错误。

13. A

簇的总数为 $10\mathrm{GB} \div 4\mathrm{KB} = 2.5\mathrm{M}$,用一位标识一簇是否被分配,整个磁盘共需要2.5Mbit,即需要 $2.5\mathrm{M} \div 8 = 320\mathrm{KB}$,因此共需要 $320\mathrm{KB} \div 4\mathrm{KB} = 80$ 簇。

14. C

盘块号 $= \text{起始块号} + \left[ \text{盘块号} / (1024 \times 8) \right] = 32 + \left[ 409612 / (1024 \times 8) \right] = 32 + 50 = 82$,这里问的是块内字节号而不是位号,因此还需除以8,块内字节号 $= \left[ (\text{盘块号} \% (1024 \times 8)) / 8 \right] = 1$。

15. B

传统文件系统管理空闲磁盘的方法包括空闲表法、空闲链表法、位示图法和成组链接法,选项I、III正确。FAT的表项与物理磁盘块一一对应,并且可以用一个特殊的数字-1表示文件的最后一块,用-2表示这个磁盘块是空闲的(当然也可用-3、-4来表示),因此FAT不仅记录了文件中各个块的先后链接关系,还标记了空闲的磁盘块,操作系统可以通过FAT对文件存储空间进行管理,选项IV正确。索引节点是操作系统为了实现文件名与文件信息分开而设计的数据结构,存储了文件描述信息,索引节点属于文件目录管理部分的内容,选项II错误。

16. C

物理内存大小为16GB,页大小为4KB,则物理内存的总页框数为 $16\mathrm{GB} \div 4\mathrm{KB} = 2^{34} / 2^{12} = 2^{22}$。


<!-- page: 316 -->

位图用1位来表示一个页框是否空闲,所以占用的空间大小为 $2^{22}\mathrm{b} = 2^{19}\mathrm{B} = 512\mathrm{KB}$。

## 17. A

位图法利用一个二进制位来表示磁盘中一个盘块的使用情况,磁盘上的所有盘块都有一个二进制位与之对应。当其值为“0”时,表示对应的盘块空闲;当其值为“1”时,表示已分配。位图所占空间的大小只取决于外存空间的总大小(盘块数量),而与当前空闲块数量无关。

## 二、综合应用题

### 01.【解答】

1)根据位示图的位置 $(i,j)$,得出盘块的序号 $b = i \times 16 + j$;用 $C$ 表示柱面号,$H$ 表示磁头号,$S$ 表示扇区号,则有

$$
C = b / (20 \times 8), \quad H = (b\% (20 \times 8)) / 8, \quad S = b\% 8
$$

2)分配:顺序扫描位示图,找出1个其值为“0”的二进制位(“0”表示空闲),利用上述公式将其转换成相应的序号 $b$,并修改位示图,置 $(i,j) = 1$。

回收:将回收盘块的盘块号换算成位示图中的 $i$ 和 $j$,转换公式为

$$
b = C \times 20 \times 8 + H \times 8 + S, \quad i = b / 16, \quad j = b\% 16
$$

最后将计算出的 $(i,j)$ 在位示图中置“0”。

### 02.【解答】

1)整个磁盘空间的存储块(扇区)数量为 $4 \times 16 \times 100 = 6400$ 个。

2)位示图应为6400个位,若用字长为32位($n = 32$)的单元来构造位示图,则需要 $6400 / 32 = 200$ 个字。

3)位示图中第18个字的第16位($i = 18, j = 16$)对应的块号为 $32 \times (18 - 1) + 16 = 560$。

## 4.4 本章疑难点

### 1. 文件的物理分配方式的比较

文件的三种物理分配方式的比较如表4.3所示。

表 4.3 文件三种分配方式的比较

[tbl-142.md](tbl-142.md)

### 2. 文件打开的过程描述

① 检索目录,要求打开的文件应该是已经创建的文件,它应登记在文件目录中,否则会出错。在检索到指定文件后,就将其磁盘 iNode 复制到活动 iNode 表中。

② 将参数 mode 所给出的打开方式与活动 iNode 中在创建文件时所记录的文件访问权限相比较,若合法,则此次打开操作成功。

③ 当打开合法时,为文件分配用户打开文件表表项和系统打开文件表表项,并为后者设置初值,通过指针建立表项与活动 iNode 之间的联系,再将文件描述符 fd 返回给调用者。


<!-- page: 317 -->

# 输入/输出管理

## 【考纲内容】

(一)输入/输出(I/O)管理基础

设备:设备的基本概念,设备的分类,I/O 接口

I/O 控制方式:轮询方式,中断方式,DMA 方式

I/O 软件层次结构:中断处理程序,驱动程序,设备独立性软件,用户层 I/O 软件

输入/输出应用程序接口:字符设备接口,块设备接口,网络设备接口,阻塞/非阻塞 I/O

(二)设备独立软件

缓冲区管理:设备分配与回收;假脱机技术(SPOOLing);设备驱动程序接口

(三)外存管理

磁盘:磁盘结构,格式化,分区,磁盘调度算法

固态硬盘:读/写性能特效,磨损均衡

## 【复习提示】

本章的内容较为分散,重点掌握 I/O 接口、I/O 软件、三种 I/O 控制方式、高速缓存与缓冲区、SPOOLing 技术,磁盘特性和调度算法。本章很多知识点与硬件高度相关,建议与计算机组成原理的对应章节结合复习。已复习过计算机组成原理的读者遇到比较熟悉的内容时也可适当跳过。另外,未复习过计算机组成原理的读者可能觉得本章的习题较难,但无须担心。

本章内容在历年统考真题中所占的比重不大,若统考中出现本章的题目,则基本上可以断定一定较为简单,看过相关内容的读者就一定会做,而未看过的读者基本上只能靠“蒙”。考研成功的秘诀是复习要反复多次且全面,偷工减料是要吃亏的,希望读者重视本章的内容。

# 5.1 I/O 管理概述

在学习本节时,请读者思考 I/O 管理要完成哪些功能。

## 5.1.1 I/O 设备

I/O 设备管理是操作系统设计中最凌乱也最具挑战性的部分。它包含了很多领域的不同设备及与设备相关的应用程序,因此很难有一个通用且一致的设计方案。

### 1. 设备的分类

I/O 设备是指可以将数据输入计算机的外部设备,或者可以接收计算机输出数据的外部设备。I/O 设备的类型繁多,从不同的角度可将它们分为不同的类型。

按信息交换的单位分类,I/O 设备可分为:


<!-- page: 318 -->

1)块设备。信息交换以数据块为单位,如磁盘、磁带等。磁盘设备的基本特征是传输速率较高、可寻址,即对它可随机地读/写任意一块。
2)字符设备。信息交换以字符为单位,如交互式终端机、打印机等。它们的基本特征是传输速率低、不可寻址,并且通常采用中断I/O方式。

按设备的传输速率分类,I/O 设备可分为:

1)低速设备。传输速率仅为每秒几字节到数百字节,如键盘、鼠标等。
2)中速设备。传输速率为每秒数千字节至数万字节,如激光打印机等。
3)高速设备。传输速率在数百千字节至千兆字节,如磁盘、光盘等。

按设备的使用特性分类,I/O 设备可分为:

1)人机交互设备。用于用户和计算机之间交互信息的设备,如键盘、显示器、打印机等。
2)存储设备。用于存储信息的设备,如磁盘、磁带、光盘等。
3)网络通信设备。用于计算机和计算机之间的通信,如网卡、调制解调器等。

按设备的共享属性分类,I/O 设备可分为:

1)独占设备。同一时刻只能由一个进程占用的设备。一旦将这类设备分配给某进程,便由该进程独占,直至用完释放。低速设备一般是独占设备,如打印机。
2)共享设备。同一时间段内允许多个进程同时访问的设备。对于共享设备,可同时分配给多个进程,通过分时的方式共享使用。典型的共享设备是磁盘。
3)虚拟设备。通过SPOOLing技术将独占设备改造为共享设备,将一个物理设备变为多个逻辑设备,从而可将设备同时分配给多个进程。

## 2. I/O 接口

I/O 接口(也称设备控制器)是CPU与设备之间的“桥梁”,以实现设备和计算机之间的数据交换。它接收发自CPU的命令,控制设备工作,使CPU能从繁杂的设备控制事务中解脱出来。设备控制器主要由三部分组成,如图5.1所示。

图5.1 设备控制器的组成

1)设备控制器与CPU的接口。用于实现CPU与设备控制器之间的通信。该接口有三类信号线:数据线、地址线和控制线。数据线传送的是读/写数据、控制信息和状态信息;地址线传送的是要访问I/O接口中的寄存器编号;控制线传送的是读/写等控制信号。
2)设备控制器与设备的接口。一个设备控制器可以连接一个或多个设备,因此控制器中有一个或多个设备接口。每个接口都可传输数据、控制和状态三种类型的信号。
3)I/O逻辑。用于实现对设备的控制。它通过一组控制线与CPU交互,对从CPU收到的I/O命令进行译码。CPU启动设备时,将启动命令发送给控制器,同时通过地址线将地址发


<!-- page: 319 -->

送给控制器,由控制器的I/O逻辑对地址进行译码,并对所选设备进行控制。

设备控制器的主要功能有:①接收和识别命令,如磁盘控制器能接收CPU发来的读、写、查找等命令;②数据交换,包括CPU和控制器之间的数据传输,以及控制器和设备之间的数据传输;③标识和报告设备的状态,以供CPU处理;④地址识别;⑤数据缓冲;⑥差错控制。

## 3. I/O 接口的类型

从不同的角度看,I/O接口可以分为不同的类型。

1)按数据传送方式(外设和接口一侧),可分为并行接口(一个字节或者一个字的所有位同时传送)和串行接口(一位一位地有序传送),接口要完成数据格式的转换。
2)按主机访问I/O设备的控制方式,可分为程序查询接口、中断接口和DMA接口等。
3)按功能选择的灵活性,可分为可编程接口(通过编程改变接口功能)和不可编程接口。

## 4. I/O 端口

I/O端口是指设备控制器中可被CPU直接访问的寄存器,主要有以下三类寄存器。

- 数据寄存器:用于缓存从设备送来的输入数据,或从CPU送来的输出数据。
- 状态寄存器:保存设备的执行结果或状态信息,以供CPU读取。
- 控制寄存器:由CPU写入,以便启动命令或更改设备模式。

I/O端口要想能够被CPU访问,就要对各个端口进行编址,每个端口对应一个端口地址。而对I/O端口的编址方式有与存储器独立编址和统一编址两种,如图5.2所示。

图5.2 独立编址I/O和内存映射I/O

## (1)独立编址

独立编址是指为每个端口分配一个I/O端口号。I/O端口的地址空间与主在地址空间是两个独立的地址空间,它们的范围可以重叠,相同地址可能属于不同的地址空间。普通用户程序不能对端口进行访问,只有操作系统使用特殊的I/O指令才能访问端口。

优点:I/O端口数比主存单元少得多,只需少量地址线,使得I/O端口译码简单,寻址速度更快。使用专用I/O指令,可使程序更加清晰,便于理解和检查。

缺点:I/O指令少,只提供简单的传输操作,所以程序设计的灵活性较差。此外,CPU需要提供两组独立的存储器和设备的读/写控制信号,增加了控制的复杂性。

## (2)统一编址

统一编址也称内存映射I/O,是指将主在地址空间分出一部分给I/O端口进行编址,I/O端口和主存单元在同一地址空间的不同分段中,根据地址范围就能区分访问的是I/O端口还是主存单元,因此无须设置专门的I/O指令,用统一的访存指令就可访问I/O端口。

优点:不需要专门的I/O指令,使得CPU访问I/O的操作更加灵活和方便,还使得端口有较大的编址空间。I/O访问的保护机制可由虚拟存储管理系统来实现,无须专门设置。

缺点:端口地址占用了部分主在地址空间,使主存的可用容量变小。此外,由于在识别I/O端口时全部地址线都需参加译码,使得译码电路更加复杂,降低了寻址速度。


<!-- page: 320 -->