Базовая, или стандартная память представляет собой “нижние” 640 Кбайт оперативной памяти, т.е. полностью находится в пределах адресуемой памяти микропроцессоров 8086/88. Для использования базовой памяти не нужны никакие дополнительные драйверы, поскольку ОС MS-DOS изначально создана для работы в адресах 0-640 Кбайт.
Областью верхней памяти (UМА) называется часть оперативной памяти, находящейся между адресами 640 и 1024 Кбайт. Эта часть памяти используется видеоадаптером и базовой системой ввода-вывода, для прикладных программ MS-DOS она недоступна. Специальное программное обеспечение позволяет использовать свободные участки верхней памяти (так называемые блоки верхней памяти ИМВ) для загрузки резидентных программ и устанавливаемых драйверов устройств.
Вся память, адресуемая микропроцессорами выше 1024 Кбайт, называется дополнительной памятью (extended memory). Согласно общепринятой спецификации дополнительной памяти XMS 3.0 (eXtended Memory Specification), дополнительная память делится на две области – область высокой памяти объемом 64 Кбайт (НМА) и собственно дополнительную память XMS.
MS-DOS позволяет использовать НМА для загрузки большей части ядра ОС. XMS использует только некоторые утилиты MS-DOS, такие как Smart Drive. Приведём схематическую карту адресуемой памяти.
Выше 1024 Кбайт
дополнительная память
Выше 1088 Кбайт – дополнительная память по стандарту XMS
1024-1088 Кбайт – высокая память (НМА)
640-1024 Кбайт – область верхней памяти ИМА
0-640 Кбайт – базовая память
Расширенной памятью – называют память адресуемую микропроцессорами 8086/8088 по спецификации EMS (Expended Memory Specification). Для инициализации расширенной памяти обязательно нужен специальный драйвер. Драйвер EMS отводит определённую часть области верхней памяти для того, чтобы поочередно отображать в неё требуемые участки расширенной памяти. Каждый непрерывный участок расширенной памяти, отображамый в данный момент, называется страницей, а окно в области ИМА, через которое микропроцессор просматривает содержимое страниц расширенной памяти – страничным блоком (64 Кбайт).
Спецификация EMS позволяет обойти ограничения микропроцессоров 8086/8088 и адресовать значительный объём памяти. В случае отсутствия платы расширенной памяти можно эмулировать расширенную память при помощи драйверов-диспетчеров расширенной памяти. Такие драйверы размечают область ИМА, выделяя в ней страничный блок, и осуществляют доступ к части дополнительной памяти как к расширенной, по спецификации EMS.
640-1024 Кбайт верхняя память
Страница
Страница
Область расширенной памяти Expanded Memory
Страница
Область BIOS
Страничный блок
Область видеопамяти
Просмотр памяти используемой MS-DOS.
Стандартным средством ревизии ресурсов памяти MS-DOS является программа MS-DOS MEM. При помощи MEM можно узнать, какие программы загружены в память, какие участки памяти используются этими программами и какие участки памяти свободны. Сообщение программы MEM достаточно информативно – оно содержит данные об общем объёме оперативной памяти, степени загрузки базовой памяти резидентными программами и объёме блоков верхней памяти. Подытоживая всё сообщение MEM докладывает о максимально доступном объёме базовой памяти, количестве доступных блоков верхней памяти и расположении ядра ОС MS-DOS.
Чаще всего приходится использовать MEM, когда необходимо определить, в какую область памяти загружены и какой объём занимают резидентные программы и устанавливаемые драйверы устройств. Для этого необходимо выполнить программу MEM с параметром /С. Параметр ID перечисляет резидентные программы и устанавливаемые драйверы, а также внутренние системные драйверы MS-DOS, причём показывает не только размер, но и адрес каждого модуля в памяти. Параметр /F демонстрирует список свободных участков памяти в базовой и верхней областях, причём указывает на наибольшие свободные блоки. Параметр /M используется для просмотра информации, связанной с какой-либо одной конкретной резидентной программой. Формат команды MEM_IM_имя программы.