系统分析师试题分析 索引式文件的索引节点

如果一个索引式文件的索引节点有10个直接块,1个一级间接块,1个二级间接块,1个三级间接块。假设每个数据块的大小是512个字节,一个索引指针占用4个字节。假设索引节点已经在内存中,那么访问该文件偏移地址在6000字节的数据需要再访问 ( ) 次磁盘。

A.1
B.2
C.3
D.4

正确答案

B

答案解析

[解析] 因为每个数据块的大小是512个字节,且前10块可以直接寻址,得出1~5120字节范围内可以直接寻址。对于间接索引块(索引块的大小也是512字节),一个索引指针占4字节,则一个索引块可以映射512/4=128个数据块,因为每个数据块的大小是512个字节,合计64KB。6000B-5120B=880B<64KB,所以只需一次映射就够了。因此,第1次,取索引指针,第2次读数据,一共需要两次访问。

1.先理解直接地址索引、一级间接索引、二级间接索引
直接地址索引:直接指向一个存数据的磁盘块

一级间接索引:指向一个内容全部是直接地址索引的磁盘块,它所指向的这个磁盘块中的每个直接地址索引,又指向不同的存数据的磁盘块

二级间接索引:先指向一个包含一级间接索引的磁盘块,每个一级间接索引再指向一个包含直接地址索引的磁盘块,每个直接地址索引再直接指向一个存数据的磁盘块

2.分析

每个磁盘块大小256B,每个地址项大小为4B,因此一个磁盘块可以存放256/4=64个地址项,因此,在一级间接索引和二级间接索引的那些中间的存放地址索引的磁盘块,每个可以存放64个地址

单个文件的索引结点包含的地址项所指向的存放数据的磁盘,若都是存放这个文件的数据,没有其他文件的数据跟它共享一个磁盘块,那这些所有所指的存放数据的磁盘块的大小就是单个文件的最大长度

4个直接地址索引,直接指向4个存放数据的磁盘块,这部分数据大小为4*256B=1024B

1个一级间接地址索引,指向一个包含64个直接地址索引的磁盘块,每个直接地址索引又指向一个存放数据的磁盘块,因此,一个一级间接地址索引所对应的数据大小为64*256B=16384B

1个二级间接地址索引,指向一个包含64个一级间接地址的磁盘块,每个一级间接地址又指向64个直接地址索引,因此一个二级间接地址索引一共指向6464个直接地址索引,因此一个二级间接地址索引对应的数据大小为6464*256=1048576B

因此,一个文件的索引结点包含的4个直接地址索引+2个一级间接索引+1个二级间接索引所能表示的单个文件最大长度为1024B+2*16384B+1048576B=1082368B=1057KB

参考链接


发布者

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注