Система видит не всю оперативную память. Оперативная память доступна не вся: как задействовать ее полный объем

Все пользователи персональных пк добиваются того, чтобы увеличить свою оперативную память. Если вы собираетесь установить дополнительную планку, то это может помещать вашим планам, так как компьютер может попросту не увидеть её.Так почему же доступна не вся оперативная память в разных версиях Windows?
Компьютер не увидит оперативную память по нескольким причинам. Разрядность системы может играть большую роль. Компьютер, с 32-разрядной операционной системой, не увидит более 3 гб ОЗУ, потому что он так устроен. Чтобы решить эту проблему нужно установить 64-разрядную операционную систему.
Может возникнуть такая ситуация, что система и вправду показывает такое количество оперативной памяти, которая должна быть, но доступна она в меньших объёмах памяти. Это объясняется тем, что память зарезервирована встроенной видеокарте, но при наличии дискретной такой проблемы не будет выявлено. Но всё же стоит убедиться в этом и проверить в BIOS включена она или же нет и какое количество памяти она в данный момент использует.
Также при выборе такого параметра, как «Максимум памяти», вы не сможете воспользоваться ей в полной мере. При помощи конфигурации системы возможно это проверить.

Вероятные проблемы

При не обнаружении этого параметра следует обновить BIOS. Есть и вероятность того, что при производстве материнской платы эта функция была не реализована. В этом случае лучшим вариантом будет заменить старую версию на более новую, которая будет поддерживать разблокировку оперативной памяти, чтобы использовать больше, чем 4 гб.

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

Возможно и то, что, если планка новая, можно попробовать установить оперативную память в различные разъёмы, это может решить проблему. Может быть, перестановка поможет системе увидеть их.
Если эти способы не помогли решить проблему, то рассмотрим следующие варианты, которые могут вам помочь.
Неправильная настройка BIOS тоже может быть всему виной.

Включить перераспределение памяти

Проверьте BIOS на наличие включения перераспределения памяти в его параметрах. Если перераспределить память, то для windows её огромный объём может стать доступен. Тот, кто поставляет оборудование, сам решает, как обозвать функцию, которая будет ответственна за перераспределение памяти. Она может иметь такие названия, как расширение памяти, перераспределение памяти или другие похожие названия. Но также и исключать и тот факт, что такая функция, как перераспределение памяти, может отсутствовать у компьютера.

Изменить размеры видеоаппаратуры AGP при помощи параметров BIOS

Требуется выяснить о выделенной памяти конкретно для видеоаппаратуры AGP. Система делится этой памятью с видеоадаптером, который используется, чтобы отображать текстуры и отрисовки. Параметры BIOS помогут в настройке размера видеоаппаратуры. Её размер обычно 32,64,128 или задаётся автоматически. Затем следует перезагрузить компьютер и проверить объём оперативной памяти.

Приветствую, дорогие читатели! К нашей огромной радости цены на комплектующие неуклонно ползут вниз, и сегодня 8 Гб оперативки на домашнем компе – не что‐то из ряда вон выходящее, а «программа‐минимум» для продвинутого геймера.

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

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

32‐битные ОС

Для понимания сути проблемы следует немного вспомнить историю развития компьютерной техники. Не буду слишком сильно углубляться в детали и постараюсь дать краткую выжимку. На ПК, созданном еще в бородатом 1981 году, команды периферическим устройствам и обращение к оперативной памяти были совмещены. Соотношение объема адресного пространства, отводимого под ОЗУ и BIOS, было принято 5:3.

С появлением в 1985 году процессора 80386 разделение адресов осталось неизменным в целях совместимости с компьютерами‐предшественниками. Устройствам, использующим адресное пространство, выделили целый четвертый гигабайт. Тогда такая величина казалась заоблачной цифрой: сам Билл Гейтс, создатель Windows, заявлял, что 640 килобайт оперативки достаточно для каждого.

Такая архитектура на 32bit стала стандартом, по которому в течение последующих 20 лет развивалась оргтехника. В 32 битной Винде, независимо от объема установленной памяти, пользователю доступно только 3,25 Гб – все остальное отжирают системные ресурсы. Это наблюдается и на устаревшей, но кое‐где еще используемой «Хрюше», и на windows 7, и на windows 10.

То, что юзер может задействовать не весь объем памяти под свои нужды, устранено на 64bit версии Винды. Узнать версию Windows можно, найдя пункт «Компьютер» в меню «Пуск», кликнув по нему правой кнопкой мыши и выбрав «Свойства».

При этом учитывайте, что из‐за разницы в архитектуре, апгрейд с 32‐разрядной версии до 64‐разрядной невозможен: потребуется полная переустановка операционной системы. Драйвера для всех устройств также придется найти 64‐битные.

Аппаратная проблема

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

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

Настройки конфигурации

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

  • Ввести в строке поиска msconfig и запустить найденный файл;
  • В открывшемся окне перейти во вкладку «Загрузка» и выбрать пункт «Дополнительные параметры»;
  • В следующем окне убрать флажок «Максимум памяти».

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

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

Сегодня я расскажу об ограничениях виртуального адресного пространства 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 памяти должны быть соблюдены два условия .

Такая проблема может возникнуть на любой Windows. Давайте разберемся почему вся память на компьютере - не доступна.

Разрядность / битность и редакции ОС Windows могут иметь ограничения

Из-за разрядности Windows могут быть проблемы с определением всей оперативной памяти. Все Windows которые имеют разрядность 32 (x86) не могут задействовать для работы более 3,2ГБ оперативной памяти. То есть, даже если у вас установлено, например, 8ГБ оперативки, Windows 32 битка сможет использовать только 3,2ГБ памяти из-за ограничений. Так же, некоторые редакции операционных систем могут иметь ограничения. К примеру, Windows 7 домашняя базовая (home basic) может использовать только 4ГБ оперативки!

Отключите настройку Максимум памяти в MSCONFIG

Тут все просто если вы пытались увеличить производительность вашего ПК, то могли включить настройку "Максимум памяти". Отключить ее просто, идем в Панель управления --> Администрирование --> Конфигурация системы --> вкладка Загрузка --> Дополнительные параметры --> уберите галочку Максимум памяти!

Выделение памяти на интегрированную видеокарту

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

Ищите в БИОСе такие значения:

  • Display Cache Window Size
  • Frame Buffer Size
  • Int. Gfx Memory Size Select
  • Internal Graphic Mode Select
  • Internal Graphics Mode Select
  • On-Chip Frame Buffer Size
  • On-Chip Video Window Size
  • Onboard VGA Frame Buffer
  • Share Memory Size
  • System Share Memory Size
  • UMA Frame Buffer Size
  • VGA Share Memory Size
  • Onboard Video Memory Size

И отключайте резервацию памяти - DISABLE, NONE или ставьте минимальное значение какое есть. Если вы не нашли у себя таких значений, то придется воспользоваться гуглом и найти данные настройки для своего БИОСа / UEFI.

Резервирование памяти под системные нужды в БИОСе / UEFI

В настройках БИОСа есть различные ограничения на использование оперативной памяти и частенько именно из-за них Windows не видит всю оперативную память. Поищите в БИОСе / UEFI такие настройки и измените их:

  • HPET Mode (если есть такая функция) должно быть значение 64-bit;
  • Memory Hole должно быть в состоянии Disabled;
  • Memory Remapping;
  • DRAM Over 4G Remapping;
  • H/W DRAM Over 4GB Remapping;
  • H/W Memory Hole Remapping;
  • Hardware Memory Hole;
  • Memory Hole Remapping;
  • Memory Remap Feature - все эти значения должны быть в состоянии Enabled.

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

Иногда эти значения нельзя найти из-за того что БИОС устарел и тогда его не мешало бы обновить. Как это сделать я показывал в одном из видео .


Какие еще могут быть проблемы с определением оперативной памяти?

Если у вас проблемы с материнской платой или самой оперативкой, это может вызывать те же последствия, Windows не будет видеть всей оперативки. Что бы выявить проблемы стоит сделать диагностику материнки и оперативки .

Иногда помогает просто перевтыкание планок оперативки в материнку. Так же помогает установка планок оперативку в режим двойного канала.

Те у кого установлены не оригинальные версии Windows (сборки), так же испытывают проблемы с определением всей оперативки. Используйте оригинальные дистрибутивы Windows и таких проблем у вас не возникнет.

Знакомы многим пользователям. При вызове окна свойств системы полный объем отображается, но после него почему-то указывается, что доступно памяти чуть меньше. Еще хуже, когда пользователь точно знает, сколько у него установлено оперативной памяти, а доступно 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 .

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