5

Возможный дубликат:
Почему Windows показывает только около 3,5 ГБ моего 4 ГБ + ОЗУ?
Может ли 32-битная ОС использовать все 8 ГБ ОЗУ + 20 ГБ файла подкачки?

Как видно из этой таблицы, все версии x86 Win 7 max выходят по 4 Гб.

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

2 ответа2

11

Похоже, что в отрасли существует большая путаница в отношении того, что обычно называют Windows «4 ГБ памяти». Говоря о настройке производительности и размере сервера, люди сразу же отмечают тот факт, что приложение в 32-разрядной системе Windows может получить доступ только к 4 ГБ памяти. Но что конкретно это означает?

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

В 32-битном мире Windows каждое приложение имеет свое собственное «виртуальное» пространство памяти 4 ГБ. (Это означает, что каждое приложение функционирует так, как если бы оно имело плоские 4 ГБ памяти, а диспетчер памяти системы отслеживает отображение памяти, какие приложения используют какую память, управление файлами подкачки и т.д.)

Это пространство 4 ГБ равномерно разделено на две части: 2 ГБ выделено для использования в ядре, а 2 ГБ оставлено для использования в приложении. Каждое приложение получает свои 2 ГБ, но все приложения должны использовать одно и то же 2 ГБ пространства ядра.

ИСТОЧНИК: http://www.brianmadden.com/blogs/brianmadden/archive/2004/02/19/the-4gb-windows-memory-limit-what-does-it-really-mean.aspx

[Редактировать RE: PAE]

Аппаратная архитектура процессора x86 дополнена дополнительными адресными строками, используемыми для выбора дополнительной памяти, поэтому размер физического адреса увеличивается с 32 до 36 бит. Это теоретически увеличивает максимальный объем физической памяти с 4 до 64 ГБ. 32-разрядный размер виртуального адреса не изменяется, поэтому обычное прикладное программное обеспечение продолжает использовать инструкции с 32-разрядными адресами и (в модели с плоской памятью) ограничено 4 гигабайтами виртуального адресного пространства. Операционная система использует таблицы страниц для сопоставления этого 4-ГБ адресного пространства с 64 ГБ физической памяти. Отображение обычно применяется по-разному для каждого процесса. Таким образом, дополнительная память полезна, хотя ни одно обычное приложение не может получить доступ ко всем этим одновременно.

7

И да и нет.

Собственно, 32-разрядный процессор может обрабатывать только 4 GiB ОЗУ, поскольку существует только 2 ^ 32 = 4,294,967,296 различных чисел, которые можно представить с использованием 32-разрядных.

Всякий раз, когда вы сохраняете что-то в памяти, вам нужно сохранить адрес, чтобы иметь возможность читать или манипулировать им. Обычно ЦП использует только один регистр (размером 32 бита) для хранения этого адреса. Поскольку существует всего 2 ^ 32 разных адресов, все, что превышает отметку 4 GiB остается неиспользованным.

Однако существуют такие методы, как расширение физических адресов (PAE), которые позволяют 32-разрядной ОС адресовать более 4 GiB ОЗУ.

Значительно упрощая процесс, ОС отображает каждый процесс в определенной части памяти (называемой таблицей страниц). Каждый процесс по-прежнему ограничен 4 GiB , но это позволяет ОС адресовать гораздо больше памяти, чем только 4 GiB .

Например, 32-разрядная версия Windows Server 2003 Datacenter Edition поддерживает до 64 GiB ОЗУ.

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