Appearance
题目
设置当前工作目录的的主要目的是( )。
错因
A
外存空间节省跟"路径用什么"完全没关系——文件存在哪里、用多少磁盘块,是文件系统的物理布局决定的,不会因为引入"当前工作目录"概念而改变。把"路径优化"和"存储节省"混了。
B
内存里目录项的大小、PCB 字段也不会因为有了 cwd 概念而变小——cwd 本身就是 PCB 里多存的一个字段(cwd 字符串或 inode 指针),反而多用一点内存,谈不上节省。
D
读写速度由磁盘 I/O 性能、块大小、缓存命中率决定,跟"路径形式"无关。read/write 走的是 fd——文件已经 open 完了,cwd 路径解析在 open 时早就用过了,read/write 阶段已经不沾路径。
总解析
当前工作目录(cwd)的作用:让用户能用相对路径而不是每次都写完整的绝对路径。
绝对路径 vs 相对路径检索对比:
| 类型 | 例子 | 检索过程 |
|---|---|---|
| 绝对路径 | /home/user/project/src/main.c | 从根目录开始:根 → home → user → project → src → main.c(5 层目录搜索) |
相对路径(cwd = /home/user/project) | src/main.c | 从cwd开始:project → src → main.c(2 层目录搜索) |
收益点:
- 目录搜索次数减少——不用每次从根目录走,直接从 cwd 开始
- 每层目录搜索都需要一次磁盘读(或缓存命中)——少几层就少几次访问
- 用户输入也省力(命令行不用打长路径)
主要目的:加快文件检索速度——通过缩短解析路径需要遍历的目录数。
| 选项 | 描述 | 判定 |
|---|---|---|
| A | 节省外存 | ✗ 跟物理存储无关 |
| B | 节省内存 | ✗ 不影响内存占用 |
| C | 加快检索速度 | ✓ —— 目录搜索路径缩短 |
| D | 加快读写速度 | ✗ 读写跟路径无关,只跟 fd 和磁盘 I/O 有关 |
速记:cwd 优化的是"找到文件"那一步(path resolution),不是"打开后读写"那一步。
最终答案是 C。