4

Если у меня система с более чем 4 ГБ ОЗУ и включенным PAE (на 64-разрядном процессоре), сможет ли многопоточное 32-разрядное приложение использовать всего 4 ГБ или 4 ГБ на поток?

Я спрашиваю, потому что у меня запущено программное обеспечение DAW (цифровая звуковая рабочая станция), которое совместимо только с 32-битной Windows XP (не могу использовать 7 или XP x64 из-за плохих драйверов), а мое программное обеспечение DAW (Sonar X1 Producer) является многопоточным приложение. Я планирую обновить с 4 ГБ до 12 ГБ в ближайшее время, и я хотел бы иметь возможность использовать все это (я могу использовать все это при моей установке Win7 x64). Поскольку я буду запускать только одно приложение, в большинстве случаев полезно (для установки XP), если каждый поток может использовать 4 ГБ, в отличие от приложения, использующего 4 ГБ.

3 ответа3

2

Процесс сможет использовать каждый байт физической памяти. Нет предела тому, сколько физической оперативной памяти может использовать процесс, при условии, что операционная система может получить доступ к этой физической оперативной памяти.

Однако общее адресное пространство всех потоков в процессе будет принципиально ограничено менее 4 ГБ (и на практике 2 ГБ или 3 ГБ), поскольку это максимальное поддерживаемое адресное пространство для 32-разрядного процесса. 32-разрядные процессы используют 32-разрядные указатели, а 2 ^ 32 = 4 ГБ. Все потоки разделяют все свое адресное пространство, иначе вы не сможете передать указатель из одного потока в другой.

Это ограничение применяется независимо от PAE и независимо от того, сколько у вас физической памяти. Обычно это 32 ГБ адресного пространства для 32-битных процессов. Вы можете настроить его на 3 ГБ с помощью переключателя /3GB .

Опять же, это не имеет ничего общего с использованием физической памяти - каждый процесс всегда может использовать каждый байт физической памяти. Это строго ограничение адресного пространства. PAE позволяет операционной системе использовать больше физической памяти. Ограничение адресного пространства влияет на то, как процессы используют виртуальную память.

1

MSDN обсуждает расширение физических адресов и другие большие адресации памяти. По сути, любое 32-битное приложение может отображать только ~ 2 ГБ памяти (это зависит от машины). Несмотря на то, что ОС может получить гораздо больший доступ, каждое отдельное приложение по-прежнему ограничено адресным пространством 2 ГБ. Примечание. Ограничение в 2 ГБ относится к 32-битному процессу, а не к потоку.

Windows XP Professional поддерживает режим 4GT (настройка 4 ГБ), который позволяет приложениям адресовать до 3 ГБ адресного пространства. Это можно включить с помощью параметра /3GB в файле boot.ini.

0

По умолчанию 32-битные приложения. может получить доступ к 2 Гбайт адресного пространства, независимо от объема физической оперативной памяти или установленных «флагов» (таких как /3G /PAE).

Программы. с установленным флагом LARGEADDRESSAWARE в заголовке .exe можно получить доступ к общему (сумме всех потоков) 3Gb адресного пространства в 32-битной системе, 4Gb в 64-битной системе.

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