索引分配最大文件大小
index allocation maximum file size
以下是有关文件系统索引分配的示例测验问题。
我有点卡住了。我认为答案可能是 512^3 字节,但我不确定。谁能解释一下。
An OS uses three-level indexing for file allocation. If an index block
contains n pointers to other blocks (data or index), what is the
maximum size allowed for a file using such an allocation scheme?
你走在正确的轨道上。
第一个节点有问题中给出的n个指针。通常,对于三重间接系统,这意味着有 n-3 "direct" 个指向数据的指针和 3 个指向另一个索引块的间接指针。
这张图片来自哈佛大学,链接如下:
图中显示单个间接指针只指向一个个索引块,然后指向数据块。双间接指针指向一个索引块,该索引块包含 n 个指向更多索引的指针!三重间接指针是相同的,只是它在到达数据块之前有 3 层索引块。
所以有n-3个直接块;
n 个间接块;
n^2 双间接块和
n^3 个三重间接块。
给定任意块大小,总的最大大小变为:
blocksize*(n^3 + n^2 + n + (n-3))
或
blocksize*(n^3 + n^2 + 2n - 3)
查看哈佛大学的这些幻灯片:http://www.eecs.harvard.edu/~mdw/course/cs161/sp07/notes/ffs.pdf
此站点还描述了 4.3 BSD UNIX 如何实现它:https://web.stanford.edu/~ouster/cgi-bin/cs140-winter16/lecture.php?topic=files
以下是有关文件系统索引分配的示例测验问题。 我有点卡住了。我认为答案可能是 512^3 字节,但我不确定。谁能解释一下。
An OS uses three-level indexing for file allocation. If an index block contains n pointers to other blocks (data or index), what is the maximum size allowed for a file using such an allocation scheme?
你走在正确的轨道上。
第一个节点有问题中给出的n个指针。通常,对于三重间接系统,这意味着有 n-3 "direct" 个指向数据的指针和 3 个指向另一个索引块的间接指针。
这张图片来自哈佛大学,链接如下:
图中显示单个间接指针只指向一个个索引块,然后指向数据块。双间接指针指向一个索引块,该索引块包含 n 个指向更多索引的指针!三重间接指针是相同的,只是它在到达数据块之前有 3 层索引块。
所以有n-3个直接块;
n 个间接块;
n^2 双间接块和
n^3 个三重间接块。
给定任意块大小,总的最大大小变为:
blocksize*(n^3 + n^2 + n + (n-3))
或
blocksize*(n^3 + n^2 + 2n - 3)
查看哈佛大学的这些幻灯片:http://www.eecs.harvard.edu/~mdw/course/cs161/sp07/notes/ffs.pdf
此站点还描述了 4.3 BSD UNIX 如何实现它:https://web.stanford.edu/~ouster/cgi-bin/cs140-winter16/lecture.php?topic=files