Вернуться   Компьютерный форум > Блоги > OlegSh
Оценить эту запись

Максимум из ОЗУ объемом 4 Гб в Windows XP.

Запись от OlegSh размещена 30.05.2011 в 08:34

Установка четырех и более гигов памяти в систему может быть чревата – далеко не весь ее объем будет виден и доступен приложениям. Причина этих неудобств давно известна – 32-битные операционки попросту не могут адресовать более четырех гигабайт памяти (2^32=4294967296). 64-битные редакции, как правило, работают с предоставленным им объемом без проблем. Итак, проблема касается объемов более четырех гигабайт, но как же быть тем, кто установил, четыре планки по 1 Гб, а получает в лучшем случае 3.5-гигабайта? На деле не все так просто. И, возможно, для того чтобы задействовать весь потенциал оперативки, придется пойти на определенные жертвы в лице стабильности, производительности или кардинальной смены ОС.

BIOS
Первое – это неправильное определение ее объема в BIOS’е. Загляни в мануал к плате – объем поддерживаемой памяти должен составлять не менее 4 Гб. Дело в том, что все 32-битное адресное пространство невозможно отдать только лишь под приложения. Ресурсы системы, будь то чипсет, PCI-устройства и особенно видеокарта, также нуждаются в том, чтобы им присвоили определенный диапазон адресов. И если масштаб, в котором может действовать BIOS, составляет всего 4 Гб, то объем памяти, зарезервированный под оборудование, приходится отделять от оперативки. Некоторые модели изначально правильно определяют объем памяти. Другие решения требуют нашего вмешательства – в их BIOS’ах присутствует настройка «Memory Remap Feature» (название может варьироваться). Эта функция переназначает сегмент памяти, выделяемый устройствам, за пределы четырех гигабайт – таким образом, система начинает видеть всю память целиком уже на этапе загрузки.
Когда система определила всю доступную ей память, наступает момент перейти к следующему пункту – поддержке на уровне операционных систем.

PAE и AWE
О решении проблемы 32-битной адресации позаботились еще в 1995 году. Именно тогда появился процессор Intel Pentium Pro с поддержкой технологии PAE – Physical Address Extension… Вкратце, данная технология позволяет процессору работать не с 32-битной, а с 36-битной адресацией, теоретически расширяя доступные ему адреса до 2^36 = 68719476736 байт (64 Гб). При этом само адресное пространство остается 32-битным, то есть равным 4 Гб, но за счет измененного отображения на него физической памяти становится возможным использование куда большего ее объема.
Разумеется, поддержка PAE имеется и в Windows – в этом и содержится ключ к детектированию полного объема оперативной памяти. Проблема в том, что не всегда технология включена по умолчанию – для ее использования должна загружаться специальная версия ядра. Поддержка PAE имеется у следующих операционок:
Windows 2000 Advanced Server
Windows 2000 Datacenter Server
Windows XP (все версии)
Windows Server 2003 (and SP1), Standard Edition
Windows Server 2003, Enterprise Edition
Windows Server 2003, Datacenter Edition
Windows Server 2003 SP1, Enterprise Edition
Windows Server 2003 SP1, Datacenter Edition
Windows Vista (все версии, кроме Starter Edition – у нее поддержка памяти ограничена 1 Гб)
Если же PAE отключена (об этом можно узнать в окне «Свойства системы» или же с помощью утилиты вроде Everest), то ее необходимо активировать. Как это сделать, поясним ниже.
И о плохом: даже если Windows определит всю доступную память, пользу это принесет, в лучшем случае, твоему самолюбию. Причина в том, что область памяти за пределами 4 Гб в 32-битной среде может быть доступна только приложениям, написанным с использованием интерфейса AWE (Address Windowing Extension). Проще говоря, если PAE – это поддержка большого объема памяти со стороны железа и операционки, то AWE – это ее поддержка со стороны софта. И вся проблема в том, что такой поддержкой обладает разве что софт, оперирующий огромными объемами данных – к примеру – СУБД. Играм или офисному софту это попросту не нужно, соответственно, и прироста производительности в них ты не увидишь.
Есть еще один способ «хака» памяти, доступной приложениям. Не все знают, что виртуальное адресное пространство, которое составляет 4 Гб, делится системой ровно пополам: 2 Гб на приложения и 2 Гб под системное ядро. Но, есть способ обойти и это ограничение. Если добавить в файл C:\boot.ini к параметрам загрузки команду /3GB, то память перераспределится следующим образом: объем, выделяемый под ядро, ужмется до 1 Гб, а на процесс станет выделяться уже три гигабайта! Но и здесь мы натыкаемся на пресловутую поддержку со стороны софта – большинство приложений предоставленной им радости попросту не поймет. Заметим, что при использовании операционной системы с поддержкой большого количества памяти (к примеру, до 32 Гб) ключ /3GB сократит количество доступной памяти до 16 гигов.
Теперь рассмотрим, что могут предложить нам операционки от Microsoft…

Windows 2000
С PAE работают только две версии: Advanced Server и Datacenter Server. Они, впрочем, поддерживают до 8 и 32 Гб памяти соответственно, а это весьма неплохая перспектива для 32-битной среды! Чтобы увидеть четыре и более гига в данной системе (при условии того, что BIOS видит весь объем), достаточно добавить в boot.ini ключ «/PAE» (без кавычек) – после этого ОС должна увидеть всю имеющуюся память. Использовать ее она, разумеется, будет только при наличии соответствующего софта.

Windows XP
Эта, наиболее популярная ОС от Microsoft, хуже всего оснащена поддержкой большого количества памяти, что было не всегда, а лишь до появления пакета обновлений Service Pack 2 – именно в нем возможности PAE были значительно урезаны. Если быть точнее, то во избежание конфликтов доступное адресное пространство было ужато с 36 бит до стандартных 32 бит. В результате это приводит к забавным казусам – при включении опции «Memory Remap Feature» BIOS начинает видеть больше памяти, а Windows, наоборот, меньше! К примеру, если до включения опции BIOS определял 3.5 Гб, то после он видит уже 4 Гб, в то время как в Windows определяется всего 3 Гб! А дело все в том, что Memory Remap Feature переносит память за пределы четырех гигабайт блоками по гигабайту. То есть, если после выделения памяти, под железо BIOS определял 3.5 Гб, то после «выноса» этой памяти за пределы адресного пространства остается всего 3 Гб. Соответственно, если первоначально было видно, к примеру, 2.8 Гб, то «передислоцировалось» уже 2 Гб, и столько же оставалось Windows, которая без нормальной поддержки PAE попросту не могла видеть то, что находилось за пределами ее восприятия.
Отсюда неутешительный вывод: Memory Remap Feature для Windows XP SP2 применять бесполезно – это принесет лишь вред. Только два варианта могут заставить XP видеть 4 Гб памяти – использование версии Service Pack 1, либо же установка 64-битной версии.

Windows Server 2003
Это детище Microsoft гораздо лучше обучено использованию больших объемов памяти. Единственный представитель линейки, у которого, насколько нам известно, имеются проблемы с режимом PAE – это Windows Server 2003 Standard Edition SP1, причем он не только «болен» той же проблемой, что и XP, но и «заразился» ей точно так же – с выходом последнего сервис-пака. Соответственно, на всех остальных версиях 4 Гб памяти должны определяться элементарно – сразу после включения Memory Remap Feature в BIOS и добавления параметра «/PAE» в boot.ini (последний, возможно, уже будет выставлен).

Windows Vista
Здесь мы наблюдаем все то же самое: от 2 до 3.5 Гб видимой памяти вместо четырех, как того требует справедливость. Есть ли решение у данной проблемы? Есть, и довольно тривиальное!
Файла boot.ini в Vista нет – вместо него конфигурацию загрузки можно редактировать специальной утилитой BCDEdit.exe. Запускаем режим командной строки (cmd) и набираем там следующее:
BCDEdit /set PAE forceenable
BCDEdit /set nolowmem on
Первый пункт здесь форсирует поддержку PAE, ну а второй загружает системные файлы и драйвера в область за пределами 4 Гб. После перезагрузки ОС должна увидеть все 4 Гб. Но протестируй систему на стабильность – вполне возможно, что теперь ее поубавится.

Выводы
Ты уже понял, установка большого объема памяти в систему – не такая уж тривиальная задача. И, наиболее правильный способ задействовать весь объем оперативки – установка 64-битной операционной системы. Все остальные методы, рассмотренные в статье, можно воспринимать лишь как «хаки», и не удивляйся, если научившись использовать всю доступную память, винда вдруг начнет нещадно глючить.

Редактирование boot.ini, файла с конфигурацией загрузки Windows, осуществляется так:

1) Включи отображение скрытых файлов и папок.
2) Найди boot.ini в корневом каталоге системного диска (обычно C:\) и сними с него атрибут «только чтение».
3) Открыв файл, ты увидишь примерно следующее (в зависимости от ОС):
[boot loader]
;timeout=3
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOW S
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=”Micro soft Windows XP Professional RU” /noexecute=optin /fastdetect
4) Изменения вносятся в пункт, касающийся необходимой операционки (в данном случае она одна). Если необходимо внести параметр /3GB, то результат должен выглядеть так:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=”Micro soft Windows XP Professional RU” /noexecute=optin /fastdetect /3GB
5) Сохрани файл и выставь параметр «только чтение» обратно.
У ключа /3GB есть аналог и в Windows Vista. Более того, ты можешь гораздо более гибко регулировать, сколько памяти выделять пользовательским процессам, а сколько оставлять ядру. Для этого используй команду «BCDEdit /set IncreaseUserVa МБ», где МБ – число, лежащее в пределах от 2048 до 3072 и составляющее количество памяти, выделяемой на процесс. 4096 минус это число – столько мегабайт будет выделено ядру операционной систем.

Взято здесь: http://kompkimi.ru/?p=1505
Размещено в Без категории
Просмотров 20205 Комментарии 11 Отправить другу ссылку на эту запись
Всего комментариев 11

Комментарии

  1. Старый комментарий
    Аватар для KaAd
    http://gora-softa.ru/system/nastroyk...for4gb-13.html можно так на семерке
    Запись от KaAd размещена 01.06.2011 в 15:24 KaAd вне форума
  2. Старый комментарий
    Аватар для OlegSh
    Что-то сомнительно очень это... Особенно насчет второго ядра, да еще и с расширением exe! Рекомендую всем, кто захочет такое использовать, перед этим сделать образ своей существующей системы!
    Запись от OlegSh размещена 01.06.2011 в 22:23 OlegSh вне форума
  3. Старый комментарий
    Аватар для KaAd
    Цитата:
    Сообщение от OlegSh Просмотреть комментарий
    Что-то сомнительно очень это... Особенно насчет второго ядра, да еще и с расширением exe! Рекомендую всем, кто захочет такое использовать, перед этим сделать образ своей существующей системы!
    что сомнительного?Я поставил.Все работает,видит 4 гига,ниче не глючит
    Запись от KaAd размещена 02.06.2011 в 06:04 KaAd вне форума
  4. Старый комментарий
    Аватар для OlegSh
    Ну, замечательно. Только, все-равно, думаю это не самый удачный выход. На сомнения наводит тот факт, что такая "мощная" корпорация Microsoft не смогла такого сделать, а какой-то частник взял и слепил панацею от проблем с 4Гб! Тут два варианта:
    1. Microsoft это просто не интересно и не нужно.
    2. Это ДЕЙСТВИТЕЛЬНО проблемно (ведь не зря в SP2 к Windows XP это убрали!)
    Пусть сейчас у вас все нормально, без глюков, но, возможно, это "средство" имеет характер кумулятивного накопления? Т.е. ошибки не полезут сразу, а накопившись, в один прекрасный момент, дадут о себе знать!
    Хотя, я вполне предполагаю, что данный способ есть просто одна из реализаций поддержки PAE и загружает системные файлы и драйвера в область за пределами 4 Гб. В любом случае - это не есть гуд! Стабильность системы - не самый маловажный фактор, жертвовать которым стоит в угоду лишних 0,5Гб ОЗУ. Все сказанное - ИМХО!
    Запись от OlegSh размещена 03.06.2011 в 20:34 OlegSh вне форума
  5. Старый комментарий
    Аватар для KaAd
    Есть еще 3 вариант."мощная" корпорация Microsoft не дает использовать более 4 гигов на 32 битных системах для скорейшего перехода всего мира на 64 битные системы.Ведь совсем скоро 4 гига оперативы станет мало и все призадумаются о переходе.Данное мнение встречалось мне несколько раз в интернете.Естественно ни о каком конкретном подтверждении речи нет
    Запись от KaAd размещена 05.06.2011 в 04:36 KaAd вне форума
  6. Старый комментарий
    Аватар для KaAd
    Цитата:
    Сообщение от OlegSh Просмотреть комментарий
    Хотя, я вполне предполагаю, что данный способ есть просто одна из реализаций поддержки PAE и загружает системные файлы и драйвера в область за пределами 4 Гб.
    Так и есть
    Запись от KaAd размещена 05.06.2011 в 04:46 KaAd вне форума
  7. Старый комментарий
    Аватар для KaAd
    По поводу PAE-согласно официальной легенде Microsoft, введение 4 ГБ ограничения адресного пространства связано с отсутствующей или плохой поддержкой 36-битного адресного пространства некоторыми драйверами устройств
    Запись от KaAd размещена 05.06.2011 в 05:02 KaAd вне форума
  8. Старый комментарий
    Аватар для OlegSh
    Я согласен, что такое имеет возможность к существованию, но:
    1. Перед применением любых способов использования "недоступных" объемов памяти - создать образ системы и копию всех важных файлов и положить их в надежное место (например на внешний HDD)
    2. Как я уже и писал: стабильность системы - не самый маловажный фактор, жертвовать которым вряд ли стоит в угоду лишних 0,5Гб ОЗУ.
    Запись от OlegSh размещена 06.06.2011 в 07:42 OlegSh вне форума
  9. Старый комментарий
    Аватар для KaAd
    Цитата:
    Сообщение от OlegSh Просмотреть комментарий
    2. Как я уже и писал: стабильность системы - не самый маловажный фактор, жертвовать которым вряд ли стоит в угоду лишних 0,5Гб ОЗУ.
    Почему ради 0.5гб?Патч позволяет использовать на 32 битной системе до 128 гигов оперативы.
    Запись от KaAd размещена 06.06.2011 в 15:57 KaAd вне форума
  10. Старый комментарий
    Аватар для OlegSh
    Интересно, а что если провести опрос среди пользователей компов что-то типа: "Каков объем оперативной памяти у вас установлен" и посмотреть результаты? Много ли рядовых геймеров и юзеров имеют ОЗУ более 4 Гб? Думаю тех, кто имеет более 4Гб ОЗУ будет крайне мало. Поэтому я и говорю, что стоит ли рисковать стабильностью из-за 0,5Гб в большинстве случаев?
    В принципе, я не против! Каждый волен поступать со своим железным "питомцем" как ему заблагорассудится. Заранее всем удачи, но вот лучше всего:
    Перед применением любых способов использования "недоступных" объемов памяти - создать образ системы и копию всех важных файлов и положить их в надежное место (например на внешний HDD)
    Запись от OlegSh размещена 06.06.2011 в 16:57 OlegSh вне форума
  11. Старый комментарий

    опросник

    У меня 1 гиг оперативки. Более чем достаточно, даже учитывая тот факт что я увлекаюсь игростроем и на данный момент, создаю проект, который по идее должен оживить давно умершие жанры, по причине скудности фантазии создателей данного жанра... но собственно говоря это к делу не относится.

    Я к чему. Мало кто знает, что мы не исспользуем и половины возможностей машины. Тут одного файла подкачки мало. А используя редактор реестра производительность машины можно увеличить практически в 2 раза. Но я бы не рекомендовал. Машина может и не выдержать такой нагрузки. Ну мало ли резкий перепад напряжения, как было у одного моего коллеги или еще что-нибудь. И все. Я лично увеличил мощность в полтора раза и бед не знаю. Мне такая мощность не обходима для быстрой компиляции екзешников, скриптов, программ. А зачем обычному пользователю 4 гектара ОЗУ? Вот в чем вопрос. Вот для чего обычному пользователю, нужны такие мощностя?
    Запись от MaxUss размещена 21.06.2011 в 03:07 MaxUss вне форума
 

Текущее время: 06:08. Часовой пояс GMT +4. Powered by vBulletin® Version 5.8.9
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.