Operating system FAT表中的多步遍历导致寻道时间长

Operating system FAT表中的多步遍历导致寻道时间长,operating-system,filesystems,traversal,seek,fat,Operating System,Filesystems,Traversal,Seek,Fat,在基于FAT的文件系统设计中,“seek”涉及遍历文件系统中存在的链接 胖表,就像在链表中一样。它将文件中的当前指针(由文件描述符指向)向前移动一段距离,例如“O”偏移字节。对于非常大的O值,由于FAT表中的多步遍历,这可能非常低效。我们是否可以通过某种方式扩展FAT表结构来提高seek操作的性能。是否已经有一些方法来处理这个问题?另外,如何处理大于文件大小的偏移量以避免文件结束错误?我不确定,因为我从未实现过文件系统或文件系统驱动程序。我想说seek方法不读取“胖表”。相反,它将只在当前打开的

在基于FAT的文件系统设计中,“seek”涉及遍历文件系统中存在的链接
胖表,就像在链表中一样。它将文件中的当前指针(由文件描述符指向)向前移动一段距离,例如“O”偏移字节。对于非常大的O值,由于FAT表中的多步遍历,这可能非常低效。我们是否可以通过某种方式扩展FAT表结构来提高seek操作的性能。是否已经有一些方法来处理这个问题?另外,如何处理大于文件大小的偏移量以避免文件结束错误?

我不确定,因为我从未实现过文件系统或文件系统驱动程序。我想说seek方法不读取“胖表”。相反,它将只在当前打开的文件中查找。这就是为什么还有一种“开放”方法。open方法将返回一个指向文件开头的指针,然后就不需要再次查找该文件了。只需查找当前打开的文件(您已经知道文件的位置)。硬盘与主内存不同,它的内存被分为不同的位置。文件连续存储在硬盘上。一旦你在硬盘上找到文件。你有它的起始位置。若要查找,只需将偏移量添加到此起始位置。@user123我了解到,即使在硬盘中,文件也不会连续存储。它们被分割,不同的区域被连接在一起,就像FAT表中的一个链表一样。这可能是正确的,但无论如何,文件是打开的,因此查找的费用没有打开文件的费用高。我非常确定open方法将“获取”文件。seek方法只会在打开的文件中搜索到某个位置。