模拟卷 组成原理 文件概念目录 解答题
第 43 题

(8 分)根据 42 题图 1 描述的目录结构,结合以下描述继续回答问题。根目录常驻内存,目录文件组织成链接文件,不设文件控制块,普通文件组织成索引文件。目录表目指示下一级文件名及其磁盘地址(各占 2 个字节,共 4 个字节)。若下级文件是目录文件,指示其第一个磁盘块地址。若下级文件是普通文件,指示其文件控制块的磁盘地址。每个目录文件磁盘块的最后 4 个字节供拉链使用。下级文件在上级目录文件中的次序在图中从左至右。每个磁盘块有 512 字节,与普通文件的一页等长。

普通文件的文件控制块组织如图 2 所示,其中,每个磁盘块地址占 2 个字节,前 10 个地址直接指示该文件前 10 页的地址。第 11 个地址指示一级索引表地址,一级索引表中每个磁盘地址指示一个文件页地址;第 12 个地址指示二级索引表地址,二级索引表中每个地址指示一个一级索引表地址;第 13 个地址指示三级索引表地址,三级索引表中每个地址指示一个二级索引表地址。请问:

(1) 一个普通文件最多可有多少个文件页? (2) 若要读文件 J 中的某一页,最多启动磁盘多少次? (3) 若要读文件 W 中的某一页,最少启动磁盘多少次? (4) 就 (3) 而言,为最大限度减少启动磁盘的次数,可采用什么方法?此时,磁盘最多启动多少次?

文件概念 目录

[tag_link]

**【解析】** 本题考查文件目录的结构。

(1)因为磁盘块大小为 512B,所以索引块大小也为 512B,每个磁盘地址大小为 2B。因此,一个一级索引表可容纳 256 个磁盘地址。同样,一个二级索引表可容纳 256 个一级索引表地址,一个三级索引表可容纳 256 个二级索引表地址。这样,一个普通文件最多可有文件页数为 页。

(2)由图可知,目录文件 A 和 D 中的目录项都只有两个,因此这两个目录文件都只占用一个物理块。要读文件 J 中的某一页,先从内存的根目录中找到目录文件 A 的磁盘地址,将其读入内存(已访盘 1 次)。然后从目录 A 中找出目录文件 D 的磁盘地址并将其读入内存(已访盘 2 次)。再从目录 D 中找出文件 J 的文件控制块地址并将其读入内存(已访盘 3 次)。在最坏情况下,该访问页存放在三级索引下,此时需要一级一级地读三级索引块才能得到文件 J 的地址(已访盘 6 次)。最后读入文件 J 中的相应页(共访盘 7 次)。所以,若要读文件 J 中的某一页,最多启动磁盘 7 次。

(3)由图可知,目录文件 C 和 U 的目录项较多,可能存放在多个链接在一起的磁盘块中。在最好情况下,所需的目录项都在目录文件的第一个磁盘块中。先从内存的根目录中找到目录文件 C 的磁盘地址读入内存(已访盘 1 次)。在 C 中找出目录文件 I 的磁盘地址读入内存(已访盘 2 次)。在 I 中找出目录文件 P 的磁盘地址读入内存(已访盘 3 次)。从 P 中找到目录文件 U 的磁盘地址读入内存(已访盘 4 次)。从 U 的第一个磁盘块中找出文件 W 的文件控制块地址读入内存(已访盘 5 次)。在最好情况下,要访问的页在文件控制块的前 10 个直接块中,按照直接块指示的地址读文件 W 的相应页(已访盘 6 次)。所以,若要读文件 W 中的某一页,最少启动磁盘 6 次。

(4)为了减少启动磁盘的次数,可以将需要访问的 W 文件挂在根目录最前面的目录项中。此时,只需读内存中的根目录就可以找到 W 的文件控制块,将文件控制块读入内存(已访盘 1 次),最差情况下,需要的 W 文件的那个页挂在文件控制块的三级索引下,那么读 3 个索引块需要访问磁盘 3 次(已访盘 4 次)得到该页的物理地址,再去读这个页即可(已访盘 5 次)。此时,磁盘最多启动 5 次。