在文件的索引节点中存放直接索引指针10 个,一级和二级索引指针各 1 个。磁盘块大小为 1KB,每个索引指针占 4 个字节。若某文件的索引节点已在内存中,则把该文件偏移量(按字节编址)为 1234和 307400 处所在的磁盘块读入内存,需访问的磁盘块个数分别是()。
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 次访盘。(来自王道论坛)
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 次访盘。