大家好,我是这个网站的新手,我有一个问题。我在一次考试中遇到了这个问题,很想知道解决这个问题的正确方法是什么?问题如下。
在索引文件系统中,第一个索引块 (inode) 有 12 个直接指针和 1 个指向间接索引块的指针。文件系统在磁盘块大小为 1024 字节的磁盘上实现。所有指针都是 32 位的。问题:此文件系统的最大文件大小(千字节)是多少?
如果可能的话,不只是一个答案,而是一个解释。
顺便说一下,这是一道多项选择题,有 4 个答案
- 13 千
- 出生日期 268 K
- 约 524 K
- 死亡日期:1036 K
至于我的方法,我只知道 1 个指针是 32 位
此外,我还在网站上发现了一些非常有用的东西:https://stackoverflow.com/questions/2755006/understanding-the-concept-of-inodes
好的,我知道了,有 12 个块,每个块为 1024 字节。1024 * 12 = 12288 字节或 12 KB 可直接访问。如果我错了,请纠正我。每个指针为 32 位 = 4 字节,老实说,此时我开始感到困惑,尤其是因为我的答案远远超过我的任何多项选择题答案。
答案1
如果您能向我解释一下这个文件系统如何为 40 KiB 文件分配索引块和数据块,那么我可能会有所帮助。但我不具备您必须了解的上下文,无法理解这个假设的文件系统如何使用索引块、索引块中的直接指针以及问题中引用的间接索引块。
共有 12 个块,每个块为 1024 字节。1024 * 12 = 12288 字节或 12 KB 可直接访问。
显然,如果存储文件数据的唯一方法是为每个 inode 指针分配 1 个数据块,则文件大小限制将为 12 KB。由于这不是您的答案之一,我假设您没有完全理解文件的数据在此示例文件系统中的存储方式。
请记住,还有一个指向间接索引块的指针。此文件系统中的间接索引块的用途是什么?
如果我理解正确的话,这个文件系统中间接索引块的用途是间接指针指向整个指针块。
假设您是正确的……由于我没有上过您的课,所以您比我更清楚……间接索引块可以容纳多少个指针?使用这些指针您可以存储多少(更多)数据?总的最大文件大小是多少?
答案2
我的猜测是:
12 directly-pointed blocks
1 index block containing (1024 / 4) = 256 block-pointers
Total: 12 + 256 = 268 blocks = 268 K
尽管我必须指出,这个问题非常模糊。