Верхняя память
Обычно в UMA остаются “дыры”. Одна из 64-Кбайт “дыр” может задействоваться под окно отображаемой памяти. Но даже при этом условии в UMA можно было бы разместить почти 100Кбайт так нужной памяти. Оставшиеся “дыры” можно заполнить расширенной памятью, если обеспечить отображение их адресов на ее физические адреса, превышающие 1М. Это с успехом можно сделать на компьютере с МП 80386 и выше, поскольку такие процессоры способны реализовать преобразование одних адресов (логических) в другие адреса (физические). Описанная техника аналогична эмуляции отображаемой с использованием расширенной памяти, но имеет два существенных отличия:
невозможно использовать память, превышающую размеры “дыр” (т.е. не поддерживается механизм переключения страниц);
в заполненные памятью “дыры” можно загружать не только данные, но также драйверы и резидентные программы, что высвобождает стандартную память для других программ.
Память, заполняющая “дыры” в UMA, называется верхней (upper memory), или UMB-памятью (Upper Memory Blocks). Очевидно, верхняя память состоит из нескольких фрагментов, называемых регионами. Она выделяется блоками. Блок не может быть больше региона, в котором он формируется. В любом регионе может быть создано несколько блоков.
Высокая память
Общее количество ячеек памяти, к которым может обращаться DOS нетрудно найти из формулы для вычисления физического адреса, известной из курса архитектуры ЭВМ:
ФА=<сегмент>*16+<смещение>, т.е. получаем (216-1)+216-1=220+216-17=1М+64К-17.
Т.о. мы имеем диапазон адресов от 1М до 1М+64К-17, лежащий за пределами 1М. Расширенную память, попадающую в эту область принято называть высокой памятью (НМА – Hight Memory Area). Высокая память обеспечивает хранение как данных, так и выполняемых программ, поскольку адресуется непосредственно, без переключения режимов процессора. Однако спецификация XMS допускает использование данной памяти только одной единственной программой. Чаще такой программой является сама DOS, и тогда часть ее резидентного кода перемещается в высокую память, что частично освобождает стандартную память для выполняемых программ.
Таблица – способы загрузки ОС и программ пользователей в OC MSDOS
Название |
Диапазон адресов |
Что загружается |
Как загружается |
Основная (стандартная) |
0…640 Кб |
ОС, программы пользователя |
стандартным образом |
Верхняя (UMA) |
640 Кб …1 Мб |
а) используется как адресное пространство для устройств; б) драйверы и резидентные программы при использовании EMM386.EXE в режиме UMB |
DOS=UMB DEVICEHIGH =… LOADHIGH= … |
Высокая (HMA) |
1024 Кб …1088 Кб |
часть ОС при использовании HIMEM.SYS |
DOS=HIGH |
Дополнительная |
выше 1088 Кб |
при использовании HIMEM.SYS: а) данные для программ; б) виртуальный диск; в) кэш |
а) по спецификации XMS (при использовании HIMEM.SYS); б) по спецификации EMS (при использовании HIMEM.SYS и EMM386.EXE) |
