32 битная windows ограничения по памяти

Сколько «оперативки» видит Windows 7 32 bit: с чем связаны ограничения и как освободить память?

Пользователи Windows 7 все еще остается одной из самых популярных и востребованных во всем мире ОС даже после заявлений корпорации Microsoft о прекращении ее поддержки. Однако очень часто неудобство ее использования на домашних и офисных ПК состоит в том, что далеко не всегда система с разрядностью х86 корректно воспринимает апгрейд «железа» в плане увеличения планок ОЗУ для повышения производительности. О том, сколько «оперативки» видит Windows 7 32 bit, далее поговорим более предметно. И тут нужно четко ориентироваться в архитектуре, поскольку ответ на основной вопрос в большинстве случаев зависит как раз от таких знаний.

Сколько памяти может использовать 32-битная операционная система: общие сведения

Начнем с того, что на всевозможных форумах можно встретить посты несведущих пользователей, утверждающих, что памяти можно поставить на компьютер, сколько угодно, система ее распознает, но использовать не сможет. Это не совсем так. Архитектура х86 или 32 бита такова, что более определенного лимита, который составляет 4 Гб, она может и не распознать.

Связано это только с принципами работы 32-битных систем в плане использования доступного адресного пространства. Но если разбираться сколько оперативной памяти видит Windows 7 32 bit разных модификаций, и тут можно найти массу ограничений. В основном это касается построения структуры самих модификаций системы.

Сколько «оперативки» видит Windows 7 32 bit «Начальная»

Так, например, версия Starter, которая в иерархии ОС всего этого семейства является самой простой и, если можно так сказать, ограниченной, не способна работать с установленными планками ОЗУ с объемами, превышающими 2 Гб (хотя тех же установленных 4 Гб и определяет).

При этом, как оказывается, совершенно неважно, какой стандарт имеет сама «оперативка». Поставьте в компьютер с этой модификацией ОС хоть DDR5, все равно результат будет один и тот же.

Ограничения на установку ОЗУ в остальных версиях Windows 7 (х86)

Если же говорить о том, сколько «оперативки» видит Windows 7 32 bit остальных версий, как уже понятно по тому, что было сказано применительно ко всем 32-битным ОС, для нее максимальное ограничение составляет именно 4 Гб.

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

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

Вероятно, многие пользователи, просматривая данные в разделе свойств системы, который вызывается через меню ПКМ на значке компьютера, расположенном на «Рабочем столе», достаточно часто замечали, что даже при наличии 4 Гб ОЗУ доступный объем существенно уменьшается.

В среднем показатель потерь составляет примерно 300-500 Мб, а иногда и выше. Почему так? Тут основная проблема состоит в том, что оперативную память в Windows 7 32 bit приоритетно используют исключительно системные процессы, среди которых можно найти очень много фоновых служб и апплетов, запускаемых при старте системы, не говоря уже об автоматически загружаемых компонентах пользовательских программ. Соответственно, их основные модули, не говоря уже о драйверах и динамических библиотеках, постоянно висят в ОЗУ, что называется мертвым грузом. Кроме того, по умолчанию в системах Windows 32 bit установлены параметры, касающиеся использования максимума памяти именно системными компонентами.

Как использовать ОЗУ по максимуму?

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

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

Читайте также:  Autocad 2017 crack windows 10

Наконец, можете воспользоваться разделом служб (services.msc) и отключить ненужные апплеты и процессы именно там, однако без необходимых знаний такими вещами лучше не заниматься. Если хотите, можете деактивировать автоматическую инсталляцию апдейтов. По крайней мере, в «семерке» (в отличие от той же «десятки») сделать это можно.

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

Выводы

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

Например, неплохо работает приложение Advanced SystemCare. В нем есть специальный встроенный инструмент, который при активации может отслеживать состояние ОЗУ в реальном времени и освобождать память для пользовательских процессов путем выгрузки из нее ненужных или неиспользуемых системных модулей и компонентов. Однако такая функция доступна только в версии Pro, а в бесплатной модификации Free ее вы не найдете (а если и найдете, то она будет неактивной и использовать ее будет невозможно).

Правда ли, что 32 разрядная система не может использовать больше 4 гигабайт оперативной памяти?

Если большинство пользователей спросить: чем отличается 32 разрядная система от 64? То последует ответ, что 64 разрядная версия поддерживает больше оперативной памяти. Они по-своему правы, ведь операционная система Windows действительно показывает, что доступно только примерно 3.5 гигабайта оперативной памяти из большего количества, когда используется 32 разрядная система.

Однако, любопытный пользователь, решивший попробовать, например, Linux Ubuntu или Linux Mint, обнаружит, что его операционная система видит всю установленную оперативную память и может ее использовать. Это что же получается? Между 32 и 64 разрядными системами нет никакой разницы, а Microsoft довольно потирает руки и зарабатывает сверхприбыли на разводе? На самом деле, нет.

Все дело в специальной технологии PAE (Physical Address Extension), которая существует очень давно. Она позволяет 32 разрядным приложениям использовать 36 разрядное адресное пространство, при условии, что технология поддерживается аппаратно и на уровне ОС. Что это означает? Раньше адресное пространство было ограничено размером 2 в 32 степени байт, что равно 4294967296 байт или 4 гигабайта. PAE добавляет еще 4 разряда (получается 2 в 36 степени), после чего мы получаем 64 гигабайта памяти. В x32 Microsoft Windows эта технология поддерживается лишь частично. Приложения могут использовать этот объем памяти, но Windows не дает использовать нужное количество ОЗУ, поэтому приложения будут использовать файл подкачки.

А теперь вернемся к Windows, почему нам не доступна эта технология? Ответить на этот вопрос довольно сложно. Самое нейтральное объяснение заключается в том, что, когда только появились первые x64 Windows, а в процессорах уже была поддержка PAE, драйверы 32 битных систем не могли правильно PAE использовать, что лишало систему работоспособности, поэтому в Microsoft частично отказались от поддержки PAE, решив ее использовать для файла подкачки и для технологии DEP, которая нужна системе для дополнительной защиты от вирусов

Читайте также:  Mqtt broker для windows

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

Особая благодарность каналу Secure View , автор которого указал на важные ошибки в старой версии статьи.

Использование более 2гб памяти для 32-битного приложения

Автор ToolGIR. Опубликовано в Софт

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

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

У каждой версии 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), ввести и запустить команду).

Флаг 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).

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 памяти должны быть соблюдены два условия:

  1. Приложение должно быть установлено на Windows x64 (предпочтительней) или Windows x86 с включенным 4GT.
  2. Приложение должно иметь флаг IMAGE_FILE_LARGE_ADDRESS_AWARE
Оцените статью