模拟卷 操作系统 文件概念 解答题
第 46 题

(8 分)一个文件系统中有一个 20MB 大文件和一个 20KB 小文件,当分别采用连续分配、隐式链接分配方案时,每块大小为 4096B,每块地址用 4B 表示,问:

(1) 该文件系统所能管理的最大文件是多少?

(2) 每种方案对大、小两文件各需要多少专用块来记录文件的物理地址(说明各块的用途)?

(3) 如需要读大文件前面第 5.5KB 的信息和后面第 (16M+5.5KB) 的信息,则每个方案各需要多少次磁盘 I/O 操作?

文件概念

[tag_link]

**【解析】** 本题考查文件物理结构的分配方案:连续分配、链接分配和索引分配。

(1)**连续分配**:文件大小理论上不受限制,可大到整个磁盘文件区。 **链接分配**:由于块地址占 4 字节(32 位),能表示的最大块数为 ,每个盘块存放文件内容的大小为 4092 字节,因此链接分配可管理的最大文件为:

注意:有同学认为最后一块可以不存放指针而使用全部 4096 字节,但一般文件系统的块结构是固定的,为了多出 4 字节的空间会增加很多额外开销,因此通常不会这样做。

(2)**连续分配**:对大小文件都只需在文件控制块 FCB 中设置两项,一是首块物理块号,另一是文件总块数,不需要专用块记录文件的物理地址。 **链接分配**:对大小文件也只需在 FCB 中设置两项,一是首块物理块号,另一是文件最后一个物理块号;同时在每个物理块中设置存放下一个块号的指针。

(3)**连续分配**:读取大文件前面或后面的信息时,需先计算信息在文件中的相对块号。 前面信息的相对逻辑块号为 (从 0 开始编号), 后面信息的相对逻辑块号为 。 物理块号 = 文件首块号 + 相对逻辑块号,每块只需一次磁盘 I/O 操作即可读出。

**链接分配**:读取大文件前面 5.5KB 的信息时,先读一次文件头块得到信息所在块的块号,再读一次第 1 号逻辑块得到所需信息,共需 2 次读盘。 读取大文件 处的信息时,逻辑块号为 ,需要先顺序读出该块之前的所有块,共花费 4101 次磁盘 I/O 操作得到目标块的块号,最后再花一次 I/O 操作读出该块信息。因此总共需要 4102 次 I/O 操作。