|
Распределение памяти
В персональных
компьютерах традиционно принято два основных способа распределения оперативной
памяти.
Первый способ,
который начинает свой путь от IBM PC, когда даже 512 Кбайт оперативной памяти
было чрезвычайно много, делит всю память на ряд небольших областей. Причем такой
принцип остается даже у совр_еменных компьютеров в момент первоначальной работы
BIOS и при переходе процессора в реальный режим, который характеризуется возможностью
использования только 1 Мбайт памяти.
Второй способ
реализуется, когда процессор переключается в защищенный режим и использует линейную
модель памяти. Для разных поколений процессоров имеются некоторые различия,
но надо учитывать, что современный процессор считает, что физическая память
не имеет сегментации.
Основная часть
ОЗУ (в пределах первого мегабайта, от 0 до начала видеопамяти) размером в 640
Кбайт называется стандартной памятью (Conventional Memory). Она используется
для размещения кода программ, запущенных пользователем или операционной системой.
В ней также хранятся различные данные, необходимые для работы программ.
За пределами
1 Мбайт существует область памяти НМA (High Memory Area), которая появилась
из-за ошибки в процессоре 286. Эти дополнительные 64 Кбайт, если загружен драйвер
HIMEM.EXE, можно использовать для хранения кода и данных любой программы. Правда,
чаще всего этот подарок программистам и пользователям занимается под размещение
резидентной части операционной системы и различных драйверов. Пользователь может
самостоятельно указать, какие программы должны загружаться в эту память, например,
корректируя системные файлы операционной системы MS-DOS — AUTOEXEC.BAT и CONFIG.SYS.
Между верхней
границей стандартной памяти и до конца первого мегабайта существует область
UMA (Upper Memory Area) размером 384 Кбайт, в которой расположены видеопамять,
адресное пространство ПЗУ видеоадаптера и BIOS (а также ПЗУ других внешних устройств).
Это пространство между верхней границей ПЗУ видеоадаптера и до начала BIOS,
т. е. от С8000h до F0000h, у стандартного персонального компьютера почти всегда
не занято. Чтобы использовать свободную часть этой памяти, например для размещения
кода операционной системы, используют драйвер EMM386.EXE. Соответственно, надо
указать в файлах AUTOEXEC.BAT и CONFIG.SYS, что пользователь разрешил использовать
эту память.
Оперативная
память за пределами 1 Мбайт и до верхней границы адресуемой памяти имеет название
XMS (extended Memory Specification). Процессор, работающий в реальном
режиме, обратиться к этой памяти может только используя метод EMS (Expanded
Memory Specification). Суть метода в том, что в области UMA выделяется окно
размером 64 Кбайт, разделенное на четыре страницы по 16 Кбайт. Специальный драйвер
отображает произвольный кусочек физической памяти на эти страницы, из-за чего,
кстати, эту память еще называют "отображаемой памятью".
|
|