Еще раз про Windows и четыре гигабайта. Прошло несколько лет с тех пор, как была написана статья «Четыре гигабайта памяти — недостижимая цель?», а вопросов, почему Windows не видит все четыре гигабайта, меньше не стало. К числу вопрошающих добавились и обладатели 6. И стало ясно, что пора писать новую статью на эту же тему.
Как и раньше, речь пойдет только об операционных системах Windows, причем в основном клиентских, то есть Windows XP, Windows Vista, Windows 7 и грядущей Windows 8. В некоторых случаях намеренно будут использоваться несколько упрощенные описания тех или иных аспектов.
Поэтому если вы используете, к примеру, Windows XP 32 bit, то даже при наличии 16 Гб оперативной памяти система будет поддерживать не более 4. Сколько оперативной памяти может использовать 32 битная Таким образом, общий объем памяти, доступной в 32 – битной ОС Windows обычно. Зато в 7 powershell 4, в 2008 только 3 и по мелочам. Сколько оперативной памяти может использовать 32 битная. Таким образом, общий объем памяти, доступной в 32 – битной ОС Windows обычно . Зато в 7 powershell 4, в 2008 только 3 и по мелочам. Видит столько, сколько поставишь, а максимально использует всего 3 гига. Поэтому если вы используете, к примеру, Windows XP 32 bit, то даже при наличии 16 Гб оперативной памяти система будет поддерживать не более 4 . Вот только воспользоваться всем объемом оперативной памяти на 32 bit Меня заинтересовал данный способ и я решил попробовать на своей Windows 7 32bit.
Это даст возможность сосредоточиться на предмете данной статьи, не вдаваясь в излишние подробности, в частности, внутреннего устройства процессоров и наборов микросхем (чипсетов) для системных плат. Рекомендуем предварительно прочитать указанную выше статью, так как не всё, сказанное в ней, будет повторено здесь. Ту часть ОЗУ, адреса которой совпадают с адресами устройств, необходимо отключать, чтобы избежать конфликта между ОЗУ и памятью соответствующего устройства — например, видеоадаптера. Рис. Если оперативная память в адресах, используемых устройствами, не отключена, возникает конфликт. Оперативная память заполняет адреса, начиная с нулевого, а устройствам, как правило, отводятся адреса в четвертом гигабайте. Пока размер ОЗУ не превышает двух- трех гигабайт, конфликты не возникают.
Вот только воспользоваться всем объемом оперативной памяти на 32 bit. Меня заинтересовал данный способ и я решил попробовать на своей Windows 7 32bit. В итоге Windows 7 (32-bit) сможете видеть столько же оперативной памяти, сколько и в варианте 64-bit. При этом пользователь не потеряет доступ к исходной операционной системе, которая не была модифицирована. Патч Ready4GB позволяет видеть 32х-битной ОС виндовс 7 более 4х ГБ. 32 разрядные системы видят оперативную память до 3 Гб. Сколько ОЗУ поддерживает каждый слот и сколько в нём слотов ноутбук .
Как только верхняя граница установленной памяти входит в ту зону, где находятся адреса устройств, возникает проблема: по одному и тому же адресу находятся и ячейка оперативной памяти, и ячейка памяти устройства (того же видеоадаптера). В этом случае запись данных в память приведет к искажению изображения на мониторе и наоборот: изменение изображения — к искажению содержания памяти, то есть программного кода или данных (скажем, текста в документе). Чтобы конфликты не возникали, операционной системе приходится отказываться от использования той части ОЗУ, которая перекрывается с адресами устройств. Эта технология первоначально предназначалась для серверов, однако позже появилась и в клиентской Windows XP. Некоторые особенности реализации этой технологии в современных контроллерах памяти дают возможность не только использовать PAE по ее прямому назначению, но и «перекидывать» память в другие адреса. Таким образом, часть памяти, которая ради предотвращения конфликтов не используется, может быть перемещена в старшие адреса, например в пятый гигабайт — и снова стать доступной системе. В обсуждении первой статьи было высказано замечание, что некорректно отождествлять наличие в контроллере памяти системной платы поддержки PAE — и способность платы переадресовывать память; что это вполне могут быть вещи, друг с другом не связанные.
Однако практика показывает, что в «железе» для настольных систем это понятия взаимозаменяемые. К примеру, Intel в документации к своему набору микросхем G3.
РАЕ. А не поддерживающий PAE набор i. Переадресация. Рисунок достаточно условный, переадресация совсем не обязательно выполняется блоками именно по одному гигабайту, дискретность может быть другой и определяется контроллером памяти (который, напомним, является либо частью оборудования системной платы, либо частью процессора). В программе BIOS Setup компьютера обычно бывает настройка, разрешающая или запрещающая переадресацию. Она может иметь различные наименования — например, Memory remap, Memory hole, 6. OS и тому подобное. Ее название лучше всего выяснить в руководстве к системной плате. Необходимо отметить, что если используется 3.
ОЗУ может уменьшиться. Тем не менее, если его включить, то ХР могла бы использовать все четыре гигабайта памяти — при условии, конечно, что системная плата поддерживала бы РАЕ. Но, повторим, реальной надобности включать этот режим в те годы не было. При желании читатель может для пробы установить на современный компьютер Windows XP или Windows XP SP1 (делать это для работы, конечно, не стоит), включить режим PAE и своими глазами убедиться, что системе доступны четыре гигабайта ОЗУ. Одним из путей было использование предотвращения выполнения данных (Data Execution Prevention, DEP) — набора программных и аппаратных технологий, позволяющих выполнять дополнительные проверки содержимого памяти и в ряде случаев предотвращать запуск вредоносного кода.
Эти проверки выполняются как на программном уровне, так и на аппаратном (при наличии соответствующего процессора). AMD назвала эту функцию процессора «защита страниц от выполнения» (no- execute page- protection, NX), а Intel использовала термин «запрет на выполнение» (Execute Disable bit, XD). И вот тут «Майкрософт» столкнулась с довольно серьезной проблемой: оказалось, что не все драйверы могут работать в режиме PAE. Попробуем пояснить эту особенность, не слишком углубляясь в устройство процессоров и механизмы адресации. Тридцать два разряда адреса обеспечивают обращение к пространству размером четыре гигабайта.
Таким образом, каждой ячейке ОЗУ или ячейке памяти другого устройства соответствует определенный адрес, и никаких двусмысленностей тут быть не может. Включенный режим PAE дает возможность использовать 3. Но ведь система команд процессора остается той же самой и может адресовать только 4 миллиарда (двоичных) байтов! И вот, чтобы обеспечить возможность доступа к любому из 6. Руссиновича и Соломона «Внутреннее устройство Windows»). В результате 3. 2- разрядный адрес в программе может указывать на любой из байтов в 3. А вот драйверам, которые должны обращаться к реальным адресам конкретных устройств, приходится решать дополнительные задачи.
Ведь сформированный этим драйвером 3. Excel. А если окажутся запорченными какие- либо системные данные, то тут и до аварийного завершения работы с выводом синего экрана рукой подать. Поэтому для успешной работы в режиме PAE драйверы должны быть написаны с учетом особенностей этого режима. Ведь оборудование, которое они выпускали (звуковые платы, к примеру), не предназначалось для серверов, и драйверы не имели серверной версии — так зачем без необходимости эти драйверы усложнять? Тем более, что для тестирования работы в режиме PAE раньше требовалось устанавливать серверную ОС и использовать серверное оборудование (системные платы для настольных компьютеров лишь относительно недавно стали поддерживать PAE). Так что разработчикам драйверов проще и выгоднее было просто забыть про этот PAE и обеспечить работоспособность на обычных клиентских компьютерах с обычными персональными, а не серверными ОС. Хотя количество фирм, драйверы которых переставали работать или даже вызывали крах системы, оказалось невелико, количество выпущенных этими фирмами устройств исчислялось миллионами.
Соответственно, и количество пользователей, которые могли бы после установки SP2 получить неприятный сюрприз, оказывалось весьма значительным. В результате многие пользователи и сами отказались бы устанавливать этот пакет, и разнесли бы о нем дурную славу, что повлияло бы и на других пользователей. Они, хоть и без каких- либо веских причин, тоже отказались бы его устанавливать.
Впрочем, рассуждения на тему, почему мы увидели Windows XP SP2 и не увидели чего- то наподобие Windows XP Second Edition, выходят за рамки данной статьи. И хотя сам этот режим существует и, более того, на компьютерах с современными процессорами включается по умолчанию, никакого расширения адресного пространства он не дает, просто передавая на выход те же адреса, которые были поданы на вход. Фактически система ведет себя как обычная 3. PAE. Конечно, 3. 2- разрядным. Причина, по которой это поведение не изменилось, осталась той же самой: обеспечение совместимости. Тем более что необходимость выгадывать доли гигабайта отпала: те, кому нужны большие объемы памяти, могут использовать 6. ОС. Увы, не станут: для этого требуется как раз наличие PAE, притом полноценного.
Прежде всего отметим, что нужно четко различать два понятия: размер адресного пространства и объем ОЗУ. Смешение их воедино препятствует пониманию сути вопроса. Адресное пространство — это набор всех существующих (к которым может обратиться процессор и другие устройства) адресов. Для процессоров семейства i.
ГБ с использованием PAE. У 6. 4- разрядных систем размер адресного пространства составляет 2 ТБ.
Даже если вытащить из компьютера всю оперативную память, размер адресного пространства не изменится ни на йоту. Но особенности использования памяти в Windows будут описаны в другой статье. Здесь же отметим только, что к реальному адресному пространству программы доступа не имеют — по реальным адресам могут обращаться только сама операционная система и драйверы. Сразу подчеркнем, что его распределение выполняется оборудованием компьютера («железом») и операционная система в общем случае не может на это повлиять.
Есть только один способ: изменить настройки оборудования с помощью технологии Plug& Play. О ней много говорили в середине 9. Это, в свою очередь, дает возможность избежать конфликтов между устройствами, которые могли бы произойти, если бы в компьютере оказалось два устройства, настроенных на использование одних и тех же адресов. Она определяет, какие диапазоны адресов каждое устройство может использовать, потом старается распределить память так, чтобы ни одно устройство не мешало другому, а затем сообщает устройствам свое решение. Устройства настраивают свои параметры согласно этим указаниям, и можно начинать загрузку ОС.
Если эта настройка выключена (No), то системная плата выполняет распределение адресов для всех устройств. Если включена (Yes), то распределение памяти выполняется только для устройств, необходимых для загрузки, а настройкой остальных устройств будет заниматься операционная система. В случае Windows XP и более новых ОС этого семейства данную настройку рекомендуется включать, поскольку в большинстве случаев Windows выполнит требуемую настройку по крайней мере не хуже, чем BIOS. Адреса устройств, наоборот, выделяются в верхней области (в четвертом гигабайте) в сторону уменьшения адресов, но не обязательно смежными блоками — чаще, наоборот, несмежными.