操作系统如何在文件系统中查找文件?

操作系统如何在文件系统中查找文件?

我很好奇操作系统如何在文件系统中查找文件。
例如,我知道在 FAT 文件系统中有一个文件数据库。

我知道操作系统查找文件的速度非常快,
所以我想知道它是否使用二进制搜索来遍历 FAT 数据库?
或者有没有更快的方法来做到这一点?

并且有没有一种方法可以让操作系统直接推断出文件系统中文件的位置,而无需搜索 FAT 数据库?

答案1

老实说……这个问题有很多答案……太多了,无法一一列举。这在很大程度上取决于类型文件系统...和读取它的操作系统...以及文件系统的哪些功能被启用。

正如您所描述的,每个文件系统都有某种“数据库”,用于将名称/路径转换为磁盘上的一个或多个位置。这个“数据库”的工作方式是每个文件系统不同的原因。有些方法对某些任务比其他方法更好。有些方法在发生故障时更易于恢复和冗余……有些方法严格以速度为导向,在发生单一故障时几乎无法恢复。

根据操作系统和文件系统类型,“数据库”可以部分甚至全部加载到 RAM 中,以帮助加快在磁盘上定位位置的过程。一些文件系统利用链接列表和 B 树或其他类型的有序树来快速定位文件。日志记录还可以显著加快读/写过程(在适当的条件下)。甚至有文件系统(大部分是专有的)真正是一个数据库。

真正的问题是...你为什么想知道...以及你想实现什么?如果你想要更具体的答案...请详细说明你正在谈论的操作系统/平台/文件系统。

相关内容