树状/分层文件系统和平面文件系统之间的功能差异是什么?

树状/分层文件系统和平面文件系统之间的功能差异是什么?

我能想到的唯一区别都是审美上的。

例如,当您有许多文件时,用户将很难导航到所需的文件,因为它不会像带有目录的树状文件系统那样很好地组织起来。

有没有功能性的差异?

树状文件系统是可以创建子目录的系统,而平面文件系统没有子目录,只有一个文件夹,其中包含所有文件。

答案1

比较文件系统结构

我们想要比较文件系统结构以寻找非美学差异。

我们比较等级制度
具有目录树结构的文件系统,平坦的仅一个位置包含所有文件的文件系统,类似于没有子目录的单个目录。

两种主要的差异在于 CPU 时间和内存使用。
这里可能相关的另一种类型是实现的复杂性。

文件访问性能

列出目录的性能取决于目录的文件数。
即使在分层文件系统中,如果文件很多,列出目录中的文件以将其删除也可能是一个问题。

这一切不仅仅与数千个文件相关,而且对于 100 个目录中的每一个目录中的数十万个文件,您最好不要将它们全部放在一个平面文件系统中,或者全部放在一个目录中。

问题是目录列表会遍历整个列表 - 因为目录内没有使用树。
要查找文件,平均必须读取大约一半的文件名。

对于平面文件系统中的 1000000 个文件,这意味着我们需要读取 500000 个名称。

在树结构中,我们可以通过将文件拆分为 1000 个目录,每个目录包含 1000 个文件来使用树的两层。为了找到一个,我们需要在每个级别平均读取 500 个名字,总共 1000 个。
我们还可以使用包含 100 个条目的三个级别。我们平均需要读取 150 个名字。

通过这个示例计算,树结构很可能比平面文件系统快得多,大约快 2000 倍。

多种用途

分层文件系统中树的一部分可用于某些用途单独的目的,同时不将其余部分用于此目的:
例如,您可以另一个文件系统(无论是否平坦)放入分层文件系统的子目录中。
挂载到平面文件系统中与挂载到分层文件系统的根中一样没有意义。

权限

树形结构的文件系统具有子部分(子目录),您可以为其分配权限。
在平面文件系统中,您无法让某人只看到部分文件名。
要更改平面文件系统中部分文件的权限是不可能一次完成的 - 它需要更改每个单独的文件权限,并且可能需要几秒钟或几分钟,而权限不清楚并且正在发生变化。

小而简单

平面文件系统在资源有限的环境(嵌入式系统)中具有优势。
平面文件系统的实现可以非常简单。只要要处理的文件数量很少,它甚至可以比分层文件系统更快!

硬件设备可能需要存储文件列表,每个文件都标有数字,并且一次不能超过 1000 个。对于此任务,如果允许使用更小的处理器,那么使用平面文件系统是有意义的,从而延长电池寿命。

平面文件系统的简单性也有助于确保文件系统在实现中没有错误。

相关内容