2

Я знаю, что делает переключатель /burnmemory в Windows, но я бы хотел понять, что делает Windows под капотом для его поддержки.

На msdn он описывается как «объем памяти в мегабайтах, который Windows не может использовать».

Означает ли это просто, что ядро не позволяет отображать виртуальную память пользователя в этой области? Как это выполняется в ядре, и есть ли другие ограничения, которые ядро будет устанавливать, когда установлена запись памяти?

1 ответ1

1

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

Когда вы загружаете компьютер с этим коммутатором, ядро определяет общий объем физической памяти, вычисляет физически наиболее адресуемый физический адрес (из общего объема оперативной памяти минус заданное значение в мегабайтах) после учета любых пробелов в распределении системной памяти (из времени загрузки или другое использование системы), и устанавливает это как нижний предел адреса ОЗУ.

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

С точки зрения ядра, этот переключатель буквально изменяет минимально возможный адрес памяти (ядро считает, что конечный адрес является физическим началом памяти вашей системы). Любые приложения, пытающиеся получить доступ к памяти за пределами диапазона, запускают DEP или BSOD.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .