PAE: различия между версиями

[отпатрулированная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Нет описания правки
Строка 1:
'''Physical Address Extension''' (PAE) — режим работы встроенного [[MMU|блока управления памятью]] [[x86]]-совместимых процессоров, в котором используются 64-битные элементы таблиц страниц (из которых для адресации используются только 36 бит), c помощью которых процессор может адресовать 64 ГБ физической памяти (вместо 4 ГБ, адресуемых при использовании 32-разрядных таблиц), хотя каждая задача (программа) всё равно может адресовать максимум 4 ГБ (в win32 - 2GB<ref>не считая ОС файлового кэша занимающего остальные 2GB, но возможно неиспользуюемого для ускорения</ref>, с boot.ini параметром "/3G" - 3GB<ref>но нередко с драйверными багами</ref>) виртуальной памяти. Также, в новых моделях процессоров в PAE-режиме старший бит элемента таблицы страниц отвечает за [[NX-бит|запрет исполнения]] кода в странице, что затрудняет атаку по методу [[переполнение буфера|переполнения буфера]].
 
Впервые расширение появилось в процессоре [[Pentium Pro]]. Для использования 36-разрядной адресации памяти необходима поддержка расширения физических адресов на аппаратном уровне (можно определить по команде CPUID) и программное включение режима PAE в [[Операционная система|ОС]].
 
== Варианты применения ==
* использовать для сервера на 32битной ОС с памятью свыше 4GB
* выделить память урезанную 32-битной ОС - стандартным резервированием адресного пространства под драйверные аппаратные адреса - под [[RAM drive]], обычно это от 0.5 до 0.9 MB из установленных 4GB(<small>не говоря уже больше</small>) - в зависимости от ОС и её версии
* задействуя замену драйвера ОС кэширования файлов, выделить вышеуказанный потерянный объём памяти под ОС файл кэш
 
== Проблемы ==
* Как и следует ожидать увеличение страничных уровней не происходит бесплатно, система начинает больше тратить времени при обращении к памяти,
если используемый программой размер памяти типичен - т.е.НЕ ЗНАЧИТЕЛЬНО больше 2GB, то выгоднее использовать традиционные подкачку и свопинг данных с диска<ref>не говоря уже перейти на 64-битную ОС - если архитектура это позволяет; но стоит учитывать возможные несовместимости с 32 битными ПО</ref>.
* - Что очевидно и послужило повсеместным выключением по умолчанию PAE в ОС, по нормальному
* - кроме некоторых ветвей *NIX, начиная с ядра ~2.62, где это стоит вручную выключать для задания нормальной скорости работы ПК.
* (<small>неоф.инф.о понятно неоф.реализации</small>) в win32 этот режим включается автоматически когда система поддерживает PAE (Physical Address Extensions) и присутствует более 4 Гб памяти, и если не задать "/nopae" в boot.ini который запрещает загрузчику (NTLDR) использовать PAE-версию ядра.
* (<small>неоф.инф.о понятно неоф.реализации</small>) в win32 притом этот режим включается автоматически независимо от наличия "/nopae" - если пользователь включил <b>запрет исполнения кода в странице</b>
 
== Поддержка PAE в различных [[Операционная система|ОС]] ==