Ваш ответ не совсем верен.
Файловый кеш, также называемый системным кешем, описывает диапазон виртуальных адресов, имеет физический рабочий набор, отслеживаемый MmSystemCacheWs
, и этот рабочий набор является подмножеством. всех физических страниц отображаемых файлов в системе.
Системный кеш представляет собой диапазон виртуальных адресов, следовательно, PTE, которые указывают на отображаемые страницы файла. Страницы сопоставленного файла вводятся процессом, создающим сопоставление, или вводятся системным диспетчером кэша в ответ на чтение файла.
Существующие страницы, необходимые файловому кешу в ответ на чтение, становятся частью рабочего набора системы. Если страница в сопоставленном файле отсутствует, она выгружается и становится частью рабочего набора системы. Когда страница входит в несколько рабочих наборов (т. е. система и процесс или процесс и другой процесс), считается, что она находится в общем рабочем наборе в таких программах, как VMMap.
Сами фактически отображаемые страницы файла контролируются объектом раздела, по одному на файл, областью управления данными (для файла) и объектами подраздела для файла, а также объектом сегмента для файла с прототипами PTE для файла. Они создаются в первый раз, когда процесс создает объект сопоставления для файла или когда диспетчер системного кэша впервые создает объект сопоставления (объект раздела) для файла из-за необходимости доступа к файлу в ответ на файловую операцию ввода-вывода. выполняется процессом.
Когда диспетчеру системного кэша необходимо прочитать файл, он отображает представления файла размером 256 КБ за раз и отслеживает представление в объекте VACB. Процесс сопоставляет переменное представление файла, обычно размер всего файла, и отслеживает это представление в процессе VAD. Действие сопоставления представления заключается в простом заполнении PTE, указывающих на физические страницы, содержащие файл, который уже находится в резидентном месте, путем просмотра PTE-прототипа для этого диапазона в файле и просмотра того, что он содержит, и в случае, если PTE-прототип не указывает на физическую страницу, инициализируя PTE так, чтобы он указывал на прототип PTE, а не на страницу, на которую он указывает, и PTE остается недействительным, и эта ошибка будет устраняться по запросу на странице за страницей при чтении из представление действительно выполняется.
VACB отслеживают представления файлов размером 256 КБ, открытые диспетчером кеша, и диапазон виртуальных адресов этого представления, который описывает диапазон из 64 PTE, обслуживающих этот диапазон виртуальных адресов. Отсутствует виртуальная внешняя фрагментация или внешняя фрагментация таблицы страниц, поскольку все представления имеют одинаковый размер, и отсутствует физическая внешняя фрагментация, поскольку все страницы в представлении имеют размер 4 КБ. 256 КБ — это размер, потому что, если бы он был меньше, было бы слишком много объектов VACB (в 64 раза больше, занимающих место), а если бы он был больше, была бы большая внутренняя фрагментация из-за операций чтения и, следовательно, большие виртуальные объекты. загрязнение адресов, а также VACB использует младшие биты виртуального адреса для хранения количества операций ввода-вывода, которые в настоящее время выполняются в этом диапазоне, поэтому размер VACB должен быть увеличен на несколько бит, иначе он будет иметь возможность обрабатывать меньше параллельных операций ввода-вывода.
Если бы представление представляло собой весь размер файла, то быстро возникло бы сильное загрязнение виртуальных адресов, потому что оно отображало бы весь каждый прочитанный файл, а сопоставления файлов должны выполняться для пользовательских процессов, которые сознательно отображают целое представление файла в свое виртуальное адресное пространство, ожидая доступа ко всему файлу. Также будет много виртуальной внешней фрагментации, потому что представления не будут одинакового размера.
Что касается исполняемых образов, то они отображаются отдельно с отдельными прототипами PTE и отдельными физическими страницами, отдельной областью управления, отдельным сегментом и объектом подраздела на карту файла данных для файла. Процесс сопоставляет изображение, но ядро также сопоставляет изображения для ntoskrnl.exe
, hal.dll
в большие страницы, а затем образы драйверов находятся в системном рабочем наборе PTE.
person
Lewis Kelsey
schedule
24.03.2021