第 29 题
在文件的索引节点中存放直接索引指针 10 个,一级和二级索引指针各 1 个。磁盘块大小为 1KB,每个索引指针占 4 个字节。若某文件的索引节点已在内存中,则把该文件偏移量(按字节编址)为 1234 和 307400 处所在的磁盘块读入内存,需访问的磁盘块个数分别是( )。
A. 1、2 B. 1、3 C. 2、3 D. 2、4
[tag_link] 正确答案:B本题考察 混合索引:其中 10 个直接索引指针指向的数据块大小为 10×1KB = 10KB。每个索引指针占 4B,则每个磁盘块可存放 1KB/4B = 256 个索引指针,一级索引指针指向的数据块大小为 256×1KB = 256KB,二级索引指针指向的数据块大小为 256×256×1KB = 216KB = 64MB。按字节编址,偏移量为 1234 时,因 1234B < 10KB,则由直接索引指针可得到其所在的磁盘块地址。文件的索引结点已在内存中,则地址可直接得到,故仅需 1 次访盘即可。偏移量为 307400 时,因 10KB+256KB < 307400B < 64MB,可知该偏移量的内容在二级索引指针所指向的某个磁盘块中,索引结点已在内存中,故先访盘 2 次得到文件所在的磁盘块地址,再访盘 1 次即可读出内容,故共需 3 次访盘。