ОС Windows видит не всю оперативную память. Почему компьютер не видит всю ОЗУ

ОС Windows видит не всю оперативную память. Почему компьютер не видит всю ОЗУ
ОС Windows видит не всю оперативную память. Почему компьютер не видит всю ОЗУ

Твитнуть

Существует целый ряд программ, по сути своей шарлатанских. Все они обещают чудодейственный прирост скорости компьютера благодаря освобождению места в оперативной памяти компьютера. Чтобы понять, почему это бесполезно и даже вредно, для начала надо разобраться - что такое вообще оперативная память?

Что такое оперативная память и зачем она нужна?

Оперативная память (или RAM - R andom A ccess M emory, или ОЗУ - О перативное З апоминающее У стройство) - энергозависимая память, используемая для временного хранения команд и данных, необходимых для вычислений, которые делает процессор (или процессоры) компьютера. Более точно и подробно об этом рассказано в Википедии , а я сосредоточусь на собственно проблеме свободного места в оперативной памяти.

Примечание: я рассказываю максимально упрощенно, опуская множество терминов и особенностей, оставляя только самую суть, требуемую в контексте моей заметки.

RAM нужна процессору для быстрого доступа к данным, что жесткий диск никак обеспечить не может. Поэтому программа при запуске загружается в оперативную память - только так компьютер может делать вычисления, гоняя данные к процессору из оперативной памяти и обратно.

В Windows запущенные программы физически могут располагаться не только «в платах оперативной памяти», но и на жестком диске в файле pagefile.sys. Этот файл называется «файлом подкачки» или «свопом» (от англ. swap).

Идея такова: если программа занимает много памяти, ее часть выгружается на жесткий диск в файл подкачки, освобождая «жизненное пространство» для других программ, а в случае надобности данные загружаются обратно в оперативную память.

Проблема заключается в том, что разница в скорости между оперативной памяти и жестким диском огромна . Наглядно это можно продемонстрировать так:

Чтобы в файл подкачки сбрасывались только ненужные данные, в Windows работает Менеджер памяти. Работает вполне успешно, благодаря чему на компьютере с 512 Мб ОЗУ можно запускать программы, занимающие более гигабайта памяти. Типичный пример - современные версии Adobe Photoshop, 3DS Max и многие другие программы для сложных вычислений. Конечно, при таком малом количестве оперативной памяти программы будут сильно тормозить, однако работать в них худо-бедно, но возможно.

Что же делают оптимизаторы памяти?

Проведу аналогию с лекарствами для снятия симптомов - они не лечат причину, только облегчают симптомы. Если человек болеет гриппом, избавление от насморка не вылечит его. Если компьютер тормозит и свободной памяти мало - он тормозит не из-за занятой памяти, но из-за чересчур ресурсоемкой программы или, например, перегрева.

Все оптимизаторы обязательно показывают размер свободного места в оперативной памяти. Причем зачастую с красными буквами и предупреждениями о том, что это негативно сказывается на скорости компьютера. Что, вообще-то, неправда. Если программе нужна вся оперативная память - значит, это требуется для дела (расчетов) и работать быстро она будет только в том случае, если ей дадут места столько, сколько попросит.

Типичный пример программ, требующих большие объемы ОЗУ - игры. Если игре требуется 2 гигабайта оперативной памяти - с этим ничего поделать нельзя. Без требуемого объема RAM играть будет проблематично из-за низкой частоты кадров - игра будет тормозить из-за того, что часть данных будет располагаться на медленном файле подкачки. Оптимизаторы оперативной памяти создают такой же негативный эффект - после освобождения памяти программам выделяется памяти меньше, чем им того требуется, из-за чего опять-таки начинаются «тормоза».

Замечание №1: Я не утверждаю, что частота кадров в играх напрямую зависит от объема оперативной памяти. Установив больше оперативной памяти в компьютер, удастся повысить производительность только в тех программах, где действительно важен объем ОЗУ без оглядки на другие более важные параметры: частота процессора, характеристики видеокарты, частота оперативной памяти, скорость жесткого диска и т.д.

Замечание №2: С программами случаются ошибки под общим названием «утечка памяти «, когда программа беспричинно «разрастается» и занимает всю память без надобности, но в таком случае надо требовать от разработчиков этой программы исправления ошибки, а не освобождать память оптимизаторами.

Как работают оптимизаторы памяти

Программы оптимизации памяти (названия у них могут быть разные - SuperRAM, FreeMemory, Memory Management SuperProMegaEdition и т.п.) могут освобождать память несколькими способами, но все они завязаны на принципе обмана Менеджера памяти Windows:

  1. Программа вызывает специальную функцию EmptyWorkingSet(), которая заставляет все программы как можно больше выгрузить «себя» в файл подкачки.
  2. Программа начинает бесконтрольно разрастаться в памяти, сообщая Менеджеру памяти Windows о том, что ей это нужно для дела (я говорю метафорами, но вообще-то дело обстоит именно так), в результате чего Менеджер памяти выбрасывает как можно больше программ на жесткий диск в файл подкачки.

Итог всегда один: программы начинают тормозить, зато циферка свободного места в оперативной памяти зеленого цвета и программа оптимизации памяти говорит, что все хорошо. В итоге пользователь радуется, открывает окно со свой любимой программой и… ждет. Потому что его любимая программа начинает сильно тормозить. Так будет до тех пор, пока программа не вернет «себя» в оперативную память из файла подкачки. В итоге оперативная память снова заполняется, индикатор свободного места снова сообщает о занятости памяти, пользователь злится, запускает очистку памяти и все происходит по второму (третьему, пятому, десятому) кругу.

Обратного эффекта - чтобы программа заняла всю оперативную память якобы для быстрой работы - добиться не удастся. Слово «якобы» я употребил потому, что в идеальном случае (когда памяти достаточно) программы берут столько памяти, сколько им нужно и мешать этому процессу нельзя . Вмешаетесь в процесс - получите тормоза, вызванные частым обращением к файлу подкачки.

Еще один печальный момент: оптимизаторы памяти не могут выгрузить из оперативной памяти ненужные программы. Их «ненужность» определяем мы сами, в компьютере все устроено иначе. В файл подкачки выгружаются все программы без разбора.

Вывод №1: освобождение оперативной памяти оптимизаторами идет только во вред и снижает производительность.

Вывод №2: нельзя судить о скорости работы программы по тому, сколько места она занимает в оперативной памяти.

Вывод №3: если программа занимает много места в оперативной памяти, значит - она оперирует большими объемами данных. Помочь ей «думать» быстрее можно только увеличив объем оперативной памяти, т.е. поставив в компьютер побольше плат ОЗУ. Но это не поможет, если остальные характеристики ПК не соответствуют требованиям.

Чтобы не быть голословным, вот ссылка на аналогичные выводы с объяснением работы Менеджера памяти Windows: сюда.

Как надо оптимизировать память?

Самый очевидный способ повысить производительность компьютера - закрыть ненужные программы. Второй - установить побольше планок (плат) оперативной памяти, чтобы программы «чувствовали себя более вольготно» и работали пошустрее. Других способов ускорения компьютера, непосредственно связанных с оперативной памятью, нет.

Еще раз повторюсь: оптимизаторы памяти - бред с целью заработать деньги на доверчивых пользователях. Такой же глупостью является и подстройка «скрытых настроек памяти» в Windows, так как там все уже настроено наиболее оптимально после тестирования на большом количестве компьютеров. Специфичные моменты бывают, но к домашним компьютерам это не относится.

О свободной оперативной памяти в Windows Vista, 7, 8, 10

На форумах я часто вижу возмущенные крики (цитирую): «Поставил Windows 7 (8, 10), посмотрел Диспетчер задач, а там говорится, что занято полтора гигабайта или вся оперативная память! Windows 7 (8, 10) жрет очень много памяти! »

На самом деле все обстоит совсем не так и причин возмущаться нет. Совсем наоборот: в современных операционных системах свободная память отводится под кэш. Это происходит преимущественно благодаря функции SuperFetch. Благодаря кэшу программы запускаются быстрее, так как вместо обращения к жесткому диску данные загружаются из оперативной памяти (см. картинку выше, разница в скорости работы жесткого диска и ОЗУ написана жирным шрифтом). Если какой-то программе понадобиться больше оперативной памяти - кэш моментально сократит свой размер, уступив ей место. Подробнее об этом написано на Хабрахабре .

Выводы:

  1. Память очищать не нужно, потому что каждый байт объема используется максимально эффективно .
  2. Забудьте про оптимизаторы памяти - они не оптимизируют ничего, мешая работе кеша и прочим функциям Windows.
  3. Если занято много оперативной памяти сразу после включения компьютера - это абсолютно нормально и не является причиной медленной работы программ. Конечно, если автозагрузка забита десятком-другим программ, которые и занимают эту самую память, заодно нагружая процессор и эксплуатируя жесткий диск, тормозить будет обязательно. С такими программами нужно бороться, удаляя их или убирая из автозагрузки, а не очищать память оптимизаторами.

Также существует миф, что при использовании Windows Vista, 7, 8 и 10, кэш мешает программам. Якобы «когда программе нужно больше оперативной памяти, оказывается, что она забита кэшем, возникают тормоза». На самом деле это неправда. Кэш улетучивается мгновенно и программе сразу становится доступен нужный объем оперативной памяти.

Изменение размера файла подкачки, его перемещение или отключение

Тоже довольно распространенные, в некотором роде вредные, советы. Об этом есть хорошая статья на Хабрахабре. Я лишь приведу наиболее важные выводы той статьи, добавив свои, из личного опыта:

  1. Изменять размер файла подкачки нет особого смысла. Теоретически, в идеале надо выставить размер файла подкачки не больше того, который требуется запущенным программам, но проблема в том, что даже если вы используете одни и те же программы одних и тех же версий день ото дня, ситуации бывают разные (вы можете запустить в браузере одну вкладку, а можете сотню, каждую с открытой игрой на Flash) и требования к доступной памяти будут разные - предполагаемый «идеальный» размер файла подкачки будет меняться от минуте к минуте. Поэтому смысла изменять размер файла подкачки нет, так как «идеальный размер» файла подкачки меняется постоянно. Проще оставить тот размер, который определила система, и не морочить себе голову.
  2. Если отключить файл подкачки на системном разделе (при этом файл подкачки может использоваться на других разделах), не будет работать дамп памяти при ошибках BSOD. Поэтому, если система будет показывать «синий экран смерти», для выявления причины сбоя придется сначала включить файл подкачки на системном разделе, затем ждать повторения сбоя. Есть только одна ситуация, когда целесообразно отключать файл подкачки на системном диске (лишаться возможности диагностики) и включать на другом - если в компьютере установлено два и более физических жестких диска. Перемещение файла подкачки на другой физический диск может снизить количество подтормаживаний из-за распределения нагрузки на диски.
  3. Отключение файла подкачки (полное, т.е. на всех дисках) вызовет проблемы и вылеты ресурсоёмких программ. Вы не поверите, но даже сейчас, когда в домашнем ПК установлено в среднем 16 Гб RAM, встречаются программы, которым требуется больше. Лично я сталкивался с проблемами при рендеринге сложных сцен с помощью V-Ray и при работе в программе GIMP - эти программы довольно прожорливы по части доступной памяти и закрываются при её нехватке.
    Примечание: очевидно, что программы обычно не пишут данные в файл подкачки сами, за них это делает ОС (но бывают исключения). Как бы то ни было, отключенный файл подкачки нельзя рассматривать как часть нормального режима работы компьютера.
  4. Перемещение файла подкачки на RAM-диск (очень быстрый виртуальный диск, находящийся в оперативной памяти) нецелесообразно .
    Во-первых , и это самое главное, при запуске Windows RAM-диск может инициализироваться позже того момента, когда системе понадобится файл подкачки. Из-за этого может случиться что угодно - от BSOD до спонтанных подтормаживаний системы (столкнулся с перечисленным, когда проверял эту идею).
    Во-вторых , размер такого файла подкачки будет небольшой - память-то не резиновая. Возникает выбор - либо нехватка ОЗУ при большом файле подкачки в памяти, либо глюки программ при нехватке места в маленьком файле подкачки. Золотой середины нет, т.к. компьютер может выполнять совершенно разные задачи.
    Исключение, когда можно создать большой файл подкачки на RAM-диске - если у вас 16 Гб ОЗУ и больше. Однако при таком объеме ОЗУ файл подкачки почти не используется, пропадает смысл держать его в оперативной памяти.
    В-третьих , это просто бессмысленно, потому что своп нужен для расширения виртуальной памяти за счёт жёсткого диска или SSD.

Очистка файла подкачки

В файле подкачки pagefile.sys может храниться разнообразная информация конфиденциального характера - например, картинки из недавно открытых в браузере страниц. Это нормальный процесс, обусловленный особенностями работы программ в Windows. При желании можно включить очистку файла подкачки при выключении компьютера . Однако производительности этот твик никоим образом не прибавит, наоборот - серьезно замедлит выключение и перезагрузку компьютера.

Если вы не работаете с конфиденциальными данными, лучше не включать очистку pagefile.sys.

Доступность более 4 Гб оперативной памяти в Windows

Интернет буквально завален рассуждениями пользователей о том, почему в битной Windows доступно 3,5 Гб оперативно памяти вместо, например, установленных 4 Гб. Было придумано множество теорий, мифов, легенд. Например, считают, что это ограничение, сделанное Microsoft, которое можно снять. На самом деле это отчасти правда - принудительное ограничение действительно есть. Только снять его нельзя. Это обусловлено тем, что в 32-разрядных системах драйвера и программы могут нестабильно работать при использовании системой больше четырех гигабайт оперативной памяти. Для 64-битных Windows драйвера тщательнее тестируют, вышеупомянутого ограничения там нет.

В 32-битной Windows доступно только 4 Гб оперативной памяти, в 64-битной такого ограничения нет и доступно гораздо больше оперативной памяти - до 192 Гб.

Но не все так просто. Windows 7 Начальная (Starter) (и ее аналог у Vista) не видит больше 2 Гб оперативной памяти. Это тоже ограничение, только не по причине нестабильно работающего софта. Дело в том, что Windows 7 Начальная распространяется исключительно на маломощных нетбуках, по факту практически бесплатно, поэтому необходимо было дистанцировать ее от более дорогих изданий: Домашней базовой, Домашней Расширенной, Максимальной и т.д. Часть ограничений Windows 7 Starter можно снять , но только не ограничение на два гигабайта оперативной памяти.

Что касается остальных 32-битных изданий Windows XP, Vista, 7 и Windows 8/10: на практике пользователю доступно еще меньше - 3,5 Гб. Все дело в том, что драйвера тоже имеют свои адреса, которые лишают программы Windows доступа к части памяти в 512 мегабайт. Существует патч, позволяющий «задвинуть» такие адреса за пределы четырех гигабайт, чтобы система стала использовать все 4 Гб оперативной памяти, но это практически не имеет смысла:

  • Как я писал выше, драйвера и программы не смогут корректно работать после такого патча, так что система может начать зависать, выдавать ошибки, т.е. вести себя непредсказуемо.
  • Даже если в компьютере будет установлено плат оперативки на 8, 16, 32 Гб или больше - это никак не поможет их задействовать в 32-битном режиме операционной системы.

Какой смысл от доступности дополнительных 512 Мб оперативной памяти, если система станет нестабильной? Вот наглядный пример . Все равно придется ставить 64-битную Windows.

То, что видно 4 Гб оперативной памяти, не значит, что ее можно эффективно использовать. Проблема в том, что 32-битная Windows не может грамотно выделить процессу (программе) более 2 Гб физической оперативной памяти. Об этом многие забывают - и зря. Неважно, сколько оперативной памяти в компьютере, если программе нельзя дать больше 2 Гб ОЗУ. Пример: если пользователь работает в 32-битной Windows с Photoshop на компьютере с 4 Гб оперативной памяти - Фотошоп сможет задействовать всего лишь два гигабайта максимум, остальные данные скинет в файл подкачки и начнет тормозить. С играми то же самое.

На самом деле, только в 64-битной операционной системе программы могут задействовать весь потенциал оперативной памяти объемом больше двух гигабайт. И то не все, а только рассчитанные на использование больше 2 Гб ОЗУ. Ситуацию опять-таки можно исправить с помощью соответствующих патчей в 32-битной Windows, но это работает далеко не со всеми программами. Повторюсь: только 64-битная Windows и 64-битные программы, запущенные в ней - единственный выход задействовать весь потенциал большого объема ОЗУ.

Между тем, с серверными версиями Windows ситуация иная: там доступны гораздо большие объемы оперативной памяти даже в 32-битных версиях ОС. Почему так происходит, рассказано в статье Преодолевая границы Windows: физическая память от Марка Руссиновича.

Подводим итоги

  • Оптимизаторами оперативной памяти пользоваться нельзя.
  • Трогать настройки памяти - тоже, даже если в программе есть множество подсказок, дающих ощущение контроля над ситуацией.
  • Свободная оперативная память в Windows Vista/7/8/10 используется во благо, лучше не трогать этот функционал - все хорошо работает, улучшить практически ничего нельзя.
  • Если у вас тормозит компьютер, то это скорее всего не из-за занятой памяти (она занята полезным кешем), а из-за , либо большого количества запущенных программ или одной программы, которая все «забирает» себе.

Обновлено: 13.04.2019 Опубликовано: 15.06.2018

Описание

Система определяет меньший объем оперативной памяти, чем установлено в компьютере.

Или системе доступна не вся память:

Также в БИОС может определяться не весь ее объем (чаще, только половина).

Причина

  1. Часть памяти забирает встроенная видеокарта.
  2. Лимит редакции или разрядности операционной системы.
  3. Программное ограничение.
  4. Резервирование памяти системой.
  5. Неисправность оперативной памяти.
  6. Ограничение со стороны процессора.
  7. Ошибка БИОС или необходимость его обновления.
  8. Лимит максимального объема, который поддерживает материнская плата.
  9. Материнская плата не поддерживает один из модулей памяти.

Решение

1. Использование встроенной видеокарты

Для этой проблемы характерно незначительное выделение памяти под работу видеоадаптера. В данном случае мы будем наблюдать небольшое уменьшение доступной памяти, например:

Если же мы захотим, чтобы встроенная видеокарта потребляла меньше памяти, заходим в БИОС/UEFI и находим один из параметров:

  • Share Memory Size
  • Onboard VGA Frame Buffer
  • Display Cache Window Size
  • On-Chip Video Window Size
  • Onboard Video Memory Size
  • Internal Graphic Mode Select
  • Integrated Graphics Share Memory

* в различных версиях БИОС они могут называться по-разному. Также не исключено, что может использоваться другие параметры — в таком случае нужно изучить документацию к материнской плате или воспользоваться поисковиком.

После меняем объем резервирования памяти под нужны видеосистемы:

2. Лимиты операционной системы

Разные редакции системы Windows имеют ограничение по максимально используемому объему памяти.

а) Все 32-х битные версии могут использовать максимум 3.25 Гб оперативной памяти. Это архитектурное ограничение — предел, на который способна система на 32 бита. Картина будет, примерно, такой:

Чтобы задействовать более 3 Гб памяти, необходимо переустановить систему на 64-х битную версию.

б) Редакции Windows также имеют ограничения. Например, Windows 10 Home 64 бита позволит использовать 128 Гб, а Windows 10 Pro x64 — 512 Гб. С Windows 7 ситуация хуже — домашняя базовая редакция позволит использовать лишь 8 Гб, а начальная, всего, 2 Гб.

Подробнее в таблицах:

ОС Ограничение, Гб
32-бит 64-бит
Windows 10 Home 4 128
Windows 10 Pro 4 512
Windows 8 4 128
Windows 8 Enterprise 2 512
Windows 8 Professional 4 512
Windows 7 Starter 2 2
Windows 7 Home Basic 4 8
Windows 7 Home Premium 4 16
Windows 7 Professional 4 192
Windows 7 Enterprise 4 192
Windows 7 Ultimate 4 192

Если наша проблема связана с лимитом редакции, необходимо обновить систему или переустановить ее.

3. Программное ограничение

Ограничение может быть выставлено в системе. Чтобы его снять, открываем командную строку и вводим команду msconfig - откроется окно «Конфигурация системы» (также можно воспользоваться поиском Windows по названию окна).

В открывшемся окне переходим на вкладку и кликаем по Дополнительные параметры :

Проверяем, что не поставлена галочка на Максимум памяти :

4. Настройка базовой системы ввода вывода

Для того, чтобы компьютер мог задействовать всю память, в некоторых случаях, может потребоваться настройка БИОС/UEFI:

5. Максимальный объем, который поддерживает материнская плата

Необходимо проверить, какой максимальный объем может увидеть сама материнская плата. Для этого стоит воспользоваться инструкций — она идет в комплекте, а также ее можно скачать на сайте производителя. Еще, подобную информацию можно найти на некоторых Интернет-магазинах:

6. Неисправность модуля памяти

В случае неисправности памяти система и БИОС будут отображать не весь ее объем (как правило, только половину). Например, если в компьютер вставлено 16 Гб (2 планки по 8 Гб) мы будем видеть только 8.

В этом случае можно попробовать вытащить и обратно вставить планки памяти (можно немного продуть их от пыли). Еще, планки можно поменять местами. Также можно попробовать почистить контакты (подойдет обычная стирательная резинка). В некоторых ноутбуках или моноблоках есть отдельная заглушка, открыв которую можно добраться до модулей памяти, иначе — необходимо разобрать компьютер полностью.

Если это не помогло, выполняем тест памяти . В случае, когда тест также показывает часть памяти, пробуем вытащить обе планки и вставить их по одной — если компьютер не включится с одной из них, данную неисправную планку нужно заменить, если компьютер будет запускаться со всеми планками, возможно, мы имеем дело с проблемой БИОС (шаг ниже).

7. Ограничения процессора

У каждого процессора есть свой лимит на поддержку максимального объема оперативной памяти. Необходимо зайти на официальный сайт разработчика и проверить, какой максимальный объем поддерживает наш процессор.

8. Установка драйвера для чипсета

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

Также, драйвер можно установить в полуавтоматическом режиме с помощью программы DriverHub .

9. Проблема с БИОС / UEFI

Так как БИОС/UEFI отвечает за сбор сведений о компьютере, проблема может возникнуть на начальной стадии включения ПК.

Для начала, пробуем сбросить настройки. Для этого отключаем компьютер от источника питания и вытаскиваем батарейку минут на 20 (первый раз можно попробовать, секунд, на 10). Если это не поможет, обновляем БИОС.

10. Поддержка модуля со стороны материнской платы

Если память была докуплена, и она отличается от второй планки, необходимо убедиться, что материнская плата поддерживает новый модуль.

Это можно сделать на официальном сайте производителя материнки — переходим в раздел поддержки и находим лист совместимости. Среди перечня оборудования необходимо найти купленную память.

11. Ограничение лицензии Windows

В системах, которые идут в комплекте с компьютерами используется жесткая лицензионная политика, ограничивающая замену оборудования. Это может привести к ситуации, когда при добавлении памяти, она не будет распознаваться вся.

В данном случае необходимо переустановить систему. При этом не поможет простая переустановка поверх имеющийся системы — только полное форматирование системного раздела с установкой новой Windows.

12. Перестановка модулей памяти

Иногда, помогает перестановка сестами модулей памяти. Просто разбираем компьютер, вытаскиваем модули и меняем их местами.

13. Чистка модулей ластиком

Если проблема появилась сама собой, можно попробовать вытащить модули памяти из материнской платы и чистим их контакты стерательной резинкой. После продуваем разъемы на материнской плате и вставляем память на место.

Знакомы многим пользователям. При вызове окна свойств системы полный объем отображается, но после него почему-то указывается, что доступно памяти чуть меньше. Еще хуже, когда пользователь точно знает, сколько у него установлено оперативной памяти, а доступно 50 и менее процентов. Почему это происходит, и как задействовать максимальный объем ОЗУ, далее и рассмотрим. Но для начала кратко остановимся на основных причинах такого явления.

Почему доступна не вся оперативная память?

Итак, то, что операционные системы Windows иногда выдают показатели, значения которых заведомо меньше, нежели полный объем установленной оперативной памяти, могут связаны с рядом причин, среди которых наиболее значимыми являются следующие:

  • установлена 32-разрядная система, не поддерживающая память более 4 Гб;
  • максимальный не поддерживается материнской платой;
  • в параметрах системы установлено ограничение на максимум используемого объема ОЗУ;
  • в BIOS некорректно заданы настройки перераспределения памяти;
  • память частично зарезервирована под встроенные видеоадаптеры;
  • запущено слишком много активных процессов;
  • установленные планки имеют повреждения, их работоспособность нарушена, или они подключены неправильно;
  • использование памяти блокируется вирусами.

Сразу стоит сказать, что подробно вопросы, связанные с вирусным воздействием, рассматриваться не будут. Тут можно посоветовать просто на всякий случай выполнить проверку, используя для этого портативные антивирусы или аналогичные программы, имеющие в своем распоряжении загрузчики.

Как задействовать всю установленную память простейшими способами?

Куда более важными вопросами, когда оперативная память доступна не вся, являются проблемы с подключением планок памяти или их некорректной работой. Для начала убедитесь, что материнская плата рассчитана на устанавливаемый объем, а также проверьте плотность вставки планок в соответствующие слоты. Нелишним будет и выполнить тест памяти, для чего может использовать собственное средство Windows (mdsched) или сторонние программы вроде Memtest86/86+.

Если неполадки на этом этапе выявлены не будут, обратите внимание на разрядность установленной модификации Windows. В случае наличия 32-битной версии, которая не умеет работать с ОЗУ объемом более 4 Гб (если только не применять специальные средства), сколько бы вы ни устанавливали памяти сверх этого лимита, все равно система его не распознает.

Оптимальным решением станет инсталляция 64-битной версии Windows. Но в этом случае установленные ранее программы могут не работать, а важные файлы придется скопировать в другой логический раздел или на съемный носитель.

Иногда бывает и так, что оперативная память доступна не вся по причине некорректно выставленных опций использования памяти в (msconfig).

В конфигураторе на вкладке загрузки нажмите кнопку дополнительных параметров и проверьте, установлен ли флажок на пункте максимума памяти. Если он есть, снимите его, сохраните установленные опции и перезагрузите систему.

Как уже понятно, частично память может «съедаться» огромным количеством активных фоновых процессов и служб, которые не видны пользователю. Для начала отключите все ненужные компоненты в автозагрузке (в Windows 7 и ниже для этого используется соответствующая вкладка в настройках конфигурации, в версиях выше - «Диспетчер задач»).

На всякий случай просмотрите активные компоненты системы в разделе программ и компонентов и отключите неиспользуемые (модуль Hyper-V, Internet Explorer, если используете другой браузер, службу печати, если нет принтера, и т. д.). Аналогично можно установить отключенный тип запуска и для некоторых других служб (services.msc), но в этом случае нужно точно знать, что можно деактивировать, а что нет.

Доступно мало оперативной памяти: какие настройки можно изменить в BIOS?

Если проблема и после применения вышеописанных решений осталась, зайдите в настройки первичных систем BIOS/UEFI и проверьте настройки памяти, в которых должен присутствовать пункт, содержащий слова Remapping или Remap (перераспределение).

Если у вас установлена 64-битная Windows, а памяти более 4 Гб, установите для него значение Disabled (отключение). В противном случае его нужно активировать.

Если оперативная память доступна не вся по причине резервирования дополнительного объема для видеокарты, встроенной в материнскую плату, выставьте для этого пункта значение, соответствующее объему памяти адаптера (узнать его можно на вкладке монитора при вызове диалога DirectX - dxdiag). Делается это за счет смены автоматического определения (Auto) на один из доступных вариантов (32, 64 или 128 Мб).

Пропатчивание 32-битных систем

Наконец, задействовать всю память свыше объема в 4 Гб можно и в 32-битных системах, используя для этого утилиту ReadyFor4GB. Сначала запускается исполняемый одноименный EXE-файл из папки приложения, а затем нажимаются кнопки Check и Apply. После этого аналогичные действия выполняются для объекта ntkrnlpa.exe. Затем запускается файл AddBootMenu.cmd и дается подтверждение выполнения команды. После перезагрузки в случае появления меню с загрузчиком выбирается Windows .

Примечание: все действия производятся исключительно с запуском файлов от имени администратора на свой страх и риск, поскольку работоспособность системы после применения такого метода в полной мере не гарантируется.

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

Архитектура x86

Все современные десктоп процессоры Intel или AMD (и не только) основаны на x86 архитектуре, которая была впервые реализована в процессорах Intel 8086, вышедших в 1978 году. Вплоть до Intel 80386 (i386) процессоры были 16-bit и могли использовать лишь до 16 MB ОЗУ. Вышедшие в 1985 году i386 процессоры стали 32-bit , что дает возможность адресации до 4 GB оперативной памяти (до 64 GB в режиме PAE, но при этом приложения могут использовать так же только до 4 GB).

Понятное дело, что в те годы 4 GB выглядело практически недостижимым. Но ничто не стоит на месте и со временем этого оказалось мало. В 2003 году компания AMD (ага, уже не Intel ) в своих новых процессорах линейки Opteron внедрила расширение x86-64 (другие названия: AMD64, Intel64, x64, EM64T). Это расширение имело ряд улучшений: 64 битные основные регистры, дополнительные регистры и расширение адресного пространства. Текущая реализация позволяет использовать до 256 TB виртуального адресного пространства, при теоретическом максимуме в 16 EB (ExbiByte — 2 64 байт ). Процессоры Intel поддерживают расширение x86-64 (AMD64) со старших моделей Pentium 4 (Prescott и далее).

x86 и x64 операционные системы

Применимо к ОС (Операционные Системы) используется обозначения x86 (в обиходе часто обозначается как x32 ) и x64 , являющиеся 32-разрядными и 64-разрядными соответственно. Их различие в том, что x64 поддерживают AMD64, давая возможность использовать его преимущества, а x86 его не поддерживает (и не использует). На практике это дает определенные особенности и ограничения.

  • 64-разрядная ОС требует процессора с поддержкой AMD64 (все современные процессоры от Intel или AMD )
  • 32- разрядная ОС может работать, как на процессоре с поддержкой AMD64, так и без нее (но такую древность еще найти нужно)
  • 64-разрядные приложения работают только на 64-разрядной ОС
  • 32-разрядные приложения полноценно работают и на x32 и на x64 ОС, но преимуществ AMD64 они использовать не могут

На данный момент идет постепенный отказ от x86 операционных систем в пользу x64. Например, серверные версии Windows, начиная с 2008 R2, выпускаются только 64-разрядными. То же Microsoft частенько грозят сделать и для новых десктопных версий, но пока не делают.

Ограничения виртуальной памяти в Windows

У каждой версии Windows есть определенные ограничения по использованию физической и виртуальной памяти (можно посмотреть по ссылке). И если ограничение физической памяти связано, скорее, с лицензированием, то с ограничениями виртуальной все немного сложней.

Нас же интересует только виртуальная память , так как именно с ней взаимодействуют приложения. Если не вдаваться в подробности, то технология виртуальной памяти позволяет каждому процессу иметь свою собственную память – адресное пространство, которое виртуально не пересекается с адресными пространствами других процессов. То есть приложение «считает», что память принадлежит только ему одному и может даже использовать больше имеющегося объема физической ОЗУ, а уже распределением и согласованием занимается ОС.

И так, для 32-разрядных Windows общее ограничение виртуальной памяти – 4 GB (как и для 32-разрядных процессоров). 64-разрядные имеют ограничение от 15 до 256 TB в зависимости от версии. Но, любая редакция Windows делит общее адресное пространство на две части: user mode (пользовательский режим) – память, доступная приложениям и kernel mode (режим ядра) – память, используемая системой. И, если на х64 приложениям достается 8 – 128 GB, то для x32 это всего лишь 2 GB (фактически ~1.7-1.8 GB). При достижении этого лимита, приложение выдаст ошибку и будет закрыто, или просто «вылетит» без каких либо предупреждений.


Как устроена память в Windows, подробно расписано в Марка Руссиновича.

Функция настройки памяти 4GT

Для Windows x86 существует официальный «костыль», позволяющий перераспределить виртуальную память, давая приложениям до 3 GB, при этом уменьшая системное пространство до 1 GB. Называется это 4-Gigabyte Tuning . Как это выглядит, продемонстрированно на следующей схеме (слева – по-умолчанию, справа – с применением 4GT):


Включается опция следующим образом:

Для Windows XP/2003 – добавлением ключа /3GB в файле Boot.ini


Для Windows Vista/7/8 – команда BCDEdit /set increaseuserva 3072 (Пуск > Стандартные (Start > Accessories ), правой кнопкой по Командная строка (Command Prompt ) – Запуск от имени администратора (Run as Administrator ), ввести и запустить команду).


Включение данной опции может привести к некорректной работе некоторых драйверов, программ или Windows в целом.

Флаг IMAGE_FILE_LARGE_ADDRESS_AWARE

Приложение сможет использовать свыше 2 GB виртуального адресного пространства, только если оно скомпилировано с параметром IMAGE_FILE_LARGE_ADDRESS_AWARE . Все 64-разрядные приложения по-умолчанию имеют этот параметр (в этом их суть), а вот 32-разрядные могут иметь его или не иметь – тут все зависит от программиста, который поставил эту опцию при компиляции или не поставил.

Этот флаг – это то, что нам нужно, чтобы заставить 32 битное приложение использовать больше 2 GB памяти. Запуск такого 32-bit приложения на Windows x32 с применением 4GT даст ему до 3 GB памяти (фактически ~2.8 GB), а на Windows x64 все 4 GB.

К счастью, выставить этот флаг для любого приложения можно самостоятельно . Для этого есть несколько способов.

Перед тем, как приступить убедитесь , что приложение, которое вы хотите изменить, в данный момент закрыто .

4GB Patch

Самый простой способ.

Для начала скачайте программу с сайта автора или отсюда:

После запуска 4gb_patch.exe откроется стандартное диалоговое окно «Открытие файла», где вам нужно указать.EXE файл, который вы собираетесь изменить.

Сразу после выбора файла появится окно программы, подтверждая успешную операцию. Далее вы можете изменить другой файл (нажав Another File ) или закрыть программу (нажав OK ).

Имейте в виде, что у программы нет обратного действия , поэтому в папке с изменяемым файлом она сохраняет его резервную копию с расширением .Backup .

CFF Explorer

Для тех, кто точно знает, что делает.

CFF Explorer – бесплатная и довольно мощная программа для работы с PE заголовками от автора 4 GB Patch . Скачать можно с сайта автора .

  1. Установив и запустив программу, открываем нужный.EXE файл.
  2. Переходим к пункту File Header .
  3. Щелкаем в правом нижнем углу появившейся таблицы (так и написано – Click here ).
  4. В открывшемся окне выставляем галочку напротив App can handle >2gb address space .
  5. Применяем и сохраняем файл.

Как видно, программа позволяет редактировать и другие параметры, имеет большое количество инструментов и даже встроенный дизассемблер.

Обратное действие – то же самое, с той разницей, что галочку мы убираем .

EDITBIN.EXE

Небольшая утилита EDITBIN.EXE , которая есть в комплекте Microsoft Visual Studio.

Действия следующие (запускается из командной строки):

Выставить: EDITBIN.EXE /LARGEADDRESSAWARE name.exe

Убрать: EDITBIN.EXE /LARGEADDRESSAWARE:NO name.exe

С помощью этого же параметра (/LARGEADDRESSAWARE) задается использование памяти для проектов Visual Studio.

Заключение

Суммируя вышесказанное – для того, чтобы 32-разрядное приложение могло использовать более 2 GB памяти должны быть соблюдены два условия .

В этой статье мы разберемся, как убрать ограничение 4 Гб памяти на 32 битных версиях Windows 8 и Windows 8.1, и задействовать всю доступную на компьютере оперативную память.

Большинство пользователей Windows убеждены, что 32 битные ОС Microsoft не поддерживают более 4 Гб оперативной памяти . Таким образом, максимум памяти, доступной в Windows 8/ 8.1 x86 — 4 Гб. А с учетом того, что Windows резервирует часть памяти под свои нужды и нужды периферийных устройств) чаще всего для видеокарты), конечному пользователю для использования доступны обычно около 3-3,5 Гбайт памяти.

На первый взгляд все логично – пределом адресации для 32 разрядной адресной шины являются те самые 4 Гб. Во всех официальных документах Microsoft указывает именно этот максимальный размер памяти, поддерживаемый во всех клиентских версиях x86-системе. Хотя на самом деле Microsoft немного вводит всех в заблуждение.

Что такое PAE и зачем он нужен

PAE (Physical Address Extension - расширение физической адресации) – эта опция x86 процессора, позволяющая ему получить доступ более чем к 4 Гб физической памяти . Не будем углубляться в технические подробности технологии PAE, просто отметим, что это технология поддерживается всеми процессорами и непосредственно в OC Windows уже довольно давно.

Так, например, 32 битная версия Windows Server, запущенная на процессоре x86, может использовать PAE для доступа ко всей оперативной памяти системы (до 64 Гб или до 128 Гб в зависимости от поколения процессора).

Скажем больше, поддержка режима PAE в ядре Windows имеется, еще начиная с Windows XP. Просто по умолчанию PAE доступен только в серверных ОС, а в клиентских же ОС Windows этот режим хотя и имеется, но отключен.

Примечание . PAE может использоваться только на 32 битных версиях Windows, запущенных на совместимых с этим режимом x86 процессорах.

Ограничения режима PAE

  • PAE не расширяет виртуальное адресное пространство каждого процесса. Каждый процесс, запущенный на 32 битной системе все так же ограничен 4 Гб адресного пространства.

    Совет . PAE не поможет увеличить количество памяти, доступной для ресурсоемкого приложения (например, графического или видеоредактора). Если такая необходимость имеется, лучше перейти на 64 разрядную ОС.

  • При использовании PAE следует отметить небольшое снижение производительности системы за счет уменьшения скорости доступа к памяти, вызванное накладными расходами на переключение отображаемых страниц в памяти
  • Драйвера некоторых устройств не могут корректно работать в 36 битном адресном пространстве.

Итак, можно сделать вывод, что верхний предел доступной физической памяти в 32 битных версиях Windows ограничен программно на уровне ядра ОС. А если есть программное ограничение, это означает, что его можно обойти! Каким же образом включить режим PAE в 32 битной Windows 8.1 и задействовать всю доступную оперативную память.

Патч, включающий PAE и позволяющий задействовать всю оперативную память на Windows 8 / 8.1 x86

Включить режим PAE в Windows 8 (Windows 8.1) штатными средствами не получится (для этого придется вручную в HEX редакторе править файл ядра ntoskrnl.exe и переподписывать его). Проще всего воспользоваться готовым патчем PatchPae2 , который написан энтузиастом Wen Jia Liu. Скачать патч PatchPae2 можно . (архив содержит сам патчер — PatchPae2.exe, его исходные коды и необходимые инструкции).

Патч представляет собой небольшую утилиту командной строки, которая позволяет модифицировать файлы ядра 32 битных версий Windows с целью активация режима PAE, позволяющего использовать более 4 Гб оперативной памяти (до 128 Гб памяти).

Патч PatchPae2 будет работать со следующими ОС:

  • Windows Vista SP2
  • Windows 7 / Windows 7 SP1
  • Windows 8 / Windows 8.1

Примечание . Перед установкой необходимо патча с целью предотвращения конфликтов рекомендуется отключить оптимизаторы и драйверы оперативной памяти. Их можно будет активировать после применения патча и загрузки системы в режиме PAE.

Установка PAE — патча в Windows 8 / 8.1

Внимание . Данную инструкцию можно использовать только для 32 битных версий Windows 8 и Windows 8.1, для предыдущих ОС Microsoft процедура немного отличается! Будьте внимательны!


Примечание. В любой момент времени пользователь, перезагрузившись, может в загрузочном меню переключиться с режима PAE на обычный, или обратно.

Важно! После установки патча необходимо быть особенно внимательными при установке обновлений безопасности Windows. Т.к. некоторые обновлений Windows иногда содержат и обновления для ядра, после их установки необходимо обновить и ядро PAE: PatchPae2.exe -type kernel -o ntoskrnx.exe ntoskrnl.exe

Кроме того, могут возникнуть проблемы, описанные и .

Удаление патча PAE

Чтобы удалить патч PAE из системы, необходимо:

  1. Удалить соответствующую запись из загрузочного меню (проще всего это сделать с помощью msconfig )
  2. Удалите файлы ntoskrnx.exe и winloadp.exe в каталоге %Windir%\System32 .

Никаких других изменений в систему патч не вносит.