Расширенная память


В управлении памятью DOS расширенная память относится к памяти выше первого мегабайта ( 220 байт) адресного пространства в IBM PC или совместима с процессором 80286 или более поздней версии . Этот термин в основном используется в операционных системах DOS и Windows . Программы DOS, работающие в реальном режиме или виртуальном режиме x86 , не могут напрямую обращаться к этой памяти, но могут делать это через интерфейс прикладного программирования, называемый спецификацией расширенной памяти .(XMS). Этот API реализуется драйвером (например, HIMEM.SYS ) или операционной системой, которая занимается управлением памятью и копированием памяти между обычной и расширенной памятью, временно переключая процессор в защищенный режим . В этом контексте термин «расширенная память» может относиться либо ко всей расширенной памяти, либо только к ее части, доступной через этот API.

К расширенной памяти также могут напрямую обращаться программы DOS, работающие в защищенном режиме с использованием VCPI или DPMI , двух (разных и несовместимых) методов использования защищенного режима в DOS.

Расширенную память не следует путать с расширенной памятью (EMS), более ранним методом увеличения объема памяти IBM PC за пределы 640 КБ (655 360 байт) с использованием карты расширения с модулями памяти с переключением банков . Из-за доступной поддержки расширенной памяти в популярных приложениях были разработаны драйверы устройств, которые эмулировали расширенную память с помощью расширенной памяти. Позже были разработаны два дополнительных метода, обеспечивающих прямой доступ к небольшой части расширенной памяти из реального режима. Эти области памяти называются областью верхней памяти (HMA) и областью верхней памяти (UMA; также называются блоками верхней памяти или UMB).

На ПК с архитектурой x86 расширенная память доступна только с процессором Intel 80286 или выше. Только эти чипы могут адресовать более 1 мегабайта оперативной памяти . Более ранние процессоры 8086/8088 могут использовать более 1 МБ ОЗУ, если использовать специальное оборудование , чтобы выбираемые его части отображались по адресам ниже 1 МБ.

На ПК 286 или лучше, оснащенном более чем 640 КБ ОЗУ, дополнительная память обычно перераспределяется выше границы 1 МБ, поскольку архитектура IBM PC резервирует адреса от 640 КБ до 1 МБ для системного ПЗУ и периферийных устройств.

Расширенная память недоступна в реальном режиме (за исключением небольшой части, называемой областью верхней памяти ). Только приложения, работающие в защищенном режиме, могут напрямую использовать расширенную память. Контролирующая операционная система защищенного режима , такая как Microsoft Windows , управляет доступом прикладных программ к памяти. Процессор делает эту память доступной через глобальную таблицу дескрипторов (GDT) и одну или несколько локальных таблиц дескрипторов.(ЛДЦ). Память «защищена» в том смысле, что к сегментам памяти, которым назначен локальный дескриптор, не может получить доступ другая программа, потому что эта программа использует другой LDT, а права доступа к сегментам памяти, которым назначен глобальный дескриптор, могут быть ограничены, вызывая исключение процессора (например , , общая неисправность защиты или GPF) при нарушении. Это предотвращает вмешательство программ, работающих в защищенном режиме, в память друг друга.


Расширенная память находится выше 1 МБ.