Поделиться через


разделы File-Backed и страницаFile-Backed

Все разделы памяти поддерживаются ("backed") дисковыми файлами, которые могут временно или постоянно содержать данные для совместного использования.

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

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

Раздел , связанный с файлом, отражает содержимое реального файла на диске; другими словами, это файл, сопоставленный с памятью. Любой доступ к расположениям памяти в файловом разделе соответствует доступу к расположениям в связанном файле.

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

Также можно сопоставить файловый участок памяти как копирующий при записи. В этом случае данные представления считываются из файла, но все данные, записанные в представление, не записываются в файл; вместо этого они удаляются после того, как финальное представление удалено из отображения, а последний дескриптор раздела закрыт.

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

Любой раздел, с поддержкой файлов или без неё, можно совместно использовать между двумя процессами. Тот же диапазон адресов физической памяти сопоставляется с диапазоном адресов виртуальной памяти в каждом процессе (хотя и не обязательно с тем же виртуальным адресом).