Сопоставление файлов

Сопоставление файлов — это связь содержимого файла с частью виртуального адресного пространства процесса. Система создает объект сопоставления файлов (также известный как объект раздела) для поддержания этой связи. Представление файла — это часть виртуального адресного пространства, которую процесс использует для доступа к содержимому файла. Сопоставление файлов позволяет процессу использовать как случайные входные и выходные (I/O), так и последовательные операции ввода-вывода. Это также позволяет процессу эффективно работать с большим файлом данных, например с базой данных, без необходимости сопоставлять весь файл с памятью. Несколько процессов также могут использовать сопоставленные с памятью файлы для совместного использования данных.

Обрабатывает чтение из представления файлов и запись в нее с помощью указателей так же, как и с динамически выделенной памятью. Использование сопоставления файлов повышает эффективность, так как файл находится на диске, а представление файла находится в памяти. Процессы также могут управлять представлением файлов с помощью функции VirtualProtect .

На следующем рисунке показана связь между файлом на диске, объектом сопоставления файлов и представлением файла.

связь между файлом на диске, объектом сопоставления файлов и представлением файла.

Файл на диске может быть любым файлом, который требуется сопоставить с памятью, или файлом системной страницы. Объект сопоставления файлов может состоять из всего файла или только его части. Он поддерживается файлом на диске. Это означает, что при переключении страниц объекта сопоставления файлов все изменения, внесенные в объект сопоставления файлов, записываются в файл. Когда страницы объекта сопоставления файлов переключаются обратно, они восстанавливаются из файла.

Представление файла может состоять из всего объекта сопоставления файлов или только его части. Процесс управляет файлом через представления файлов. Процесс может создать несколько представлений для объекта сопоставления файлов. Представления файлов, созданные каждым процессом, находятся в виртуальном адресном пространстве этого процесса. Если процессу требуются данные из части файла, отличной от текущего представления файла, он может отменить сопоставление текущего представления файлов, а затем создать новое представление файла.

Если несколько процессов используют один и тот же объект сопоставления файлов для создания представлений для локального файла, данные являются согласованными. То есть представления содержат идентичные копии файла на диске. Файл не может находиться на удаленном компьютере, если требуется совместно использовать память между несколькими процессами.

Дополнительные сведения см. в следующих разделах: