我很好奇作業系統如何在檔案系統中尋找檔案。
例如我知道FAT檔案系統中有一個檔案資料庫。
我知道作業系統查找檔案的速度非常快,
所以我想知道它是否使用二進位搜尋來遍歷 FAT 資料庫?
或者有更快的方法來做到這一點?
是否有一種方法可以讓作業系統直接推斷出檔案在檔案系統中的位置,而無需搜尋 FAT 資料庫?
答案1
老實說……這個問題有很多答案……太多了,無法在此一一列舉。這在很大程度上取決於類型檔案系統的...以及讀取它的作業系統...以及啟用了檔案系統的哪些功能。
正如您所描述的,每個檔案系統都有某種“資料庫”,用於將名稱/路徑轉換為磁碟上的一個或多個位置。這個「資料庫」的工作方式使得每個檔案系統都不同。對於某些任務,某些方法比其他方法更好。有些在發生故障時更具可恢復性和冗餘性...有些嚴格注重速度,並且在發生單一故障時幾乎無法恢復。
根據作業系統和檔案系統類型,「資料庫」可以部分甚至完全載入到 RAM 中,以幫助加快在磁碟上定位位置的過程。一些檔案系統利用鍊錶和 B 樹或其他類型的有序樹來快速定位文件。日記還可以顯著加快讀/寫過程(在適當的條件下)。甚至有些檔案系統(大部分是專有的)確實是資料庫。
真正的問題是......你為什麼想知道......以及你想要完成什麼?如果您想要更具體的答案...請提供有關您正在談論的作業系統/平台/檔案系統的更多細節。