题11
题目
【2022 统考真题】某文件系统的磁盘块大小为

(a)
| 文件名 | 索引节点号 | 磁盘块号 |
|---|---|---|
| stu | 1 | 10 |
| course | 2 | 20 |
| course 1 | 10 | 30 |
| course2 | 100 | 40 |
| doc | 10 | x |
(b)
- 目录文件 stu 中每个目录项的内容是什么?
- 文件
占用的磁盘块的块号 的值是多少? - 若目录文件 course 的内容已在内存, 则打开文件 course 1 并将其读入内存, 需要读几个磁盘块? 说明理由。
- 若文件 course 2 的大小增长到
,则为了存取 course 2 需要使用该文件索引节点的哪几级间接地址项? 说明理由。
分析
解
- 在该文件系统中, 目录项由文件名和索引节点号构成。由图(a)可知, stu 目录下有两个文件, 分别是 course 和 doc。由图(b)可知, 这两个文件分别对应索引节点号 2 和 10 。因此, 目录文件 stu 中两个目录项的内容是
| 文件名 | 索引节点号 |
|---|---|
| course | 2 |
| doc | 10 |
-
由图(b)可知, 文件 doc 和文件 coursel 对应的索引节点号都是 10, 说明 doc 和 course 1 两个目录项共享同一个索引节点, 本质上对应同一个文件。而文件 course 1 存储在 30 号磁盘块,因此文件 doc 占用的磁盘块的块号
为 30 。 -
需要读 2 个磁盘块。先读 coursel 的索引节点所在的磁盘块, 再读 coursel 的内容所在的磁盘块。目录文件 course 的内容已在内存中, 即 course 1 、 course 2 对应的目录项已在内存中, 根据 coursel 对应的目录项可以知道其索引节点号, 即可读入 coursel 的索引节点所在的磁盘块; 根据 coursel 的索引节点可知该文件存储在 30 号磁盘块, 因此可再读入 course 1 的内容所在的磁盘块。
-
存取 course2 需要使用索引节点的一级和二级间接地址项。6MB 大小的文件需要占用
个磁盘块。直接地址项可以记录 10 个磁盘块号,一级间接地址块可以记录 个磁盘块号,二级间接地址块可以记录 个磁盘块号,而 。因此, 大小的文件,需要使用一级间接地址项和二级间接地址项 (拓展: 若文件的总大小超出 块,则还需使用三级间接地址项)。
