Appearance
408
操作系统
OS-04-06 目录结构(单级/两级/树形/无环图)
一、定位信息
- 所属圈层:核心层
- 前置知识回顾:理解文件控制块(FCB/inode)和目录项的概念,知道目录是存储目录项的特殊文件。
- 知识网络位置:本单元描述文件系统的组织方式,是理解文件路径、文件查找、硬链接/软链接(OS-04-07)的基础。目录结构直接决定了文件系统的易用性和效率。
- 考点热度等级:M级(中频常考)——目录结构的特点和比较是选择题常见考点。
二、知识点讲解
2.1 单级目录
单级目录是最简单的目录结构,所有文件都在同一个目录中。
- 优点:实现简单
- 缺点:
- 文件名必须唯一(不同用户不能使用相同文件名)
- 不支持分组管理
- 查找效率低(文件多时需要扫描整个目录)
2.2 两级目录
两级目录将目录分为主文件目录(MFD)和用户文件目录(UFD)。每个用户有自己的UFD,MFD记录(用户名, UFD位置)的映射。
- 优点:不同用户可以使用相同文件名,支持一定程度的分组
- 缺点:用户之间不方便共享文件,目录层次固定
2.3 树形目录
树形目录是最常用的目录结构。有一个根目录,每个目录可以包含文件和子目录,形成树状层次结构。
- 每个文件有唯一的绝对路径(从根目录开始)
- 支持相对路径(从当前目录开始)
- 用户可以创建任意层次的子目录
- 优点:组织清晰,支持分层管理
- 缺点:不支持文件共享(每个文件只能有一个父目录)
2.4 无环图目录(Directed Acyclic Graph)
无环图目录在树形目录基础上增加了共享能力。一个文件/目录可以有多个父目录(通过硬链接或软链接)。
- 优点:支持文件和目录的共享
- 缺点:
- 需要处理循环引用问题
- 删除共享文件时需要小心(引用计数)
- 备份和遍历更复杂
三、记忆与理解辅助
1. 类比记忆:
- 单级目录 = 一张桌子上放所有东西(乱)
- 两级目录 = 每人一个抽屉(分开了但不能嵌套)
- 树形目录 = 文件柜+文件夹(层次分明)
- 无环图目录 = 文件夹+快捷方式(可以共享)
2. 口诀:"单级简单名冲突,两级分用户;树形层次最常用,无环图支持共享。"
3. 四种目录结构对比表(★高频考点):
| 对比项 | 单级目录 | 两级目录 | 树形目录 | 无环图目录 |
|---|---|---|---|---|
| 层次 | 1层 | 2层 | 多层 | 多层+共享 |
| 文件名唯一性 | 全局唯一 | 用户内唯一 | 路径唯一 | 路径唯一 |
| 共享支持 | 不支持 | 不支持 | 不支持 | 支持 |
| 查找效率 | 低 | 中 | 高 | 高 |
| 实现复杂度 | 低 | 中 | 中 | 高 |
| 典型应用 | 早期系统 | 早期多用户 | Unix/Linux、Windows | 现代Unix/Linux |
4. 路径表示:
- 绝对路径:从根目录开始,如
/home/user/file.txt - 相对路径:从当前目录开始,如
./file.txt或../dir/file.txt - 当前目录(工作目录):进程的当前所在目录
四、例题与精解
例题1(基础巩固)
题目:某系统采用树形目录结构,根目录下有子目录 home 和 tmp,home 下有子目录 user1 和 user2。用户user1的当前目录为 /home/user1,其下有文件 a.txt 和子目录 docs,docs 下有文件 b.txt。 (1)写出 b.txt 的绝对路径。 (2)从 /home/user1 出发,写出访问 b.txt 的相对路径。 (3)从 /home/user1 出发,写出访问 /tmp 下文件的相对路径。
命题意图:考查树形目录中的路径表示。
精解:
1. 审题分析:需要根据目录结构写出绝对路径和相对路径。
2. 解题思路:绝对路径从根开始,相对路径从当前目录开始。
3. 完整步骤:
(1)b.txt 的绝对路径:/home/user1/docs/b.txt
(2)当前目录为 /home/user1,b.txt 在子目录 docs 下:
- 相对路径:
docs/b.txt
(3)当前目录为 /home/user1,要访问 /tmp 下的文件:
- 需要先回到根目录:
../..(/home/user1→/home→/) - 然后进入
tmp:../../tmp - 访问tmp下的文件:
../../tmp/filename
4. 方法反思:理解路径表示是使用文件系统的基础。绝对路径唯一但冗长,相对路径简洁但依赖当前目录。考试中需要熟练进行路径转换。
例题2(中等提升)
题目:某系统从树形目录升级为无环图目录,允许创建硬链接。用户user1在 /home/user1 下创建了文件 report.txt,然后在 /home/user2/shared 下创建了指向 report.txt 的硬链接 my_report。 (1)此时 report.txt 的链接计数是多少? (2)user1执行 rm /home/user1/report.txt 后,user2能否通过 my_report 访问文件? (3)此时文件的链接计数是多少?
命题意图:考查无环图目录中的硬链接机制。
精解:
1. 审题分析:硬链接使多个目录项指向同一个inode。
2. 解题思路:分析链接计数的变化。
3. 完整步骤:
(1)创建硬链接后,有两个目录项指向同一inode:
/home/user1/report.txt→ inode X/home/user2/shared/my_report→ inode X- 链接计数 = 2
(2)user1删除 report.txt:
- 删除操作将链接计数减1:
- 因为链接计数 > 0,文件数据不会被真正删除
- user2可以继续通过
my_report访问文件
(3)删除后链接计数 = 1
4. 方法反思:硬链接的核心机制是引用计数。只有当链接计数减为0时,文件数据才会被真正释放。这也是Unix中unlink操作的含义——它删除的是目录项(链接),而非文件数据本身。
五、考情分析
- 考查频次:目录结构在近5年真题中出现约2-3次。
- 常见题型:选择题(目录结构比较、路径表示)、综合题(目录查找过程)。
- 分值占比:选择题2分。
- 命题趋势:树形目录和无环图目录是常见考点,常与硬链接/软链接结合考查。基于大纲与命题规律推测。
六、易错点提醒
错误表现:认为树形目录支持文件共享。 错误原因:混淆了树形目录和无环图目录。 正确理解/做法:树形目录中每个文件只能有一个父目录,不支持共享。无环图目录通过硬链接/软链接支持共享。
错误表现:混淆绝对路径和相对路径。 错误原因:对"当前目录"的概念理解不清。 正确理解/做法:绝对路径从根目录(
/)开始,相对路径从当前目录开始。../表示上一级目录,./表示当前目录。错误表现:删除有硬链接的文件时,认为文件数据立即被删除。 错误原因:不理解引用计数机制。 正确理解/做法:删除操作只减少链接计数。只有当链接计数为0时,文件数据才被真正释放。
七、来源标注
- 依据2026考研统考408大纲
- 依据《操作系统概念》(Operating System Concepts, Silberschatz)第11章
- 依据汤小丹《计算机操作系统》第4版第4章