По умолчанию ядром использовалось до XP 2 ГБ, а остальные 2 ГБ были доступны для всех программ. При запуске XP с командной строкой / 3 ГБ программы, связанные с флагом / LARGEADDRESSAWARE, могут использовать до 3 ГБ виртуального адресного пространства .
Это означает, что каждое приложение может управлять до 3 ГБ. 32-битные окна могут поменять память на файл подкачки, и это может стать больше, чем 4 ГБ. Таким образом, возможно, что 2 приложения вместе могут выделить гораздо больше, чем 3 ГБ.
Я только что проверил это на 4 ГБ 32-битной машине XP. Я запустил 3 приложения, каждое из которых выделило 2 ГБ, используя VirtualAlloc
, и заполнило его, используя memset
. Диспетчер задач показывает, что общий объем выделенной виртуальной памяти составляет 7 ГБ. Это, конечно, не очень практично. Если два из этих приложений попытаются использовать всю свою память одновременно, машина замедлится до восприятия как зависание системы