Назад | Перейти на главную страницу

В чем разница между «выделенными байтами» и «невыгружаемыми байтами пула»

Я видел в некоторых блогах различия в отношении выделенных байтов и невыгружаемых байтов пула. Я думал, что оба являются зарезервированными воспоминаниями для NT-систем, которые нельзя записать в pagefile.sys. Так в чем разница?

Отсюда: http://support.microsoft.com/kb/2267427

Память, выделенные байты: Это показатель потребности в виртуальной памяти. Он показывает, сколько байтов было выделено процессами и для какой операционной системы был зафиксирован кадр страницы RAM или слот страницы в файле подкачки (или и то, и другое). По мере того, как количество зафиксированных байтов превышает доступную RAM, увеличивается количество страниц, а также увеличивается объем используемого файла подкачки. В какой-то момент пейджинговая активность начинает существенно влиять на воспринимаемую производительность.

Из "Выходя за рамки Windows: выгружаемый и невыгружаемый пул"Марк Руссинович

Невыгружаемый пул Ядро и драйверы устройств используют невыгружаемый пул для хранения данных, к которым можно получить доступ, когда система не может обработать ошибки страниц. Ядро входит в такое состояние, когда оно выполняет подпрограммы обслуживания прерываний (ISR) и отложенные вызовы процедур (DPC), которые являются функциями, связанными с аппаратными прерываниями. Ошибки страницы также являются незаконными, когда ядро ​​или драйвер устройства получает спин-блокировку, которая, поскольку они являются единственным типом блокировки, которая может использоваться в ISR и DPC, должна использоваться для защиты структур данных, к которым осуществляется доступ из ISR или DPC и другие ISR или DPC или код, выполняющийся в потоках ядра. Если драйвер не соблюдает эти правила, это приводит к наиболее распространенному коду сбоя - IRQL_NOT_LESS_OR_EQUAL.

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