题11

题目

【2022 统考真题】某文件系统的磁盘块大小为 ,目录项由文件名和索引节点号构成, 每个索引节点占 256 字节, 其中包含直接地址项 10 个, 一级、二级和三级间接地址项各 1 个, 每个地址项占 4 字节。该文件系统中子目录 stu 的结构如图(a)所示, stu 包含子目录 course 和文件 doc, course 子目录包含文件 course 1 和 course2。各文件的文件名、 索引节点号、占用磁盘块的块号如图(b)所示。请回答下列问题。

(a)

文件名索引节点号磁盘块号
stu110
course220
course 11030
course210040
doc10x

(b)

  1. 目录文件 stu 中每个目录项的内容是什么?
  2. 文件 占用的磁盘块的块号 的值是多少?
  3. 若目录文件 course 的内容已在内存, 则打开文件 course 1 并将其读入内存, 需要读几个磁盘块? 说明理由。
  4. 若文件 course 2 的大小增长到 ,则为了存取 course 2 需要使用该文件索引节点的哪几级间接地址项? 说明理由。

分析

题6

  1. 在该文件系统中, 目录项由文件名和索引节点号构成。由图(a)可知, stu 目录下有两个文件, 分别是 course 和 doc。由图(b)可知, 这两个文件分别对应索引节点号 2 和 10 。因此, 目录文件 stu 中两个目录项的内容是
文件名索引节点号
course2
doc10
  1. 由图(b)可知, 文件 doc 和文件 coursel 对应的索引节点号都是 10, 说明 doc 和 course 1 两个目录项共享同一个索引节点, 本质上对应同一个文件。而文件 course 1 存储在 30 号磁盘块,因此文件 doc 占用的磁盘块的块号 为 30 。

  2. 需要读 2 个磁盘块。先读 coursel 的索引节点所在的磁盘块, 再读 coursel 的内容所在的磁盘块。目录文件 course 的内容已在内存中, 即 course 1 、 course 2 对应的目录项已在内存中, 根据 coursel 对应的目录项可以知道其索引节点号, 即可读入 coursel 的索引节点所在的磁盘块; 根据 coursel 的索引节点可知该文件存储在 30 号磁盘块, 因此可再读入 course 1 的内容所在的磁盘块。

  3. 存取 course2 需要使用索引节点的一级和二级间接地址项。6MB 大小的文件需要占用 个磁盘块。直接地址项可以记录 10 个磁盘块号,一级间接地址块可以记录 个磁盘块号,二级间接地址块可以记录 个磁盘块号,而 。因此, 大小的文件,需要使用一级间接地址项和二级间接地址项 (拓展: 若文件的总大小超出 块,则还需使用三级间接地址项)。