Сколько памяти видит Windows 10 x32

Содержание

Разрядность Windows 10

Сколько памяти видит Windows 10 x32

Любые современные операционные системы делятся на 2 вида: 32-битные и 64-битные. В этой статье мы расскажем, почему такое разделение необходимо, сравним 32-битную и 64-битную Windows 10 по ряду факторов, а также посоветуем, как правильно выбрать разрядность системы для вашего устройства.

Что такое разрядность Windows

Люди, прежде не знакомые с компьютерными технологиями, не всегда понимают, что такое разрядность Windows, откуда и зачем это явление возникло. Вернёмся немного в прошлое.

Ещё 10-15 лет назад компьютеры были довольно слабыми по сравнению с сегодняшними. Объёмы оперативной памяти (RAM, ОЗУ — всё это обозначает одно и то же) редко превышали 1-2 ГБ, а мощности процессоров хватало лишь для самых простых задач.

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

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

32-разрядные системы создавалась много лет назад, когда Билл Гейтс утверждал, что 640 КБ оперативной памяти хватит всем. Тогда казалось, что максимальный теоретический объём памяти, с которой может работать такой механизм (около 4 ГБ) просто недостижим.

Но прогресс не остановишь, и этот предел был преодолён. Возникла необходимость в компьютерах нового вида, способных воспринимать 4 ГБ и больше RAM. Так появились 64-битные системы, способные работать с сотнями ГБ ОЗУ (а теоретически — с тысячами терабайт).

С тех пор Windows, как и другие операционные системы, делится на 2 вида:

  • 32-разрядная (x86). Иногда встречаются обозначения 32bit,  IA-32 или x32.
  • 64-разрядная (x86_64 или просто x64). Иногда встречается обозначения 64bit или amd64.

Главное их отличие — поддержка различных объёмов оперативной памяти.

Почему именно x86, x86-64, IA-32 и amd64

Неискушённому пользователю эти термины должны казаться довольно странными. Мы приведём некоторую справку и разберёмся в технических деталях.

Разрядность системы очень тесно связана с понятием архитектуры и разрядности процессора. Процессоры, как и системы, могут делиться на 32- и 64-разрядные. Поясним, что все это значит.

Что такое x86

x86 — это название архитектуры процессоров. Все современные чипы для ПК, ноутбуков, планшетов основаны на этой архитектуре. Её название образовано от конечных цифр первых процессоров Intel, использующих её: i386, i486.

Все эти первые процессоры были 32-битными, поэтому название архитектуры стало заодно и названием соответствующей разрядности (таким оно и остаётся до сих пор). Впрочем, официальное название технологии — IA-32 (она была создана компанией Intel). Правда, на сегодняшний день оно почти не используется.

Что такое x86-64

x86-64 — это название улучшенных программных механизмов для процессоров с архитектурой x86. Эти улучшения позволяют выполнять ПО в 64-разрядном режиме (то есть используя гораздо больше оперативной памяти).

Аналогично ситуации с x86, постепенно термин x86_64 стал применяться и для обозначения разрядности систем. Сокращённое наименование — просто x64. Иногда встречается название amd64, так как эти технологии были созданы компанией AMD.

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

Соответственно, 32-битное ПО (в том числе Windows 32bit) создано для 32-разрядных x86-процессоров, но может запускаться и на 64-битных x86-процессорах. А 64-битное ПО (и Windows 64bit в том числе) создано и работает только на 64-разрядных x86-процессорах.

Разница между 32- и 64-разрядными процессорами — разный объем поддерживаемой оперативной памяти, что выливается в разный размер поддерживаемой ОЗУ в 32- и 64-разрядной Windows.

Какие существуют другие архитектуры процессоров

В мобильных устройствах на данный момент в основном используются процессоры с архитектурой ARM. Именно для таких чипов создана, например, Windows 10 Mobile.

ARM-процессоры тоже делятся на 32- и 64-битные, но их ни в коем случае нельзя назвать x86 или x86-64: понятие x86 относится именно к десктопным процессорам.

В случае с ARM-чипами мы можем говорить о разрядности ARM (32-битная) и ARM64 (64-битная).

32-битная Windows

Из-за ограничений 32-разрядных процессоров максимальный теоретический объём ОЗУ в 32-битных системах составляет 4 ГБ. На деле чаще всего пользователю будет доступно 3-3,5 ГБ.

Эти значения одинаковы для любых современных Windows — как Windows 7 и 8.1, так и для Windows 10.

Исключением является лишь Windows 7 Starter, в которой лимит искусственно снижен до 2 ГБ.

64-битная Windows

Максимально возможный объем RAM на данный момент просто недостижим, так как составляет более 16 миллионов терабайт (1 ТБ = 1024 ГБ). Соответственно, присутствуют лишь ограничения Windows.

Windows 7

  • Home Basic: 8 ГБ.
  • Home Premium: 16 ГБ.
  • Professional, Enterprise, Ultimate: 192 ГБ.

Windows 8

  • Home: 128 ГБ.
  • Professional, Enterprise: 512 ГБ.

Windows 10

  • Home: 128 ГБ.
  • Pro, Enterprise: 2 ТБ.

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

Какая разница между 32- и 64-битной Windows

Самым главным, но не единственным различием, является поддержка разных объёмов RAM. Помимо этого можно отметить разницу в поддержке программ, о чем мы уже говорили выше. Напомним:

  • 32-разрядные системы поддерживают только 32-битные программы.
  • 64-битные системы полноценно работают и с 64-битными программами, и с 32-битными (правда, последние не смогут использовать все доступные мощности ПК).

Других заметных обычному пользователю различий нет.

Поддерживает ли компьютер 64-разрядную Windows

x86-процессор любого устройства по умолчанию поддерживает 32-битную Windows, но для работы 64-битной системы необходим чип с поддержкой x86-64. Кроме того, чтобы запустить систему той или иной разрядности, вам нужны соответствующие драйвера.

Чтобы узнать, какой у вас процессор, достаточно зайти в окно системной информации.

  1. Нажмите Win + R, чтобы вызвать окно команд.
  2. Введите команду control и нажмите Enter.
  3. Пройдите в категорию Система и безопасность, затем в раздел Система.
  4. Обратите внимание на строку Тип системы. В ней будет указано, какую архитектуру поддерживает процессор, и система какой разрядности у вас установлена.

Если ваше устройство обладает x86-процессором, то на нём заработает только 32-битная Windows. В ином случае (процессор x64) теоретически вы будете способны запустить и 32-разрядную, и 64-разрядную систему.

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

Кроме того, поставщик ПК может не предоставить драйвера для конкретной разрядности, из-за чего система фактически не будет нормально работать. Именно по этой причине лучше сразу смотреть не на процессор, а на драйвера.

Как узнать, есть ли драйвера для 32/64-битной Windows

На данный момент всё более распространённой становится ситуация, когда производитель устройства выпускает драйвера только для конкретной разрядности.

Почти всегда это оправдано: устанавливать 64-битную систему на планшет с 2 ГБ оперативной памяти довольно бессмысленно, как и устанавливать 32-битную систему на компьютер с 8 ГБ ОЗУ.

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

Проверить наличие драйверов можно на официальном сайте производителя.

Какую систему выбрать, 32- или 64-разрядную

В принципе, ответ на этот вопрос является обобщением всего, о чём мы писали выше.

Производитель предоставляет драйвера для систем обеих разрядностей

В таком случае ваше решение зависит от объёма оперативной памяти.

  • Установлено менее 4 ГБ.В таком случае установка 64-битной системы бессмысленна. 32-разрядная Windows будет работать у вас куда лучше.
  • Установлено 4 ГБ.Несмотря на то, что именно 4 ГБ является теоретическим предельным объёмом ОЗУ в 32-битных системах, фактически лимитом является цифра в 3,5 ГБ. Если вы установите 32-битную систему, то примерно 0,5 ГБ ОЗУ использоваться ей не будут. Впрочем, это не является веской причиной установки 64-разрядной Windows. Дело в том, что последняя использует заметно больше памяти при выполнении тех же задач, так что даже с учётом лишних 0,5 ГБ вы, скорее всего, только потеряете в производительности.32-битная Windows будет для вас лучшим выбором.
  • Установлено более 4 ГБ.Если вы воспользуйтесь 32-битной системой, она просто не увидит всю вашу оперативную память и не сможет использовать ресурсы компьютера по-максимуму. Даже не задумывайтесь и устанавливайте 64-разрядную Windows.
Читайте также  Просмотр дампа памяти Windows 7

Производитель предоставляет драйвера только для конкретной разрядности

В таком случае выбора у вас нет, так как без драйверов компьютер нормально не заработает. Устанавливайте систему, рекомендованную производителем.

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

Например, владельцы ноутбуков HP могут заметить, что Hewlett-Packard при предустановленных 4 ГБ оперативной памяти часто предоставляет драйвера только для 64-битной системы (а мы в таком случае рекомендуем установку 32-битной).

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

Как обновиться с 32-битной системы до 64-битной

Фактически «обновиться» до системы другой разрядности невозможно. Фундаментальные различия в механизмах 32- и 64-разрядной Windows не позволяют выполнить коррректный переход с одной версии на другую с сохранением всех ваших программ и файлов. Вам придётся выполнить чистую установку системы.

Источник: https://wp-seven.ru/instruktsii/tips/windows-10-tips/kakuyu-vybrat-razryadnost-windows-10.html

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

Сегодня я расскажу об ограничениях виртуального адресного пространства 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 — 264 байт). Процессоры 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 есть определенные ограничения по использованию физической и виртуальной памяти (можно посмотреть по ссылке). И если ограничение физической памяти связано, скорее, с лицензированием, то с ограничениями виртуальной все немного сложней.

Нас же интересует только виртуальная память, так как именно с ней взаимодействуют приложения.

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

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

И так, для 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 (Версия 1.0.0.1, 21 KB, Скачан 2920)

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

Читайте также  За что отвечает оперативная память в играх

Источник: http://www.toolgir.ru/ispolzovanie-bolee-2gb-dlya-32-bit-prilozheniya/

Сколько оперативной памяти нужно компьютеру

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

ОЗУ не относится к дорогостоящим комплектующим (в среднестатистическом современном ПК дешевлее ее — только корпус да DVD дисковод, если его кто-то еще ставит).

Тем не менее, вопрос о том, сколько оперативной памяти нужно для Windows, работы, игр, веб-серфинга компьютеру или ноутбуку — поднимается часто. Этот материал призван помочь разобраться и выбрать нужное количество планок ОЗУ для ПК.

Сколько оперативной памяти нужно для Windows

Официальные системные требования ОС Microsoft Windows почти неизменны уже лет 10.

С появлением версии системы Vista в 2006 году разработчики рекомендовали для комфортной работы ПК не менее 1 ГГц частоты процессора (о многоядерности тогда еще никто и не говорил: такие процессоры относились к топовому сегменту и их возможностей хватало для всех задач) и 1 Гб оперативной памяти для 32-разрядной версии системы. Для платформы x86-64 советовали не менее 2 гигабайт ОЗУ. Не изменились эти требования с выходом Windows 7, 8, 8.1, а теперь — и 10.

Системные требования Windows 10: скриншот с официального сайта Microsoft

Но если в 2006 году компьютер с 1 Гб памяти относился к среднему классу и стоил около 400 долларов, то состоянием на 2016 эти характеристики выглядят смехотворно. Учитывая прогресс, нельзя отрицать, что “аппетиты” программного обеспечения существенно выросли.

Сколько оперативной памяти нужно для Windows сейчас — зависит от версии системы и поставленных задач. Для 32-битной ОС объем менее 2 Гб — по современным меркам мелочь. Да и планку ОЗУ такой емкости найти в магазине нужно еще постараться.

3 Гб — тот минимум, ниже которого опускаться не стоит. Данный материал был создан на ПК с 2 Гб ОЗУ, но при этом на приведенном скриншоте можно видеть: 85 % ОЗУ заняты. И это при том, что в системе открыты только браузер с десятком вкладок и, собственно, “Ножницы”.

А переход между вкладками в “Опере” занимает от 3-5 секунд.

На компьютере с 2 Гб оперативной памяти ощущается ее дефицит

Есть у 32-разрядной Windows одно неприятное ограничение: сколько бы памяти не было установлено в системе, ни одна задача не может использовать более 2 Гб из них, а сама ОС “не видит” больше 3-4 Гб ОЗУ. Таким образом, если ПК предназначен для веб-серфинга или игр, то даже между 4 и 32 Гб на архитектуре x86 разницы не будет видно. Именно этим и обусловлен переход на 64-битную адресацию.

В 32-разрядной ОС Windows доступно только 3 Гб оперативной памяти из 8

В x86-64 все немного иначе: ограничений нет (на самом деле они есть, но исчисляются терабайтами), память используется на полную.

Но само 64-разрядное ПО расходует больше ОЗУ, и памяти нужно запасти поболее. 4 Гб — минимальный рекомендуемый объем.

Для постоянной работы в “Офисе” и веб-серфинга рекомендуется 6 или 8 Гб (можно и больше, но рост быстродействия незаметен и вложений может не оправдать).

Аналогичная нагрузка на компьютере с 4 Гб ОЗУ и Windows x86-64

Сколько оперативной памяти нужно для игр

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

Большинство игрового софта, созданного до 2010-2012 годов — является написанным для 32-битных платформ. На ПК с Windows 7 x86-64 такие игры исполняются без задействования 64-разрядных инструкций и не могут адресовать (занимать) более 2 Гб ОЗУ.

Таким образом, для них увеличение памяти не даст существенного прироста. Радует, что большинство подобных игр (тот же “Сталкер”) демонстрируют хорошую производительность даже задействуя, от силы, половину мощностей современного ПК.

Поэтому для старого софта и 4 Гб будет достаточно.

Чуть сложнее ответить на вопрос, сколько оперативной памяти нужно компьютеру для игр нового поколения.

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

2 планки по 8 Гб целиком оправдают затраты для геймера. Можно установить даже 32 Гб, но это уже задел на будущее, а не срочная потребность.

Сколько оперативной памяти нужно для ноутбука

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

Поэтому все вышесказанное можно применить и в отношении лэптопа. Единственная поправка, которую следует внести — тот факт, что даже 8 Гб для игр будет достаточно.

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

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

Ноутбуки потребляют меньше ОЗУ: скриншот лэптопа с 3 Гб RAM. Нагрузка близка к предыдущим примерам

Источник: https://blog.priceok.ru/guides/skolko-operativnoj-pamyati-nuzhno-kompyuteru/

Секреты большой памяти в 32-битных операционных системах

Здравствуйте уважаемые читатели блога www.ithabits.ru.

Должен сразу признаться, что не смотря на то, что я много лет профессионально занимаюсь различными аспектами ИТ, до недавнего времени такой вопрос, как максимальный размер оперативной памяти в клиентских компьютерах с 32-разрядными операционными системами, меня совершенно не интересовал.

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

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

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

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

Впервые я реально столкнулся с проблемой большой памяти когда ко мне в руки попал ноутбук с 4 ГБ оперативки и Windows 7 Professional x86. Захотелось выяснить что к чему.

А именно, — куда “исчезла” часть установленной памяти и нельзя ли ее как-нибудь вернуть? Ведь объем доступной физической памяти самым непосредственным образом влияет на быстродействие системы.

Тема оказалась удивительно многогранной и чрезвычайно интересной, даже при том, что новой ее точно не назовешь — самая ранняя из публикаций, использованных мной для поиска ответов на поставленные вопросы, датируется 2006-м годом.

Практически все найденные мной по этой теме публикации отличались либо сверхлаконичностью до простой констатации фактов, либо были целиком посвящены какой-то одной стороне проблемы. Требовались обобщение и систематизация с «раскладыванием по полочкам», что я и постарался сделать. В результате получился цикл из пяти взаимосвязанных статей.

Сегодняшняя статья является первой, и ее название «Секреты большой памяти в 32-битных операционных системах»  можно смело отнести ко всему циклу.

Я очень советую ознакомиться с этим циклом не только тем, кто работает с 32-разрядными операционными системами, но и тем, кто уже перешел на 64-разрядные ОС.

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

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

Максимальный размер оперативной памяти, который поддерживают 32-разрядные системы

Сегодня мы разберемся с вопросом: могут ли 32-разрядные системы работать с физической памятью больше 4 ГБ в принципе и если да, то каким образом.

Главное, что надо сделать в самом начале, это четко разделить между собой три понятия:

  1. Свойства процессора;
  2. 32-битная операционная система;
  3. 32-разрядное приложение (программа)

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

Процессор

Обратимся к таблице основных характеристик процессоров (чуть было не написал х86, что было бы ошибкой – эта система команд впервые появилась у процессора 8086) >

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

Для начала обратим внимание на 16-разрядные процессоры.

Если бы они имели 16-разрядную адресную шину, то максимальный размер доступной им физической памяти составлял бы всего 64 КБ (2 в 16-й степени равно 65536).

Однако уже Intel 8086 мог работать с памятью до 1 МБ, а 80286 уже до 16 МБ благодаря 20 и, соответственно, 24 битам шины адреса.

Эпоха процессоров IA-32 и 4 ГБ ОЗУ началась с Intel 80386 в 1985 году. На протяжении последующих 10 лет процессоры архитектуры IA-32 не имели физической возможности работать с памятью более 4 ГБ.

Читайте также  Узнать тип оперативной памяти средствами Windows

В 1995 году был представлен процессор Intel Pentium Pro.

Наряду с совершенно новой архитектурой ядра этот процессор получил 36-битную адресную шину благодаря чему, как не трудно подсчитать, максимальный размер доступной ему физической памяти увеличился до 64 ГБ (в современных 64-разрядных процессорах используются 37 разрядов, что увеличивает предел адресуемой физической памяти до 128 ГБ).

Кроме того, в процессоре был реализован «хитрый» механизм управления памятью, который отображал физическую память, расположенную за пределами 4 ГБ, в 32-разрядную виртуальную память в диапазоне 0 — 4 ГБ «обманывая» таким образом 32-разрядные приложения. Такой режим управления памятью процессором х86 получил название PAE (Physical Address Extension — расширение физических адресов).

Pentium Pro позиционировался в то время как процессор для серверов и рабочих станций. Действительно, представить себе в 1995 году настольный компьютер с объемом оперативной памяти не то что больше, а хотя бы отдаленно приближающимся к 4 ГБ, было не просто.

Память измерялась тогда мегабайтами. И в наше то время 4 ГБ памяти в настольном компьютере или ноутбуке нужны далеко не всем.

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

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

Коль уж заговорили о процессорах, то отметим, что первый 64-разрядный процессор х86 появился не у Intel, а у ее главного конкурента – компании AMD в 2003 году.

К этому моменту у Intel уже был, выпущенный в 2001 году, 64-разрядный процессор Itanium совершенно новой архитектуры IA-64, не совместимой с х86. В том числе по причине последнего, процессор не получил распространения на настольных компьютерах.

В 2003 году специально для Itanium была выпущена единственная версия Windows XP 64-Bit Edition Version 2003 (Itanium 2). Проект был прекращен в 2005 году за ненадобностью.

Не все, но подавляющее большинство современных процессоров х86 для настольных компьютеров являются  64-разрядными и имеют поддержку PAE. Благодаря этому они не только могут работать с памятью более 4 ГБ, но и предоставляют такую возможность 32-битным операционным системам.

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

grep —color=always -i PAE /proc/cpuinfo

В результате должно получиться что-то вроде этого >

32-разрядные операционные системы

Первой в ряду 32-разрядных ОС Microsoft стала  Windows NT 3.1, выпущенная в 1993 году. Она предназначалась для корпоративного сектора, то есть для серверов и рабочих станций.

Двумя годами позже в 1995 году появилась Windows 95 — операционная система для настольных компьютеров и ноутбуков. Между двумя этими событиями в 1994 году была представлена версия 1.0 ядра Linux.

32-разрядная архитектура оказалась столь удачной и «достаточной», что она повсеместно используется до сих пор на протяжении вот уже 2-х десятилетий. Последней 32-битной серверной операционной системой Microsoft  стала Windows Server 2008.

Однако, новейшая  Windows 8 по-прежнему предлагается в двух вариантах. Споры о том, что лучше – 32 или 64 не прекращаются и сегодня.

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

Если у Вас 32-разрядный Linux, то проблем с использованием памяти объемом более 4 ГБ, скорее всего, не возникнет. В операционных системах Linux поддержка PAE появилась в 1999 году в ядре 2.3.23 и используется с тех пор безо всяких ограничений.

Можно отметить, что, например, популярный Linux Mint вообще поставляется сегодня исключительно с ядром PAE и требует его обязательной поддержки процессором. Кстати, как в Windows 8. Не все этому обстоятельству рады, так как очевидно все еще сохранились процессоры без поддержки PAE.

Посмотрим таблицу максимально поддерживаемых размеров физической памяти, взятую из статьи 2005 года в msdn.microsoft.com, для Windows 2000, Windows XP и Windows Server 2003 >

Как видно из этой таблицы, режим PAE поддерживается во всех версиях ОС Microsoft начиная с Windows 2000.

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

Для нас особый интерес представляют строки таблицы, которые прямо говорит о том, что во всех версиях Windows XP общее адресное пространство физической памяти ограничено на уровне 4 ГБ.

Именно искусственно ограничено в ядре, так как поддержка PAE есть. С чем связано такое ограничение, причем не только в ХР, но и во всех последующих настольных 32-разрядных версиях Windows, разберемся во второй части.

Режим PAE может быть включен, может быть выключен. Начиная с Windows XP SP2 PAE включается принудительно для обеспечения работы технологии безопасности DEP (Data Execution Prevention — предотвращение выполнения данных).

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

Реализуется технология как программно, так и аппаратно.

В последнем случае процессор помечает отдельные страницы памяти как не содержащие исполняемого кода измененным старшим битом в адресной таблице PTE (Page Table Entry) виртуальной памяти, а затем перехватывает и предотвращает запуск исполняемого кода с этих страниц.

Переходим к нашему последнему сегодняшнему пункту.

32-разрядные приложения

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

Каждому приложению, так как для них сохраняется 32-битное адресное пространство, по-прежнему доступны только 4 ГБ виртуальной памяти. В Windows под нужды самого приложения из этих 4 ГБ отдается ровно половина, в Linuх — 3 ГБ.

В Windows существует возможность принудительно отдать приложению 3 ГБ, но, в большинстве случаев, это является нецелесообразным.

Необходимо иметь в виду, что включение режима PAE отнюдь не эквивалентно переходу на 64-битную систему, в которой каждому приложению выделяется несравнимо больший объем памяти.

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

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

Например, требуется одновременная работа двух виртуальных машин, каждой из которых отведено по 2 ГБ памяти.

Что будет без PAE понятно — вторая виртуальная машина, скорее всего, просто не запустится, ну или в системе начнется такой интенсивный обмен со swap-файлом, что процесс перейдет в категорию «пошаговая стратегия» (забегая в перед скажу, что в реальном эксперименте с виртуальными машинами, о котором можно прочитать в заключительной части, swap не помог). С включенным PAE, при условии достаточного объема физического ОЗУ хостовой машины, обе виртуальные машины будут благополучно работать. На самом деле все несколько сложнее, но, в общих чертах, так.

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

На этом пока остановимся и подведем итоги:

  • Практически все современные 32-битные операционные системы умеют работать с оперативной памятью размером более 4 ГБ. Такая возможность появилась в 1995 году благодаря внедрению в процессоры технологии PAE  (Physical Address Extension — расширение физических адресов);
  • Не смотря на то, что поддержка PAE позволяет задействовать физическую память объемом до 64 (128) ГБ, работа ядра операционной системы в таком режиме совершенно не эквивалентна переходу на 64-битную ОС. Приложения продолжают выполняться в обычном для них 32-разрядном адресном пространстве, но при этом, если установленная физическая память превышает 4 ГБ, самих приложений может быть одновременно запущено больше;
  • В режиме PAE может наблюдаться снижение скорости доступа к памяти и проблемы с драйверами устройств;
  • В операционных системах Microsoft Windows верхний предел доступной физической памяти ограничен программно на уровне ядра ОС.

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

  —  18 декабря, 2012  в рубрике  —  Microsoft Windows, Семейство ОС Linux   32-битная ОС, 4 ГБ, 64-битная ОС, DEP, Linux, PAE, Windows 7, Windows 8, Windows Server, Windows XP, Оперативная память, Процессор

Источник: http://www.ithabits.ru/15300-bolshaya-pamyat-v-32-bitnyih-operatsionnyih-sistemah.html

Понравилась статья? Поделить с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: