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?
来源:http://ti.uni-due.de/ti/en/education/teaching/ss06/dv2/ex2_sol.pdf
有人可以帮我解决这些问题吗?
答案 0 :(得分:7)
几年前,我曾经是一名文件系统开发人员。
使用链接中提供的资料......
可以使用存储在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可能经常包含有关文件实际使用的块数的信息的原因之一。
希望有所帮助。
答案 1 :(得分:1)
我不熟悉unix系统,但是在您提问的文档的第18/19页上 似乎给出了答案。你有什么问题?
假设磁盘块是8K字节和 光盘地址是32位: - 什么尺寸可以直接解决 从i节点的信息? - 什么尺寸的文件需要双倍 间接阻滞? - 什么是最大的 可能的文件?答案:a)磁盘块= 8K字节i-node => 10个磁盘块 可以访问地址8K * 10 = 80K 直接
答案 2 :(得分:1)
答案实际上是在文件中给出的,人们需要阅读源材料,这些幻灯片是基于。
基本上:
Assume disc blocks are 8K bytes and that disc addresses are 32 bits:
1)What size can be directly addressed from the information in the i-node?
2)What size of file requires a double indirect block?
3)What is the largest possible file?
在答案前的幻灯片上,解释了Unix文件的结构,它非常清楚地说明了10个块地址。
显然8K * 10 = 80k字节。
如果没有讲座本身,我将无法引用您自己的材料,您可以自己研究,但我会继续。
我知道2 ^ 8是256而2 ^ 3是8所以256 * 8 = 2048KB这是2MB * 8 = 16384 * 1024 = 16777216 = 16MB
Double Indirect是间接地址(两次)所以只有2048 * 2048,即4GB * 8 * 1024 = 34359738368 = 32GB
Triple indirect是双重间接地址中间接的地址,所以
32GB * 2048(2MB)= 70368744177664 = 64TB
是的,我查看了答案并得出了一些结论,没有源材料,我不能发布任何其他内容。