gpt4 book ai didi

operating-system - 在每种情况下,最大文件大小是多少?

转载 作者:行者123 更新时间:2023-12-04 08:32:02 24 4
gpt4 key购买 nike

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

有人可以帮我解决这些问题吗?

最佳答案

几年前,我曾经是一名文件系统开发人员。

使用链接中提供的 Material ...

可以使用存储在 inode 中的直接 block 访问 0 .. (80 kB - 1) 范围内的任何文件偏移量。这是因为有十个 8 kB block 的事实。

由于磁盘 block 为 8 kB(8192 字节),磁盘地址为 32 位(4 字节),因此每个磁盘 block 最多可容纳 2048 (8192/4) 个磁盘地址条目。这意味着单个间接 block 最多可以引用 2048 * 8 kB 字节的文件数据 (16 MB)。对此进行扩展,我们发现双重间接 block 最多可以引用 2048 * 2048 * 8kB 的文件数据(32 GB)。

使用直接 block 可以访问多达 80 kB 的文件数据。这转化为文件偏移量 0 到 (80 kB - 1) (含)。

使用存储在 inode 中的单个间接 block 可以访问多达 16 MB 的文件数据。这转化为文件偏移量为 80 kB 到 (16 MB + 80 kB - 1)(含)。

使用存储在 inode 中的双重间接 block 可以访问多达 32 GB 的文件数据。这转化为文件偏移量 (16 MB + 80 kB) 到 (32 GB + 16 MB + 80 kB - 1) (含)。

使用存储在 inode 中的三重间接 block 可以访问多达 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。

实际的最大尺寸是另一回事。它可以受到以下任何一种或组合的限制:

  • 光盘的大小。
  • 分区大小。
  • 固有的文件系统元数据限制。即使 X 小于理论最大文件大小,某些文件系统的设计也无法解决超出大小 X 的问题。
  • 与第 3 项相关,但值得一提的是 inode 中保留的用于存储文件大小的位数。如果没有内存,原来的 Ext2 将文件大小限制为 32 位。这为文件大小创建了 (2 GB - 1) 限制。

  • 如果文件系统支持稀疏文件(链接中描述的可能因为它使用间接 block ),则可以“解决”一些实际限制。稀疏文件允许在不使用 2 TB 实际磁盘空间的情况下将 2 TB 文件“安装”在 1 GB 磁盘上。顺便说一句,这就是为什么一个 inode 可能经常包含有关文件实际使用的 block 数的信息的原因之一。

    希望有帮助。

    关于operating-system - 在每种情况下,最大文件大小是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4383493/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com