ОСНОВНАЯ И ВЕРХНЯЯ ПАМЯТЬ.

Основная память – это память размером 640 Кбайт. В старых компьютерах она была вшита в материнскую плату. Основная память является самой дефицитной: на неё претендуют BIOS, часть операционной системы работающей в реальном режиме, а то что остается используется различными программами.

Основная память распределяется в DOS следующим образом (в дальнейшем все адреса даются в 16-ричном виде):

В Кбайт В 16-ом виде  
0 - 1 Кб 00000 – 003FF Векторы прерываний (256 двойных слов)
1Кб - 1,25 Кб 00400 – 004FF Область переменных BIOS
1280 - 00500 – 00xxx Область DOS (ххх – некоторое число)
- 640 Кб 00xxx – 9FFFF Память для программ (до 638 Кбайт)

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

 

Верхняя память (UMA) размером 384 Кбайт находится по адресам А0000 – FFFFF и имеет области различного назначения, которые могут быть заполнены буферной памятью устройств, постоянной памятью или оставаться незаполненными. Эти «дыры» - UMB (Upper Memory Block) доступны DOS для размещения резидентных программ и драйверов через драйвер EMM386.

Стандартное распределение верхней памяти выглядит следующим образом:

Кбайт Область памяти  
640 - 768 А 0000 – BFFFF Видеобуфер VGA
768 - 896 C 0000 – DFFFF Резерв для адаптеров, использующих свои модули ROM BIOS
896 - 960 E0000 – EFFFF Свободная область, часто занята под BIOS адаптеров.
960 - 1 Мб F0000 – FFFFF Использует BIOS
  FD000 – FDFFF Используется для устройств Plug & Play (имеется только при наличии PnP BIOS)

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

 

Дополнительная память — это область всей физической памяти, расположенной в адресном пространстве выше 1 Мбайта. Ее объем в таблице, выводимой после POST, у современных компьютеров указывается строкой Extended Memory xxxxx Kbyte.

 

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

Отображаемая память EMS (Expanded Memory Specification) — програм­мная спецификация использования дополнительной памяти DOS-программами реального режима через 4 страницы по 16 Кбайт. Эти страницы, расположен­ные в области верхней памяти (обычно с адреса D0000), могут отображать любую об­ласть дополнительной памяти. Обращение прикладных программ к памяти EMS осуществля­ется через менеджер памяти, в DOS эти функции выполняет драйвер EMM386.exe. В другие системы этот драйвер может быть встроенным. Он используется в основном для старых программ, которые использовали только реальный режим работы процессора.

 

Расширенная память XMS (eXtended Memory Specification) — программная спецификация использования дополнительной памяти DOS-программами через

защищенный режим и обратно. Поддерживается драйвером HIMEM.SYS, поверх которого может быть загружен и драйвер ЕММ386.ЕХЕ, пользующийся памятью XMS для эмуляции EMS-памяти.