Память приложения на 32 бита использует в операционной системе на 64 бита.

Если моя операционная система составляет 64 бита, мои 32 бита приложений могут использовать 64 бита памяти (> 3.5 ГБ)?

13
задан 30.10.2012, 17:53

4 ответа

Если приложением является AWE, знающий затем, что они могут использовать адресное пространство вне 4 ГБ, хотя менее эффективно, чем 64-разрядное приложение был бы. Для 32-разрядных процессов под 32-разрядными вариантами Windows даже возможно получить доступ к больше, чем 32-разрядное адресное пространство позволило бы, если PAE включен, и процесс способен к использованию его.

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

Так как предел для каждого процесса, более полезно в подобной Unix среде, где услуги склонны быть базирующимся процессом, а не поток базировался (несколько потоков в одном процессе совместно используют ресурсы процессов и поэтому совместно используют единственное виртуальное адресное пространство на 3 ГБ), как более распространено в соответствии с Windows (начинающий новый процесс в Windows как довольно дорогой, таким образом, потоки предпочтены, под большинством сред Unix, начинающих новый процесс, не намного больше потребления ресурса, чем начинание новой дискуссии). Это не очень полезно для машины, которая выполняет просто SQL Server, например, как это это только собирающийся быть одним процессом так поразит предел на 3 ГБ (некоторые выпуски могут быть настроены, чтобы быть знающим AWE, но не все, и функция намечена, чтобы быть удаленной в следующей главной версии).

А также 32-разрядная способность процессов использовать больше чем 3 ГБ всего ОС сможет использовать любую неиспользованную память для кэширования диска, таким образом, это не сможет пропасть зря, предполагая, что процессы не открывают файлы таким способом как, чтобы сказать ОС не потрудиться делать это.

6
ответ дан 07.12.2019, 11:39

Если приложение использует AWE, то да (хотя это не ограничивается 64-разрядными Ose). Без него процесс все еще ограничивается 4 ГБ адресного пространства.

5
ответ дан 07.12.2019, 11:39

Вид, в зависимости от того, что Вы имеете в виду.

Принятие Windows...

Если ОС является 64-разрядной, 32-разрядный процесс по умолчанию получает 2 ГБ адресного пользователем виртуального адресного пространства. Если заголовок PE .exe файла будет отмечен с флагом IMAGE_FILE_LARGE_ADDRESS_AWARE, то процесс получит 4 ГБ адресуемого пользователем виртуального адресного пространства. В любом случае виртуальное адресное пространство ядра совпадает с 64-разрядными процессами, так как это совместно используется через все процессы. Также знаменитые, 64-разрядные процессы, которые не устанавливают флаг IMAGE_FILE_LARGE_ADDRESS_AWARE также только, имеют доступ к 2 ГБ пользовательского виртуального адресного пространства.

Вещи, которые Вы слышите о специальных флагах начальной загрузки, 3 ГБ,/3GB переключатели или/userva, являются всеми о 32-разрядных операционных системах и не применяются на 64-разрядный Windows.

Через это все пробегаются в мучительных деталях о Пределах Памяти Microsoft для страницы Windows Releases.

Ответ Spillett @David также затрагивает другую точку: Несколько процессов, все ограниченные 2 ГБ пространства пользователя, могут все еще использовать существенное количество RAM при наличии, как может кэш файла.

3
ответ дан 07.12.2019, 11:39

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

На ОС на 64 бита процесс на 32 бита получит 4 ГБ, если это будет большой знающий адрес, 2 ГБ иначе.

Все это для не AWE осведомленные процессы. Если процесс способен к использованию AWE затем, как другие сказали, это может использовать большое адресное пространство, но менее эффективно затем процесс на 64 бита.

PAE позволяет ОС на 32 бита использовать больше чем 4 ГБ RAM, однако, это имеет проблемы совместимости и было отключено в XP одним из пакетов обновления, таким образом, это только доступно на версиях ОС сервера.

0
ответ дан 07.12.2019, 11:39

Теги

Похожие вопросы