Assume disc blocks are 8K bytes and that disc addresses are 32 bits: •
from the information in the i-node? – What size can be directly addressed
– What size of file requires a double indirect block?
– What is the largest possible file?
Run Code Online (Sandbox Code Playgroud)
资料来源:http://ti.uni-due.de/ti/en/education/teaching/ss06/dv2/ex2_sol.pdf
有人可以帮我解决这些问题吗?
几年前我曾经是一名文件系统开发人员.
使用链接中提供的材料......
可以使用存储在inode中的直接块访问范围为0 ..(80 kB - 1)的任何文件偏移量.这是因为有10个8 kB的块.
由于磁盘块为8 kB(8192字节),磁盘地址为32位(4字节),因此每个磁盘块最多可容纳2048(8192/4)个磁盘地址条目.这意味着单个间接块可以引用最多2048*8 kB字节的文件数据(16 MB).扩展这一点,我们发现双重间接块可以引用最多2048*2048*8kB的文件数据(32 GB).
使用直接块可以访问高达80 kB的文件数据.这转换为文件偏移0到(80 kB - 1),包括端点.
使用inode中存储的单个间接块可以访问最多16 MB的文件数据.这转换为80 kB到(16 MB + 80 kB - 1)的文件偏移量.
使用存储在inode中的双重间接块,可以访问最多32 GB的文件数据.这转换为文件偏移(16 MB + 80 kB)到(32 GB + 16 MB + 80 kB - 1).
使用存储在inode中的三重间接块,可以访问多达64 TB的文件数据.这转换为文件偏移(32 GB + 16 MB + 80 kB)到(64 TB + 32 GB + 16 MB + 80 kB - 1).
因此,文件的理论最大大小为64 TB + 32 GB + 16 MB + 80 kB.
实际的最大尺寸是另一回事.它可以受以下任何一个或组合的限制:
如果文件系统支持稀疏文件(链接中描述的文件系统可能会使用间接块),则可以"解决"一些实际限制.稀疏文件允许在1 GB光盘上"装配"2 TB文件等情况,而不使用2 TB的实际磁盘空间.顺便提一下,这是为什么inode可能经常包含关于文件实际使用的块数的信息的原因之一.
希望有所帮助.