檔案對應
檔案對應 是檔案內容與進程虛擬位址空間一部分的關聯。 系統會建立 檔案對應物件(也稱為 區段物件),以維護此關聯。 檔案檢視 是進程用來存取檔案內容的虛擬位址空間部分。 檔案對應可讓進程同時使用隨機輸入和輸出 (I/O) 和循序 I/O。 它也可讓進程有效率地使用大型數據檔,例如資料庫,而不需要將整個檔案對應至記憶體。 多個進程也可以使用記憶體對應檔案來共享數據。
進程使用指標來讀取和寫入檔案視圖,就像使用動態分配的記憶體一樣。 使用檔案對應可提升效率,因為檔案位於磁碟上,但檔案檢視位於記憶體中。 程序也可以使用 VirtualProtect 函式來操作檔案檢視。
下圖顯示磁碟上的檔案、檔案對應物件和檔案檢視之間的關聯性。
磁碟上的檔案可以是您想要對應至記憶體的任何檔案,也可以是系統頁面檔案。 檔案對應物件可以包含檔案的所有或只有一部分。 它是由磁碟上的檔案所支援。 這表示當系統交換出檔案對應對象的頁面時,對檔案對應物件所做的任何變更會寫入檔案。 當檔案映射對象的頁面重新載入時,那些頁面會從檔案中還原。
檔案檢視可以包含檔案對應物件的所有或僅一部分。 進程會透過檔案視圖操作檔案。 程序可以為一個文件映射物件創建多個視圖。 每個進程所建立的檔案檢視都位於該程式的虛擬位址空間中。 當進程需要目前檔案檢視之外的文件部分數據時,可以取消映射目前的檔案檢視,然後建立新的檔案檢視。
當多個進程使用相同的檔案對應物件來建立本機檔案的檢視時,數據會一致。 也就是說,檢視表包含磁碟上檔案的相同複本。 如果您想要在多個進程之間共用記憶體,檔案無法位於遠端電腦上。
如需詳細資訊,請參閱下列主題: