Нажмите "Enter", чтобы перейти к содержанию

Сколько видит 32 битная система оперативная память: как задействовать ее полный объем?

Содержание

как задействовать ее полный объем?

Проблемы, связанные с тем, что в 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 [128GB with ntkr128g.exe].

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

Как я преодолевал предел 4Гб на Windows XP 32бит / Хабр

Сразу оговорюсь, «преодолевал» в названии отражает только тот факт, что теперь моя XP видит всю память, установленную на системной плате. Не я придумал способ, я просто им воспользовался и теперь хочу поделиться.
Вопрос о четырёх гигабайтах памяти в Windows XP (здесь, и далее 32 бит) поднимался на просторах Интернет неоднократно. И так же неоднократно делался вывод, что более четырёх увидеть в принципе невозможно, а так как оборудование тоже требует адресного пространства, то и того меньше. Обычно 3.25 Гб, или около того. Очень подробно и убедительно история вопроса освещена здесь: Четыре гигабайта памяти — недостижимая цель?

Меня этот вопрос тоже волновал. Хотя, казалось бы, можно поставить 64 битную систему, или даже Windows Server (как известно он даже в 32-битной версии видит всю память), но я хотел пользоваться Windows XP. Два раза за последние 3 года я переходил на Windows 7, в первый раз на 64-битную, второй раз на 32-х битную, но в итоге оба раза вернулся назад на XP, которая живёт у меня без переустановки с 2007 года.

Последний раз я отказался от семёрки в пользу старушки буквально две недели назад. Притом, надо отметить, что семёрка была хоть и 32-х битная, но в ней была разблокирована возможность видеть всю доступную память. Способ разблокировки доступен в Интернет. И теперь мне с новой силой захотелось решить этот вопрос и в XP.

Поиски привели на этот сайт: Patch Vista’s Kernel to Address more than 4 GB of Memory
Статья посвящена разблокировке Windows Vista, зато в комментариях, пара человек описывает аналогичный способ для Windows XP. Я решил последовать их советам и опробовать эту методику на практике.

Для начала нужен дистрибутив Windows XP SP1. Возможно, подойдёт и просто первый сервиспак, не знаю, у меня его нет. В общем-то, там нужен только один файл. А именно файл библиотеки Hardware Abstraction Layer. Начиная со второго сервиспака эта библиотека работает с PAE «фиктивно», т.е. даже если режим расширенной трансляции адресов включён – он ничего не делает и не выходит за пределы четырёх гигабайт. А вот библиотека от первого сервиспака работает полноценно и может адресоваться ко всей доступной памяти, аналогично тому, как работает с памятью 32-битный Windows Server. В установленной Windows XP данный файл называется hal.

dll, но в дистрибутиве имеется несколько HAL-файлов, и только один из них инсталлируется в систему под именем hal.dll в процессе установки. Необходимо было узнать, какой из файлов нужно использовать на моём конкретном оборудовании. Делается это просто, надо вызвать Свойства в контекстном меню проводника на файле hal.dll в установленной Windows. Файл находится в папке %systemroot%\system32, и вот что я увидел:

В дистрибутиве Windows XP SP1 в папке I386, я взял файл HALMACPI.DL_. Это архив, в котором находится один файл, искомый мной halmacpi.dll. Я его извлёк WinRAR’ом, но можно обойтись и командной строкой:
expand HALMACPI.DL_ HALMACPI.DLL
Полученный файл надо поместить в папку %systemroot%\system32, что я и сделал. Хочу ещё раз обратить внимание, что если кто-то захочет повторить мои шаги, файл надо брать с именем, указанном в свойстве «Исходное имя файла» в свойствах hal.dll из установленной Windows XP.

Второе, что необходимо сделать, это получить пропатченную версию ядра Windows. Как известно, существует 4-ре версии ядра:

  • ntoskrnl.exe — однопроцессорное ядро Windows.
  • ntkrnlmp.exe— многопроцессорное ядро Windows.
  • ntkrnlpa.exe — однопроцессорное ядро Windows с более чем 3 ГБ оперативной памяти.
  • ntkrpamp.exe — многопроцессорное ядро Windows с более чем 3 ГБ оперативной памяти.

В той инструкции, которую я использовал, говорилось про ядро ntkrnlpa.exe и в моей инсталляции Windows стоит именно оно. Что делать, если попадётся другое ядро – я, честно говоря, не знаю.
Первым делом, я сделал копию ядра, назвал его krnl16.exe, в принципе название неважно. Далее HEX-редактором (я использовал DOS-Navigator, по старой памяти) надо найти последовательность
  • BB 00 00 10 00 33 FF 6A 07 8B F0 и заменить её на
  • BB 00 00 40 00 33 FF 6A 07 8B F0

Здесь 1000h = 4096 Мб, заменяем на 4000h = 16384 Мб. Т.е. поднимаем ограничение до 16Гб. В принципе, можно вписать и большее число.
Пропатченный файл также должен располагаться в system32.

Теперь осталось отредактировать boot.ini. Нужно скопировать имеющуюся строчку и дописать пару параметров. У меня была строка:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS.XP=«Microsoft Windows XP Professional RU» /FASTDETECT /USEPMTIMER /NOSERIALMICE /NOEXECUTE=OPTIN

Я добавил в неё /KERNEL=KRNL16.EXE /HAL=HALMACPI.DLL /PAE и в результате получилось:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS.XP=«Microsoft Windows XP Professional RU 16Gb» /FASTDETECT /USEPMTIMER /NOSERIALMICE /NOEXECUTE=OPTIN /KERNEL=KRNL16.EXE /HAL=HALMACPI.DLL /PAE
Теперь есть возможность загружаться как в стандартный Windows с присущим ему ограничением на память, так и в пропатченный, так как я не заменял ни одного системного файла, а только добавил два, которые включаются в работу с помощью вышеописанных параметров boot.ini

Ребут!
И… BSOD.
В принципе, такое может быть. Как следует из обзора истории проблемы на ixbt причиной, по которой Microsoft отключила адресацию верхней памяти, было существование кривых драйверов под различное оборудование, кривизна которых, впрочем, проявлялась только в полноценном режиме PAE.

Вполне вероятно, у меня сбоит один из них, за 6 лет в системе накопилось много всего, но какой? Пробую запуститься в безопасном режиме, и УРА! Вот они, мои гигабайты:

Но как определить сбойный модуль? Погуглив, я нашёл для этого методику, которая заключается в анализе малого дампа памяти, создаваемого Windows при BSOD. Анализ производится программой Blue Screen View, но вот все найденные мной способы включения режима записи дампа к успеху не привели: дамп не создавался, поэтому пришлось использовать научный метод тыка. Для начала я деинсталлировал то ненужное, что нашлось в системе. А именно драйвер защиты Guardant и драйвера ATI от старой видеокарты.
Ребут.
Результат превзошёл мои ожидания. Честно говоря, я не ожидал, что метод тыка даст такие результаты, и попробовал его просто, чтобы сделать хоть что-нибудь. Который из драйверов вызывал проблему, я точно не знаю, но думаю, что, скорее всего Guardant.

Но главное: цель достигнута, и теперь я подумываю о расширении памяти до 8-ми Гб.

  • Примечание 1. Поскольку в методике используется dll из первого сервиспака, есть вероятность, что в ней имеются какие-либо уязвимости, закрытые последующими сервиспаками. Я не изучал этот вопрос.
  • Примечание 2. Некоторые драйверы в пропатченой Windows XP могут вызывать BSOD. Впрочем, их крайне мало в природе.
  • Примечание 3. В первоисточнике ценных знаний сообщают, что на некоторых системах имеются проблемы с USB при использовании данной методики. У меня пока проблем нет. По крайней мере, клавиатуры, мышки и флешки работают в штатном режиме.

Максимальный объём оперативной памяти в Windows

Максимально поддерживаемый объём оперативной памяти для разных версий Windows. Сколько оперативной памяти поддерживает Windows XP, 7, 8.1 и 10?

Наверное многие помнят, или слышали про первые, на сегодняшний день уже древние компьютеры, такие как к примеру ZX Spectrum? Кто не помнит или забыл, то напомним, что оперативная память для этих динозавров измерялась в килобайтах. Да-да, именно в килобайтах, даже не в мегабайтах.

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

Сколько оперативной памяти поддерживает Windows XP, 7, 8.1 и 10?

Допустим вы захотели в свой компьютер установить дополнительные линейки оперативки. Предположим было у вас 4 Гб, воткнули еще 4 Гб. Включаем комп, а в свойствах все те-же 4Гб. (Да и то это округленный показатель, на деле максимум 3.750 Гб). Почему так? О ужас!!!

Почему остались те-же 4 Гб. оперативы? Давайте разберемся с этим вопросом, раз и навсегда.

Все операционные системы Windows с разрядностью x86 (32 bit) не важно какая версия, все они видят только до 4 Гб. памяти. Вы хоть истыкайте памятью весь компьютер, как ежика с иголками, он будет видеть только до 4 гигабайта. Связано это с внутренними архитектурными ограничениями.

Если вы установите на компьютере 64 битную операционную систему, то все ваши линейки памяти система и увидит.

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

Windows XP

  1. Windows XP x86 (32 bit): 4 гб.
  2. Windows XP x64 (64 bit): 128 Гб.

Windows 7

  1. Windows 7 Starter x86 (32 bit): 2 Гб.
  2. Windows 7 Home Basic x86 (32 bit): 4 Гб.
  3. Windows 7 Home Premium x86 (32 bit): 4 Гб.
  4. Windows 7 Professional x86 (32 bit): 4 Гб.
  5. Windows 7 Enterprise x86 (32 bit): 4 Гб.
  6. Windows 7 Ultimate x86 (32 bit): 4 Гб.
  7. Windows 7 Home Basic x64 (64 bit): 8 Гб.
  8. Windows 7 Home Premium x64 (64 bit): 16 Гб.
  9. Windows 7 Professional x64 (64 bit): 192 Гб.
  10. Windows 7 Enterprise x64 (64 bit): 192 Гб.
  11. Windows 7 Ultimate x64 (64 bit): 192 Гб.

Windows 8 / 8.1

  1. Windows 8 x86 (32 bit): 4 Гб.
  2. Windows 8 Professional x86 (32 bit): 4 Гб.
  3. Windows 8 Enterprise x86 (32 bit): 4 Гб.
  4. Windows 8 x64 (64 bit): 128 Гб.
  5. Windows 8 Professional x64 (64 bit): 512 Гб.
  6. Windows 8 Enterprise x64 (64 bit): 512 Гб.

Windows 10

  1. Windows 10 Home x86 (32 bit): 4 Гб.
  2. Windows 10 Home x64 (64 bit): 128 Гб.
  3. Windows 10 Pro x86 (32 bit): 4 Гб.
  4. Windows 10 Pro x64 (64 bit): 512 Гб.

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

Итог

Максимальное количество оперативной памяти, которые способны «увидеть» 32 разрядные версии Windows — это 4 Гб. Таким образом, если у вас больший объем RAM, следует установить 64-разрядную версию, чтобы воспользоваться этой памятью.

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

 Загрузка ...

Четыре гигабайта памяти - недостижимая цель?

Предупреждение. В данной статье рассматриваются 32-разрядные версии Windows. Во всех случаях, когда разрядность системы не упоминается, речь идет именно о них.

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

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

А вот рядовые пользователи лишь недавно получили возможность приобрести по приемлемой цене компьютер с четырьмя гигабайтами ОЗУ или расширить до этого предела память в уже имеющемся компьютере. Поэтому количество вопросов «Почему Windows не видит все мои четыре гигабайта» в последнее время увеличивается даже не в арифметической, а в геометрической прогрессии.

Ответ на этот вопрос начнем с небольшого экскурса в теорию организации ЭВМ и в историю развития семейства этих машин, совместимого с IBM PC.

Оперативная память ЭВМ практически всегда работала на несколько порядков быстрее, чем устройства внешней памяти или ввода-вывода. Поэтому для разработчиков было вполне логичным разделить операции обращения к ОП и к другим устройствам. К памяти шло непосредственное обращение, а операции ввода-вывода и работа с внешними устройствами выполнялись через специальные регистры - порты. С другой стороны, такое разделение усложняло систему команд, и в ряде моделей для обращения к устройствам была выделена область адресов памяти, в которой и размещались регистры устройств. По второй модели, в частности, была спроектирована знаменитая PDP-11: ее шестьдесят четыре килобайта адресного пространства были разделены на две части - 56 для оперативной памяти и восемь для устройств. Установка модуля ОЗУ полного объема (64 КБ) приводила к тому, что одна восьмая его часть просто не могла быть использована.

Компания Intel с самого начала, с модели 4004 использовала первый подход: одно адресное пространство для ОЗУ и ПЗУ, а другое, отдельное пространство портов ввода-вывода - для остальных устройств. Такое решение, конечно, давало возможность полностью использовать все адресное пространство под память. Но оно имело и отрицательные стороны. Обращение к портам обычно занимает больше времени, к тому же оно не совместимо с технологией прямого доступа в память, заметно увеличивающей скорость обмена данными и разгружающей центральный процессор.

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

Если взять классический ПК, выпущенный в 1981 году, то его адресное пространство было поделено на две части в соотношении пять к трем. Первая часть отводилась для ОЗУ, а вторая - для ПЗУ самого компьютера (программа самотестирования - POST и базовая система ввода-вывода - BIOS) и для ПЗУ и ОЗУ устройств. Уже самый первый видеоадаптер MDA имел свою оперативную память, находящуюся в общем адресном пространстве памяти.

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

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

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

Впрочем, как оказалось, на самом деле решение вовсе не было опрометчивым: для работы видеоускорителей жизненно важна возможность прямого доступа драйвера к видеопамяти. Ведь альтернативой является пословная запись данных в порт, и тогда можно забыть, к примеру, о современной графике в играх. Чтобы получить примерное представление, как бы это выглядело, можете сравнить поведение дисковой системы в режиме прямого доступа в память (UDMA) и в режиме программного ввода-вывода (включите режим PIO 1 в настройках контроллера дисков, только не забудьте потом вернуть исходные настройки).

Итак, в IBM PC/386 и во всех последующих совместимых компьютерах (а именно эта архитектура господствует сейчас на рынке персональных компьютеров) ОЗУ в адресном пространстве занимало нижние области, а остальное оборудование - от верхней границы 4 Гб вниз. Причем долгое время никто всерьез не беспокоился об этом четвертом гигабайте - единицы или десятки килобайт буферов сетевого адаптера и контроллера дисков и считанные мегабайты памяти видеоадаптера погоды не делали. К тому же для домашних и рабочих компьютеров такой объем памяти был просто нереален, а для установки большого количества памяти в мощные рабочие станции и серверы было предложено другое решение, о котором будет рассказано ниже.

Первый серьезный скачок в «отжирании» у ОЗУ адресного пространства сделала технология AGP. С появлением видеоадаптеров с аппаратными ускорителями вывода трехмерных изображений резко увеличилась потребность в объеме оперативной памяти такого адаптера. Технология AGP дала возможность в случае необходимости (нехватки собственной памяти) использовать для нужд видеоадаптера часть основной памяти компьютера.

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

Чтобы наглядно показать, как количество доступного объема ОЗУ связано с использованием физического адресного пространства устройствами, приведем две картинки - окно свойств компьютера и окно диспетчера устройств с распределением ресурсов памяти. Использовался видеоадаптер со 128 Мб ОЗУ.

Свойства системы

Диспетчер устройств

Операционная система использует 3,25 Гб ОЗУ из четырех установленных, и эта величина в точности соответствует нижней границе адресного пространства, используемого видеоадаптером (портом PCI-E): шестнадцатеричное значение d0000000. Обратите внимание, что отведены для видеоадаптера адреса с d000000 по dfffffff, то есть 256 Мб.

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

Для ограничения доступного для ОЗУ адресного пространства достаточно физического присутствия устройства на шине, и не имеет значения, используется оно или нет.

Впрочем, установка всех драйверов картину не меняет.

В 32-разрядной Windows Vista дело обстоит точно так же - системе доступно 3,25 Гб ОЗУ.

Свойства системы в Windows Vista

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

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

Диспетчер устройств

Как видим, ничего не изменилось. Размер используемого адресного пространства задается не самим адаптером, а оборудованием шины AGP или PCI-E.

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

Например, когда в компьютер автора были добавлены два ТВ-тюнера, они заняли адресное пространство выше, чем видеоадаптер, и уменьшения доступного системе ОЗУ не произошло.

Диспетчер устройств
Щелкните чтобы увеличить

С другой стороны, когда те же два тюнера стояли в старом компьютере автора с системной платой на базе i865, они занимали адресное пространство ниже видеоадаптера (и уменьшали бы доступный объем ОЗУ, если бы памяти на том компьютере было больше 3 Гб).

Например, установка четырех видеоадаптеров может заметно ограничить размер используемого ОЗУ (показанная таблица распределения ресурсов была приведена на форуме 3Dnews участником HarfulL).

Диспетчер устройств
Щелкните чтобы увеличить

Как видно, видеоадаптеры заняли четыре области адресного пространства по 256 Мб каждая, начинающиеся на границах 2,5, 2,75, 3,0 и 3,25 Гб. (В данном примере был установлен только один гигабайт ОЗУ).

У любопытного читателя уже наготове вопросы: а каким образом адреса распределяются между устройствами? Можно ли каким-нибудь способом «сдвинуть» все адреса в одну сплошную кучу и освободить для ОЗУ дополнительно десятки или даже сотни мегабайт адресного пространства?

Адреса (а также порты ввода-вывода, а на шине ISA - еще и прерывания) определяются дешифратором устройства. Настройки этого дешифратора обычно можно менять в некоторых пределах, заданных изготовителем. До середины девяностых годов такая настройка выполнялась установкой или удалением специальных перемычек на устройстве. И задача конфигурирования компьютера с несколькими дополнительными устройствами была не слишком простым делом. Поэтому была предложена технология plug-and-play. В то время она была у всех на слуху, а сейчас стала совершенно обыденным явлением. Суть этой технологии в том, что используемые устройством адреса памяти, порты ввода-вывода и линии прерываний могут конфигурироваться программно. Это делает либо BIOS на этапе подготовки компьютера к загрузке, либо операционная система в ходе своей загрузки. Программа конфигурирования опрашивает устройства, определяет, какие ресурсы могут использоваться каждым из них, а затем распределяет эти ресурсы между устройствами.

Границы конфигурирования каждого устройства задает его изготовитель. Причем для упрощения дешифраторов адресов ступени конфигурирования обычно кратны размеру ресурсов, используемых устройством. Например, если некая «железка» имеет ОЗУ размером 32 Кб, то и начальный адрес, как правило, можно установить только кратным этому размеру или даже большей величине.

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

Вывод 1. Хотя 32-разрядные версии Windows XP и Windows Vista могут использовать четыре гигабайта ОЗУ, из-за ограничений, накладываемых архитектурой используемого оборудования, эта величина обычно оказывается в пределах 3-3,5 Гб.

Вывод 2. Добавление устройств, использующих шины PCI или PCI-E, может уменьшить количество доступного системе ОЗУ. В таких случаях можно рекомендовать рассмотреть замену внутренних модулей на устройства с аналогичной функциональностью, подключаемые к интерфейсу USB.

Возможно, читатель уже обратил внимание, что про серверные варианты ОС пока не было сказано ни слова. И этому есть свои причины - в серверных версиях дело обстоит несколько по-другому. Например, на том же самом компьютере с тем же самым оборудованием 32-разрядный Windows Server 2003 Standard Edition «видит» практически все четыре гигабайта, хотя устройства занимают в четвертом гигабайте те же самые адреса.

Свойства системы

Диспетчер устройств

Как такое может быть? Вернемся в середину девяностых годов. В то время для серверов верхнего уровня (разговор пойдет только о серверах с архитектурой IBM PC) стала актуальной задача увеличения объема памяти сверх четырех гигабайт. Никакой Америки для этого открывать не понадобилось - «всё уже украдено до нас». Технология расширения объема памяти была неоднократно использована в самых разных ЭВМ.

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

Новую (для платформы PC/386) технологию назвали расширением физических адресов (PAE - Physical Address Extention) и воплотили ее в процессорах Pentium Pro. Компьютеры на этих и всех последующих процессорах могут (при наличии соответствующей системной платы, конечно) использовать не 32-х, а 36-разрядную шину адреса, что дает возможность установить до 64 Гб ОЗУ.

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

Чтобы дать возможность программам использовать большее количество памяти, в Windows была добавлена еще одна технология - AWE (Address Windowing Extension – оконное расширение адресов). В адресном пространстве программы выделялось окно, в которое отображался участок выделенной программе памяти. Например, программа запрашивает и получает для своих нужд 16 Гб, но может обращаться к ним только через окно размером один гигабайт. Чтобы получить доступ к нужному участку памяти, следует переместить окно в требуемое положение, при этом остальные 15 гигабайт оказываются недоступными. Если нужно обратиться к другому участку памяти - еще раз перемещаем окно и так далее. Программу при этом приходится усложнять, причем на обычных компьютерах, не серверах, такое усложнение оказывается практически бесполезным. Поэтому неудивительно, что поддержку AWE можно увидеть только в серьезных серверных приложениях, количество которых, говоря фигурально, позволяет пересчитать их по пальцам.

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

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

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

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

Выполнение первого условия можно проверить по документации к системной плате. Правда, далеко не всегда в описании платы можно найти «волшебное» слово PAE. Чаще используется (в описании платы или настройках BIOS) выражение memory remap или близкие к нему.

Выполнение второго условия в последнее время часто обеспечивается автоматически. Если процессор поддерживает аппаратную защиту от исполнения данных (Data Execution Prevention - DEP), то Windows XP со вторым пакетом исправлений, Windows Server 2003 с первым и более поздними пакетами исправлений и, конечно, Windows Vista по умолчанию включают эту защиту, а вместе с ней и PAE. К таким процессорам относятся все семейство 64-разрядных процессоров АМД, все процессоры Intel с поддержкой технологии EM64T и некоторые чисто 32-разрядные процессоры семейства Pentium 4.

Если процессор более старый либо если используются более старые версии Windows, можно включить режим расширения физических адресов принудительно. Для этого надо добавить в строку запуска данной ОС в файле boot. ini параметр /PAE.

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

Внимательный читатель, конечно же, уже дергает меня за рукав: но ведь в окне свойств XP SP2 тоже есть такая надпись. Значит, эта система тоже работает в режиме расширения физических адресов? Но почему же тогда ей доступно лишь три с небольшим гигабайта?

Да, Windows XP SP2 в данном случае по умолчанию включила режим PAE для обеспечения поддержки DEP. Но, в отличие от Windows Server 2003, в Windows XP расширение физических адресов реализовано лишь частично. Эта система не поддерживает 36-разрядную адресацию памяти, Даже с включенным PAE она имеет то же самое 32-разрядное адресное пространство, что и без этого режима.

Так что даже принудительное включение РАЕ не добавит в распоряжение системы ни одного байта.

Впрочем, если установить Windows XP с первым пакетом исправлений или исходную версию вообще без пакетов (что автор по некоторым причинам категорически не рекомендует делать на современных компьютерах), то расширение физических адресов даст системе возможность увидеть все четыре гигабайта. Но стоит только добавить SP2, как количество памяти сразу уменьшится.

Причина в том, что в 32-разрядных Windows XP SP2 (а также будущем SP3) и Windows Vista расширение физических адресов есть, но в то же время его как бы и нету. Причина проста и банальна – обеспечение совместимости с драйверами, написанными без учета возможного включения РАЕ. Остановимся на этом чуть подробнее.

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

Разработчики же драйверов, предназначенных для обычных рабочих и, тем более, домашних компьютеров могли и упростить себе работу - зачем предусматривать алгоритм работы с включенным РАЕ, если он не используется? Ведь без него и программировать меньше надо, и работы по тестированию меньше делать. Но если такой драйвер оказывался в системе с включенным расширением физических адресов, то с достаточно высокой вероятностью он мог «порушить» управление памятью системы, что привело бы в лучшем случае к неработоспособности устройства, а в худшем – повреждению данных или сбою в работе системы (синему экрану).

А ведь для повышения безопасности системы надо было включать в процессоре защиту от исполнения данных и, как следствие, режим расширения адресов. Поэтому для совместимости со всеми ранее написанными для Windows XP драйверами было принято компромиссное решение - чтобы режим РАЕ включался, добавлял третий этап в процесс транслирования адреса, но ничего на этом третьем этапе не изменял. Фактически это означает, что расширения адресного пространства не происходит и система имеет те же четыре гигабайта физических адресов. А часть этих адресов, как мы помним, заняты устройствами.

Вывод 3. Windows XP SP2 и Windows Vista увидеть все четыре гигабайта ОЗУ (если они установлены) просто не в состоянии, и изменить это нельзя. Тем, кто уже потратил свои кровные денежки на четыре гигабайтных модуля остается либо смириться, что часть их окажется неиспользованной, либо переходить на 64-разрядные версии ОС.

Замечание. Время от времени можно увидеть совет по увеличению памяти, доступной системе: добавить в файл boot. ini параметр /3GB. На самом деле этот совет, как говорится, не из той оперы. Этот параметр обеспечивает перераспределение виртуального адресного пространства приложений между ними и системой, но никак не влияет на работу с физической памятью.

Так стоит ли покупать для компьютера с 32-разрядной Windows четыре гигабайта памяти, если это не сервер? В общем случае ответ зависит от того, планируете ли вы вскоре переходить на 64-разрядную версию (под «вскоре» в данном случае понимается время до замены компьютера на новый или до достаточно серьезной его модернизации). Если переход не планируется, то часть из этих четырех гигабайт окажется неиспользуемой. Сколько именно не будет использоваться, зависит от конфигурации оборудования, но обычно эта величина составляет 0,75–1 Гб.

Поскольку в современные компьютеры модули памяти обычно вставляются парами, то альтернативой четырем гигабайтам являются конфигурации 2х1 Гб или 2х1 Гб + 2х512 Мб, причем первый вариант оставляет (как правило) возможность расширения, а второй дает больше памяти.

Но ведь, как известно, адресное пространство (виртуальное), выделяемое процессу на его нужды, составляет 2 Гб. То есть подавляющее большинство программ не смогут использовать больше двух Гб ОЗУ. Так есть ли смысл ставить третий гигабайт? Вполне может быть, что есть. Все зависит от того, сколько памяти требуется запускаемым одновременно задачам. Даже если «тяжелая» задача больше двух гигабайт получить и не сможет, она, тем не менее, сможет использовать все свои два гигабайта, если система и другие запущенные задачи возьмут свою долю памяти из третьего гигабайта. Да и дисковый кэш не будет конкурировать за память с этой «тяжелой» задачей.

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

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

Часть 2: Еще раз про Windows и четыре гигабайта.

Максимально поддерживаемый объём оперативной памяти для разных версий Windows

Речь в этой статье пойдет об оперативной памяти и Windows. А именно о том, сколько оперативной памяти поддерживает и может использовать Microsoft Windows XP, 7, 8.1 и 10. Допустим, у вас медленно работает 1С или тормозят игры и вы решили выполнить небольшой апгрейд. Одним из пунктов стало увеличение объема оперативной памяти.

Как вариант можно предположить, что у Вас уже имеется 4 Гб, и вы решили добавить еще 4 Гб.  Разбираете компьютер, сдуваете вековую пыль, вставляете новенькую свежую память, включаете компьютер, заходите в свойства системы, а там все те-же 4Гб Почему так? Обманул продавец? Не исправная память? Снова виновны Китайцы? Давайте постараемся разобраться с этой проблемой.


? Все операционные системы Windows с разрядностью x86 (32 bit) не важно какая версия, все они видят только до 4 Гб. памяти. Это связано с внутренними архитектурными ограничениями. Стоит отметить, что большинство так называемых "патчей" для использования всего объема позволяют лишь увидеть установленный объем памяти, но далеко не все позволяют его использовать при этом сохраняя стабильность системы! 


И сейчас у Вас наверняка возник резонный вопрос, а сколько же оперативной памяти  видит каждая из версий ОС Windwos? Пришло время ответить на этот простой вопрос...

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

Windows XP

  • Windows XP x86 (32 bit): 4 гб
  • Windows XP x64 (64 bit): 128 Гб

Windows 7

  • Windows 7 Starter x86 (32 bit): 2 Гб
  • Windows 7 Home Basic x86 (32 bit): 4 Гб
  • Windows 7 Home Premium x86 (32 bit): 4 Гб
  • Windows 7 Professional x86 (32 bit): 4 Гб
  • Windows 7 Enterprise x86 (32 bit): 4 Гб
  • Windows 7 Ultimate x86 (32 bit): 4 Гб
  • Windows 7 Home Basic x64 (64 bit): 8 Гб
  • Windows 7 Home Premium x64 (64 bit): 16 Гб
  • Windows 7 Professional x64 (64 bit): 192 Гб
  • Windows 7 Enterprise x64 (64 bit): 192 Гб
  • Windows 7 Ultimate x64 (64 bit): 192 Гб

Windows 8 / 8. 1

  • Windows 8 x86 (32 bit): 4 Гб
  • Windows 8 Professional x86 (32 bit): 4 Гб
  • Windows 8 Enterprise x86 (32 bit): 4 Гб
  • Windows 8 x64 (64 bit): 128 Гб
  • Windows 8 Professional x64 (64 bit): 512 Гб
  • Windows 8 Enterprise x64 (64 bit): 512 Гб

Windows 10

  • Windows 10 Home x86 (32 bit): 4 Гб
  • Windows 10 Home x64 (64 bit): 128 Гб
  • Windows 10 Pro x86 (32 bit): 4 Гб
  • Windows 10 Pro x64 (64 bit): 512 Гб

Как Вы можете заметить, 64-битные версии Windows поддерживает достаточно большой объем оперативной памяти, а вот 32-битный версии к сожалению только 4Гб. Поэтому, перед выбором ОС или покупкой оперативной памяти нужно быть внимательным.

Время подвести итоги

Если Вы решили превратить Ваш компьютер в сервер удаленных рабочих столов или просто выполнить его обновление, то в первую очередь обратите внимание на версию вашей операционной системы. 64= 18446744073709551616.

Почему тогда объем доступной памяти меньше 4Гб (3-3,5Гб)
Это происходит из-за того, что существенная часть адресного пространства используется в нуждах установленных периферийных устройств (основной потребитель – видеокарты), при этом сама оперативная память никоим образом ими не используется. Конкретная цифра доступного адресного пространства зависит от чипсета, особенностей BIOS и конфигурации конкретного ПК (например, эта величина зависит от интерфейса и количества видеокарт, но никоим образом не зависит от того, каким количеством модулей и какого объёма у вас получен такой общий объём памяти.)

Радикальное решение данной проблемы существует только одно – замена ОС на 64-битную и включение в BIOS материнской платы опции «Memory Remap Feature» (или «H/W Mem Remap», обычно находится в разделе «Chipset Settings» или «NorthBridge Settings», некоторые современные платы включают эту функцию автоматически). Только при соблюдении обоих этих условий вы сделаете доступным для ОС весь объём установленной памяти. Если вы включите Memory Remap с 32-битной ОС, то доступный ей объём оперативной памяти может быть ограничен до 2Гб, поэтому такого делать не надо.

*Memory Remapping Feature - Если в системе установлено 4 и более Гбайта оперативной памяти, включение этой опции (Enabled) переносит блоки адресов, используемые картами расширения, в адресное пространство за 4-м Гбайтом. Для полноценной поддержки такого объема необходимо использование 64-х разрядных процессоров и 64-х разрядных версий операционных систем (либо серверных версий 32-х разрядных операционных систем, допускающих расширение физических адресов — PAE). При меньшем объеме оперативной памяти обязательно выключите эту опцию (Disabled), иначе возможны проблемы в работе карт расширения, видеокарты (например, зависание или резкое падение производительности в трехмерных играх).
Цитата:Появление PCI-E принципиальных изменений не принесло - изменился физический интерфейс, а организация использования видеопамяти осталась той же.

Чтобы наглядно показать, как количество доступного объема ОЗУ связано с использованием физического адресного пространства устройствами, приведем две картинки - окно свойств компьютера и окно диспетчера устройств с распределением ресурсов памяти. Использовался видеоадаптер со 128 Мб ОЗУ.



Операционная система использует 3,25 Гб ОЗУ из четырех установленных, и эта величина в точности соответствует нижней границе адресного пространства, используемого видеоадаптером (портом PCI-E): шестнадцатеричное значение d0000000. Обратите внимание, что отведены для видеоадаптера адреса с d000000 по dfffffff, то есть 256 Мб. Проверим, как влияет на доступный объем ОЗУ размер памяти видеоадаптера. Заменим плату со 128 Мб на такую же модель, но с 512 Мб. Как видим, ничего не изменилось. Размер используемого адресного пространства задается не самим адаптером, а оборудованием шины AGP или PCI-E.в IBM PC/386 и во всех последующих совместимых компьютерах ОЗУ в адресном пространстве занимало нижние области, а остальное оборудование - от верхней границы 4 Гб вниз. Причем долгое время никто всерьез не беспокоился об этом четвертом гигабайте - единицы или десятки килобайт буферов сетевого адаптера и контроллера дисков и считанные мегабайты памяти видеоадаптера погоды не делали.

Первый серьезный скачок в «отжирании» у ОЗУ адресного пространства сделала технология AGP. С появлением видеоадаптеров с аппаратными ускорителями вывода трехмерных изображений резко увеличилась потребность в объеме оперативной памяти такого адаптера. Технология AGP дала возможность в случае необходимости (нехватки собственной памяти) использовать для нужд видеоадаптера часть основной памяти компьютера.

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

Для ограничения доступного для ОЗУ адресного пространства достаточно физического присутствия устройства на шине, и не имеет значения, используется оно или нет.

Вывод: Хотя 32-разрядные версии Windows XP/Windows Vista/Windows 7 могут использовать четыре гигабайта ОЗУ, из-за ограничений, накладываемых архитектурой используемого оборудования, эта величина обычно оказывается в пределах 3-3,5 Гб.

Почему 32-битные серверные ОС видят более 4Гб.
В серверных ОС задействован режим расширенной физической адресации (Physical Address Extension (PAE)).
В клиентских версиях Windows, начиная с WinXP Service Pack 2 данный режим реализован лишь частично, дабы избежать проблем с софтом и драйверами, которые не поддерживают PAE или 64-битную адресацию.
Цитата:Windows XP SP2 в данном случае по умолчанию включила режим PAE для обеспечения поддержки DEP. Но, в отличие от Windows Server 2003, в Windows XP расширение физических адресов реализовано лишь частично. Эта система не поддерживает 36-разрядную адресацию памяти, Даже с включенным PAE она имеет то же самое 32-разрядное адресное пространство, что и без этого режима.

Вывод: Windows XP/Windows Vista/Windows 7 увидеть все четыре гигабайта ОЗУ (если они установлены) просто не в состоянии, и изменить это нельзя. Тем, кто уже потратил свои кровные денежки остается либо смириться, что часть памяти окажется неиспользованной, либо переходить на 64-разрядные версии ОС.

Вам нужно больше ОЗУ для запуска 32-битных программ в 64-битной Windows?

Большинство компьютеров сегодня поставляются с 64-разрядной версией Windows и часто с минимальным объемом оперативной памяти. Это ставит под сомнение, насколько хорошо работают эти системы. Это особенно верно, когда пользователи хотят запускать свое устаревшее 32-разрядное программное обеспечение на этих новых компьютерах.

Возникает интересный вопрос. Вам нужно больше или меньше оперативной памяти для запуска 32-битного приложения в 64-битной версии Windows? На этой неделе об этом узнает Брюс Эппер.

Читатель спрашивает:

Верно ли, что запуск 32-битных приложений в 64-битной системе Windows потребляет 1.В 5 раз больше памяти по сравнению с 32-битным приложением под 32-битной операционной системой Windows?

Ответ Брюса:

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

64-разрядная операционная система Windows не может запустить 32-разрядную программу Windows без дополнительной помощи.Они слишком разные: от указателей и типов данных до того, как системные вызовы (как программы используют ресурсы базовой операционной системы). Вам нужен способ сделать их совместимыми.

Понимание WoW64

Windows использует подсистему WoW64 (Windows32 в Windows64) для компенсации различий. Он эффективно работает как 32-разрядный мини-эмулятор Windows в системах x64 и как полноценный эмулятор в системах Itanium (IA64).

Для систем IA64 требуется полноценный эмулятор из-за различий в инструкциях процессора и размерах страниц памяти (4K в x86 и x64, 8K в IA64).Поскольку процессоры x64 имеют все инструкции процессоров x86 и используют тот же размер страницы памяти, для них нет необходимости в полном эмуляторе.

В обоих случаях WoW64 обеспечивает интерфейс между 64-битным ядром Windows и 32-битной версией ntdll.dll (он содержит список основных функций ядра Windows), перехватывая вызовы ядра и изменяя их, чтобы они могли обрабатываться собственными 64-разрядными функциями, предоставляемыми ядром Windows.

Для этого в системах x64 / IA64 используются 3 файла DLL: wow64cpu.dll, wow64win.dll и wow64.dll. Их функции заключаются в том, чтобы абстрагироваться от характеристик процессора и предоставлять переходы (, мы вернемся к ним позже, ) в win32k.sys, который обеспечивает функциональность "окна", и ntoskrnl.exe, который содержит исполнительную программу, ядро, диспетчер памяти, планировщик процессов ( (не путать с Планировщиком задач, доступным из Панели управления) и другими основными элементами операционной системы.

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

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

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

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

Возвращаясь к системам Itanium, следует отметить еще несколько важных отличий.В системах IA64 используются два дополнительных файла. IA32exec.bin - это программный эмулятор x86, а Wowia32x.dll обеспечивает интерфейс между WoW64 и программным эмулятором.

32-разрядный процесс загрузит эти файлы, а также 64-разрядную версию ntdll.dll. Это единственные 64-битные двоичные файлы, которые могут быть загружены в 32-битный процесс до Windows 7. Windows 7 и более поздние версии также имеют другую DLL, apisetschema.dll, которая будет загружена во все процессы.

Когда 32-битный процесс запущен, он загружает Wow64.dll, которая, в свою очередь, загружает 32-разрядную версию ntdll.dll и все необходимые 32-разрядные библиотеки DLL из % systemroot% \ SysWOW64 . Большинство этих файлов идентичны двоичным файлам в 32-битной системе, хотя некоторые из них были переписаны, чтобы вести себя иначе под WOW64.

Глядя на список загруженных DLL, мы видим, что в процессе под Win64 загружены 9 DLL, которых нет в системе Win32.

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

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

Наша испытательная установка

Чтобы увидеть, что происходит, я установил две виртуальные машины под управлением Windows 7 Ultimate с 2 ГБ оперативной памяти, выделенной для каждой.Одна из них - 32-битная версия, другая - 64-битная. Оба прошли один и тот же процесс установки и исправления.

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

На обе машины также была установлена ​​копия Sysinternals Process Explorer.Это инструмент, который я использовал для сбора информации об использовании памяти. Настройка столбца по умолчанию была изменена, чтобы я мог посмотреть на использование рабочего набора и WS Private.

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

Рассматриваемые нами процессы тоже не стоят особняком.Различные программы LibreOffice запускают другой процесс, soffice.exe, который будет выполнять еще один процесс, soffice.bin. Нам нужно посмотреть на итоги всех трех процессов, чтобы увидеть эффективное использование памяти каждой программой.

Для первоначального теста я просто открыл Writer, Calc и Impress по отдельности, чтобы посмотреть, сколько памяти они потребляют без загрузки каких-либо данных, и экспортировал данные из Process Explorer.С помощью Calc и Impress я открыл файл .xls размером 3,7 МБ и файл .pptx размером 3,9 МБ соответственно и записал новое использование памяти. Результаты можно увидеть в таблице ниже. Все данные в КБ.

С Impress произошел большой сюрприз.Без документа он использовал на 4,1% больше ОЗУ в 64-битной системе и на 9,9% меньше с загруженным документом. Я откопал несколько других презентаций и получил аналогичные результаты со всеми из них. В 64-битной системе использовалось меньше оперативной памяти, чем в 32-битной.

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

Но нужно ли вам обновлять оперативную память? Возможно нет.Разница на самом деле не такая уж и большая. Это уж точно не в 1,5 раза больше.

7 подземных торрент-сайтов для получения контента без цензуры

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

Об авторе Брюс Эппер (Опубликовано 13 статей)

Брюс играет с электроникой с 70-х, компьютерами с начала 80-х и точно отвечает на вопросы о технологиях, которые он не использовал и не видел все время.Он также раздражает себя, пытаясь играть на гитаре.

Ещё от Bruce Epper
Подпишитесь на нашу рассылку новостей

Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!

Еще один шаг…!

Подтвердите свой адрес электронной почты в только что отправленном вам электронном письме.

Можно ли запускать 64-битные приложения в 32-битной ОС?

В настоящее время очень распространены 64-битные операционные системы. Но 32-битные ОС все еще присутствуют на рынке в довольно очевидных количествах. Многие современные программные инструменты разработаны для работы только в 64-битном режиме, поскольку обслуживание как 32-битных, так и 64-битных операционных систем требует дополнительных затрат.

Пользователям 32-битной ОС иногда необходимо использовать программное обеспечение, предназначенное только для 64-битной ОС.Так что же делать пользователю, если он / она не готов прекратить использование 32-битной ОС в качестве основной рабочей системы?

В разных операционных системах есть особенности, связанные с запуском 64-битных приложений в 32-битной среде. Во-первых, при запуске 64-битных приложений в 32-битной среде вы теряете преимущество использования большего объема оперативной памяти. Кроме того, для поддержки 64-битных приложений ваш процессор должен иметь 64-битную архитектуру. Давайте посмотрим на некоторые из самых популярных ОС.

В Mac OS X ядро ​​гибридное.Он позволяет запускать любое приложение независимо от его скорости передачи данных. Единственное отличие гибридного ядра от полноценного 64-битного - это невозможность использовать в системе более 32 ГБ ОЗУ. Так что на данный момент нет абсолютно никакой разницы между загрузкой в ​​32-битном и 64-битном режимах. Но в будущем эта разница станет более заметной в связи с увеличением использования оперативной памяти и дальнейшим развитием технологий.

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

Виртуализация

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

Вот несколько популярных решений:

Oracle VirtualBox - универсальная бесплатная виртуальная машина. VirtualBox - очень простой, мощный и бесплатный инструмент для виртуализации, разработанный при поддержке известной корпорации Oracle.Это бесплатное программное обеспечение с открытым исходным кодом. VirtualBox позволяет установить в качестве «гостевой» практически любую текущую операционную систему, будь то Windows, Mac OS или любой из многочисленных представителей семейства Linux.

VMware Workstation - для серьезных задач. VMware Workstation - это мощная, платная и самая надежная программа для виртуализации, которая поддерживает ОС Windows и Linux. Но эту программу нельзя использовать для виртуализации в Mac OS.

QEMU - это бесплатная программа с открытым исходным кодом, которая эмулирует различные аппаратные платформы.

Аппаратная виртуализация

Существуют определенные требования к 64-битной гостевой виртуальной машине для работы в 32-битной среде: процессор должен иметь 64-битную архитектуру и поддерживать технологии аппаратной виртуализации, такие как Intel VT-x и AMD-V. Иногда их необходимо включить вручную в BIOS вашей системы.

Облачные вычисления

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

Развитие технологий облачных вычислений идет полным ходом. Они позволяют развертывать любую ОС на удаленных серверах и запускать оттуда приложения. При этом никаких ограничений на вашу 32-битную систему накладывать не будет, так как все вычисления производятся на удаленных машинах. Одним из таких примеров является Microsoft Azure, которую можно использовать для развертывания большого количества операционных систем и запуска различных приложений, в том числе высокопроизводительных.

Часто геймеры сталкиваются с проблемой запуска 64-битных приложений на устаревших 32-битных машинах.Для этих задач также существуют специализированные облачные решения. Например, NVIDIA GRID. GRID запускает 3D-игры на облачных серверах, мгновенно кодирует каждый кадр и передает результаты на любое устройство с проводным или беспроводным высокоскоростным подключением к Интернету.

Заключение

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

AIR Music Technology - виртуальные инструменты, программное обеспечение и эффекты немецкой разработки

  • Продукты
    • Барабан Synth 500
    • Boom - бесплатный набор иконок
    • Пылесос - ОТКРОЙТЕ КЛАССИКУ заново
    • Loom II - эволюция легенды
    • Комплект расширения 3 для приборов AIR
    • AIR Instrument Expansion Pack 3 Выбрать
    • Creative FX Collection Plus
    • Инструменты Ethereal
    • Бесплотные голоса
    • DB-33
    • Мини Гранд
    • The Riser
    • Гибрид 3
    • Ткацкий станок Classic
    • Вакуум Pro
    • Забастовка 2
    • Строение 2
    • Трансфузор 2
    • Бархат 2
    • Зажигать
    • Xpand! 2
    • AIR Creative Collection
    • Расширения
    • Звуковые пакеты
    • Учебные курсы
    • Зарегистрируйте продукт
  • Компания
    • Около
    • Карьера
    • Конфиденциальность
    • Дилеры
    • Свяжитесь с нами
  • Новости
  • Магазин
  • Служба поддержки
    • Моя учетная запись
    • База знаний
    • Связаться со службой поддержки
  • ТОВАРОВ ▼
    • НАЗАД ▲
    • Барабанный синтезатор 500
    • Boom - бесплатный набор иконок
    • Пылесос - ОТКРОЙТЕ КЛАССИКУ заново
    • Loom II - эволюция легенды

Получите больше ЦП или памяти для вашего инстанса EC2 Linux

Моей системе требуется больше ЦП или памяти, чем доступно в моем текущем экземпляре Amazon Elastic Compute Cloud (Amazon EC2).Какие шаги нужно предпринять перед изменением размера экземпляра, чтобы убедиться, что переход прошел успешно?

Изменение типа инстанса вашего инстанса EC2 Linux позволяет вам изменить следующее:

  • Количество ядер процессора
  • Количество RAM
  • Оптимизация Amazon Elastic Block Store (Amazon EBS)
  • Расширенные сети
  • GPU ядер

Перед изменением типов экземпляров или семейств экземпляров проверьте, совместимы ли текущий тип экземпляра и новый тип экземпляра.

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

После проверки совместимости вы можете изменить размер инстанса с поддержкой Amazon EBS.

Остановите свой экземпляр

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

  • Если ваш экземпляр поддерживается хранилищем экземпляров или имеет тома хранилища экземпляров, содержащие данные, данные будут потеряны при остановке экземпляра. Если вы переходите от одного экземпляра с резервным хранилищем к другому экземпляру с хранилищем, вы должны перенести свой экземпляр с хранилищем. Дополнительные сведения см. В разделе «Миграция экземпляра с сохранением в хранилище».
  • Если ваш инстанс входит в группу Amazon EC2 Auto Scaling, остановка инстанса может привести к его остановке.Если вы запустили инстанс с Amazon EMR, AWS CloudFormation или AWS Elastic Beanstalk, ваш инстанс может входить в группу AWS Auto Scaling. Прекращение работы экземпляра в этом сценарии зависит от настроек защиты от масштабирования экземпляра для вашей группы Auto Scaling. Если ваш экземпляр является частью группы автоматического масштабирования, временно удалите экземпляр из группы автоматического масштабирования, прежде чем начинать шаги разрешения.
  • Если вы не используете эластичный IP-адрес, остановка и запуск экземпляра изменяет общедоступный IP-адрес вашего экземпляра.При маршрутизации внешнего трафика на ваш экземпляр рекомендуется использовать эластичный IP-адрес вместо общедоступного IP-адреса. Если вы используете Route 53, возможно, вам придется обновить записи DNS Route 53 при изменении общедоступного IP-адреса.


Резервное копирование данных

Рекомендуется поддерживать резервные копии ваших экземпляров и данных. Перед изменением инфраструктуры рассмотрите возможность создания AMI или моментальных снимков томов EBS.

Расширенные сети

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

Типы инстансов на основе нитро

Перед изменением вашего экземпляра на тип экземпляра на основе Nitro убедитесь, что на вашем экземпляре установлены модули NVMe и ENA и что все блочные устройства, перечисленные в / etc / fstab , совместимы с именами блочных устройств NVMe ( / dev / nvme1 , / dev / nvme2 и так далее). Чтобы автоматизировать эти проверки, запустите сценарий NitroInstanceChecks.Для получения дополнительной информации см. Почему мой экземпляр Linux не загружается после того, как я изменил его тип на тип экземпляра на основе Nitro, и следуйте инструкциям в разделе Выполните сценарий NitroInstanceChecks.

После запуска сценария и внесения необходимых обновлений убедитесь, что для записи DRIVERS в файле /etc/udev/rules.d/70-persistent-net.rules установлено значение ? или ENA .

Ваш комментарий будет первым

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *