Поскольку вопросы, связанные с этим возникают довольно часто, особенно в связи с выходом Battlefield3, требующего 4ГБ для нормальных текстур, объясняю, что это за проблема:
Касается она только 32х битных Windows, как XP, так и Vista, и Windows 7.
Любой запущенный процесс, а точнее, его копия,
целиком хранится в оперативной памяти.
Подробно об этом тут.
Но программа хранится не в самих планках оперативы, а в виртуальной памяти. Вся виртуальная память разделена на ячейки, каждая из которых имеет свой адрес. Два запущенных процесса делят всю оперативную память между собой, и каждой выделяется своя виртуальная.
Теперь к сути:32х битная ОС способна заадресовать 3,25ГБ оперативной памяти, то есть, отдать процессу максимум 3,25 ГБ виртуальной памяти. 64х битная - вплоть до 192 на 7ке и 128 на висте. Операционка Windows Embedded Standard 7 в 64х битном исполнении также может использовать 192ГБ.
Патчи:Существуют патчи, которые способны расширить количество видимой и рабочей оперативной памяти. Но только оперативной!
Все они основаны на принципе Physical Address Extension (Расширение физических адресов). Подробно
тут.
Но важно помнить, что включив этот режим, вы сможете просто разделять оперативную память больше 4х ГБ на кусочки, но размер каждого такого "кусочка" все равно ограничен 3,25 ГБ.
К примеру, у вас компьютер с 8 ГБ памяти, два приложения по 3 ГБ.
Без PAE: первое приложение заберет себе первые 3 ГБ. Остальную память система банально не увидит.
Поэтому второму приложению ничего не останется, как довольствоваться оставшимися 0,25 ГБ и по чуть - чуть откусывать у неактивного приложения память.
С PAE: Первое приложение заберет первые 3ГБ, второе - вторые 3ГБ. И все счастливы...
А что если приложение занимает 4 и более ГБ памяти?
В этом случае, что с PAE, что без него, занять все 4 ГБ целиком оно не сможет. Выделить виртуальное пространство размером более 3,25 ГБ 32хбитная система
не может. Никак. Ни с какими патчами.
Вообще это не критично для мелких приложений: даже в большом количестве, они вряд - ли затребуют более 3,25 в сумме. 10 приложений по 100МБ просто разделят все 3 ГБ между собой.
А вот уже 20 таких приложений без PAE будут конкретно тупить. Оставшуюся кучу памяти система не видит и выделить не может.
------------
Вопросы:Вопрос 1. Почему говорят, что 4 ГБ не поддерживает только XP, а виста и 7ка работают на них?
Ответ: В основном потому, что у XP поддержка 64 битов появилась сравнительно недавно, раньше ее просто не было. А виста и 7ка выпустились уже с 64 битными версиями, которые большинство пользователей и поставило. Проще говоря - работу с 4 ГБ считают не заслугой 64битов, а версий операционки.
Вопрос 2. Почему часто считают, что патч действует и система стала работать быстрее?
Ответ: Потому что на сейчас нет таких (или очень мало) приложений, которые требуют больше 3 Гб виртуальной памяти. Пользователи поназапускают разных программ,
в сумме больше 4 ГБ. Ужиться вместе они не смогут в 3,25 объеме.
Включив патч, система разобьет все количество памяти на небольшие кусочки и отдаст каждому. Каждая программа получит свой кусок и будет работать как надо.
Вопрос 3. Почему большие серверные системы спокойно работаю на 32х битах?
Ответ: Потому что у серверных ОС несколько другая система адресации, к примеру Windows Server 2003 with Service Pack 2 (SP2) в версии Datacenter Edition способен использовать аж 64ГБ
виртуальной памяти.
Вопрос 4. Как включить PAE?
Ответ: При использовании расширения физических адресов, во-первых, процессору становится доступной память в физических адресах выше четырех гигабайт. Во-вторых, системная плата может «перекинуть» в область выше четырех гигабайт ту оперативную память, расположенную в четвертом гигабайте, которая заблокирована из-за возможности конфликтов с устройствами.
Следует подчеркнуть, что для этого необходимо наличие двух обязательных условий:
системная плата должна поддерживать расширение физических адресов;
в операционной системе должен быть включен режим PAE.
Несоблюдение хотя бы одного из них приводит к невозможности использования адресов выше четырех гигабайт. Например, никакие ухищрения и шаманские пляски с бубном не помогут системе увидеть все четыре гигабайта на системных платах на базе i945.
Выполнение первого условия можно проверить по документации к системной плате. Правда, далеко не всегда в описании платы можно найти «волшебное» слово PAE. Чаще используется (в описании платы или настройках BIOS) выражение memory remap или близкие к нему.
Выполнение второго условия в последнее время часто обеспечивается автоматически. Если процессор поддерживает аппаратную защиту от исполнения данных (Data Execution Prevention - DEP), то Windows XP со вторым пакетом исправлений, Windows Server 2003 с первым и более поздними пакетами исправлений и, конечно, Windows Vista по умолчанию включают эту защиту, а вместе с ней и PAE. К таким процессорам относятся все семейство 64-разрядных процессоров АМД, все процессоры Intel с поддержкой технологии EM64T и некоторые чисто 32-разрядные процессоры семейства Pentium 4.
Если процессор более старый либо если используются более старые версии Windows, можно включить режим расширения физических адресов принудительно. Для этого надо добавить в строку запуска данной ОС в файле boot.ini параметр /PAE.
Ссыль целиком:
4gbСообщение отредактировал 7 января 2012 - 08:11