某文件系统采用多级索引的方式组织文件的数据存放, 假定在文件的 i_node 中设有 13 个地址项, 其中直接索引 10 项, 一次间接索引项 1 项, 二次间接索引项 1 项, 三次间接索引项 1 项。 数据块的大小为 4k, 磁盘地址用 4 个字节表示, 问:
这个文件系统允许的最大文件长度是多少?
一个数据块可以保存 4KB/ 4B=1024 个地址单元
一次直接索引的最大长度为 4KB
一次间接索引最大长度为 1024*4KB=4MB
两次间接索引最大长度为 1024*1024* 4KB=4GB
三次间接索引最大长度为 1024*1024* 1024* 4KB=4TB
所以该文件系统允许最大文件长度为: 4KB* 10+4MB+4GB+4TB≈4500GB
一个 2G 大小的文件, 在这个文件系统中实际占用多少空间? (不包括 i_node 占用的空间)
4MB+4KB* 10<2GB<4GB, 所以该文件使用了 10 个直接索引项, 一个一次间接索引, 一个两次简介索引, 对于两次间接索引, 我们要计算出它的索引表的个数。
使用二次索引的大小为: 2GB-4MB-4KB=2093016KB
需要数据块块数: 2093016KB/ 4KB=523254 块
二级索引项为: [523254/ 1024]=511 项
所以一共需要索引块数为 511+1=512 块
索引块大小为 512* 4KB=2MB
所以 2G 的文件在文件系统中实际占用空间为 2GB+2MB=2052MB.