Логическое распределение оперативной памяти
XMS | EMS | 64 K | 10000:0000 |
HMA | |||
UMA (384 K) | ROM-BIOS | 64 K | A000:0000 |
PAGE FRAME |
| ||
Сегмент адаптера | 128 K | ||
Conventional Memory (640 K) | Основная память (область прерываний) | 600 K | 0000:0000 |
Драйверы устройств |
| ||
Область данных MS-DOS | 768 B | ||
Таблица векторов прерываний | 1 K |
Upper Memory Area (UMA)
High Memory Area (HMA)
Expanded Memory Specification (EMS)
Extended Memory Specification (XMS)
Для организации системы необходимо знание строения RAM (ОЗУ), которое зависит от применяемой операционной системы и особенностей аппаратной реализации.
Выделяют 5 важнейших областей оперативной памяти:
Стандартная оперативная память (Conventional memory) | |
EMS | |
UMA | |
HMA | |
XMS |
Адресация памяти происходит по 16-ричным адресам, состоящим из сегмента и смещения.
Сегмент - это номер 16-байтного блока памяти.
Смещение - смещение от начала сегмента.
Пример:
0040h:0010h
Стандартная оперативная память начинается с адреса 0000:0000 и заканчивается адресом А000:0000
Первые 1024 байта оперативной памяти занимает таблица векторов прерываний (256 элемента по 4 байта).
Векторы прерываний - адреса сервисных программ, входящих в состав оперативной системы и BIOS.
Область данных BIOS занимает 768 байтов (буфер клавиатуры, счётчик таймера и др.). Далее следует ядро BIOS (драйверы устройств). Далее в основной области памяти (600 K) могут располагаться резидентные программы и др., программы пользователя и файлы данных, используемые ими.
В UMA размещаются видеопамять ROM-BIOS и некоторые свободные блоки (UMS). Сегмент адаптера - 128Kb (А000:0000 - С000:0000)
ROM-BIOS - последние 64 Kb.
Программы, которым требуются больше, чем 640 K, используют EMS. Для этого используется стандарт, основанный на переключении блоков (страниц) памяти. Он использует окно PAGE FRAME размером 64 Кb (4 страницы по 16 K). Для отображения физических страниц, располагающихся в дополнительной памяти (ЕMS).
Для того, чтобы использовать ЕМS-память необходимо:
- Чтобы прикладные программы умели обращаться к драйверу EMS - памяти.
- Необходим менеджер памяти EMM, который организует страници и управляет ими.
DEVICE = c:\dos\EMM.exe : 1024
HMA занимает 64 Кb, непосредственно выше границы. С помощью HIMEM.SYS в HMA можно загрузить резидентную часть DOS.
Резидентная программа - программа, которая остаётся в памяти после реализации.
XMS - память свыше границы 1М (включая HMA). Чтобы иметь доступ к этой памяти, необходим специальный драйвер, с помощью которого данные пересылаются из стандартной память в расширенную и обратно.
DEVICE = с:\dos\HIMEM.sys : 1024