2018 863 问答题
某文件系统的磁盘块大小为 1KB,在文件的索引节点中存放直接索引指针 16 个,一级间接索引指针 4 个,二级间接索引指针 1 个,每个索引指针占 4 个字节。用户进程欲访问 /home/student/course/os/homework/bitmap.dat 文件字节偏移量为第 1280 和 1280000 处的各 128 字节的记录。假设当前除了根目录索引节点在内存外,相关目录和文件数据都不在内存中,且每个目录和索引节点只占一个磁盘块,那么完成数据访问一共需要读取多少个磁盘块?给出相应的描述过程。
我的答案:
1.首先得到bitmap.dat的索引结点,需要读取6次磁盘块。
2.分析第一个记录1024B < 1280B+128B < 2048B。所以通过直接索引块可直接得到该记录。需要读取磁盘1次。
3.分析第二个记录1280128B在1280128B/1024B = 1250的磁盘块中。16个直接索引指向16个磁盘块,一级索引指向(1024B/4B)*4=1024个磁盘块。
1250>16+1024,所以1280128B在二级索引中。需要读取3次磁盘。
综上,完成数据访问需要读取6+1+3=10次磁盘。
请问我的答案是否合理?