32-битный адрес Windows Server> 4 ГБ ОЗУ - как?

8

Это для меня новость. У меня всегда было впечатление, что 32-битная ОС может адресовать только 2 ^ 32, то есть 4 ГБ оперативной памяти. Период.

Но что это - http://www.crucial.com/uk/kb/answer.aspx?qid=3743&click=true ?

Как это возможно? И это все еще означает> 4 ГБ на процесс? т.е. если у меня есть IIS, может ли ASP.NET выделяться более 4 ГБ?

Редактировать: Спасибо за ответы. Чтобы поместить это в контекст, это для веб-разработки. Таким образом, похоже, что w3wp.exe (рабочий процесс ASP.NET) все еще будет ограничен 4 ГБ? Это правда?

Спасибо Дункан

Дункан
источник
Небольшое прибегание к гуглу может привести к обоснованным цитатам, утверждающим, что IIS не поддерживает AWE, поэтому я думаю, вполне безопасно предположить, что вы не можете выделить для него более 3 ГБ (4 ГБ - накладные расходы системы).
ConcernedOfTunbridgeWells

Ответы:

14

MMU на некоторых 32-разрядных процессорах может фактически поддерживать более 4 ГБ физической ОЗУ, хотя один процесс может видеть только 4 ГБ за раз в своем виртуальном адресном пространстве. Процессор такого типа может быть оснащен более 4 ГБ ОЗУ и может поддерживать несколько процессов, используя в общей сложности более 4 ГБ ОЗУ. Тем не менее, один процесс может использовать только 4 ГБ ОЗУ (минус некоторые накладные расходы от операционной системы) в любой момент времени.

В Xeon это средство известно как расширение физического адреса (PAE), и некоторые операционные системы имеют API-интерфейсы, которые позволяют процессу манипулировать MMU для обмена физической памятью в виртуальном адресном пространстве процесса и из него. В Windows этот API известен как расширения оконного адреса (AWE), но он доступен не во всех версиях Windows. Linux и другие разновидности Unix поддерживают аналогичный механизм.

Чтобы использовать это средство, программа должна быть специально разработана для его поддержки - AWE не расширяет виртуальное адресное пространство процесса автоматически. Например, некоторые версии SQL Server поддерживают его, хотя я не знаю, как это делает IIS.

РЕДАКТИРОВАТЬ: Здесь мы идем. Нашел это. Эта публикация на Stackoverflow связана с более подробной информацией о механике PAE.

Изменить 2: Если верить этому посту на форуме, IIS не поддерживает AWE.

ConcernedOfTunbridgeWells
источник
4

С помощью PAE возможна адресация более 4 ГБ на 32-битной системе . Для ограничения памяти процесса вы можете прочитать общие сведения о Windows Брюса Сандерсона; RAM, виртуальная память, PageFile и все такое

Что касается памяти для каждого процесса, прочтите разделы 1.2 («Адресные пространства и процесс») и 2.5 («Настройка памяти приложения - / 3GB-переключатель») по ссылке «Общая информация Windows» выше.

радиус
источник
2

Просто отметьте это здесь для записи, более высокие версии Windows 2003 (Enterprise и Data Center), работают с> 4 ГБ. У меня был HP DL380 с 14 ГБ оперативной памяти, а W2K3 EE видел все 14 ГБ. VMWare Server смог использовать более 4 ГБ. Мы заменили W2K3 на ESXi 3.5 U3, и он может использовать все 14 ГБ.

Из моего прочтения Microsoft попыталась включить его в других версиях Windows (например, XP) и обнаружила, что у многих драйверов были проблемы, когда объем памяти был> 4 ГБ. По крайней мере, частью проблемы был DMA (адреса памяти для аппаратного обеспечения были бы урезаны до 32 бит и началось бы повреждение памяти). Таким образом, был SP, который избавлялся от PAE для большинства старых версий Windows, чтобы предотвратить проблемы со стабильностью.

Вальтер
источник