Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_01 (XMS) Управление XMA.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
423.94 Кб
Скачать

1.6 Верхняя память

Мы уже говорили о том, что в UMA обычно остаются «дыры». Одна из 64-Кбайт «дыр» может задействоваться под окно отображаемой памяти. Но даже при этом условии в UMA можно было бы дополнительно разместить почти 100 Кбайт так нужной памяти. Оставшиеся «дыры» можно «заполнить» расширенной памятью, если обеспечить отображение их адресов на их физические адреса, превышающие 1М. Это с успехом можно сделать на компьютере с микропроцессором 80386 и выше, поскольку такие процессоры способны реализовать преобразование одних адресов (логических) в другие: адреса (физические). Описания техника аналогична эмуляции отображаемой с использованием расширенной памяти, но имеются два существенных отличия:

  1. невозможно использовать память, превышающую размеры «дыр» (то есть механизм переключения страниц не поддерживается);

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

Память, заполняющая «дыры» в UMA, называется верхней (upper memory), или UMB-памятью (Upper Memory Biocks – блоки верхней памяти). Очевидно, верхняя память состоит из нескольких фрагментов, называемых регионами. Поэтому, видимо, вместо UMB лучше было бы использовать термин «Upper Memory Reqions» (UMR).

Из-за присущей верхней памяти фрагментированности, определяющей небольшие размеры регионов, в нее не удается загрузить большие программы (как известно, программный код должен быть непрерывным). Вот почему о возможности загрузки в верхнюю память нерезидентных программ обычно не вспоминают, хотя она в принципе допустима.

Некоторые, но отнюдь не все функции управления верхней памятью зафиксированы в спецификации XMS и их реализует HIMEM.SYS. Однако всеобъемлющая поддержка верхней памяти осуществляется в DOS не этим, а другим драйвером, который еще и эмулирует отображаемую намять, а именно, драйвером EMM386.ЕХЕ. Есть много других администраторов верхней памяти различных производителей. Некоторые администраторы «умудряются» даже реализовать верхнюю память на ПК классов XT и AT, используя для ее эмуляции отображаемую память.

Разновидность компьютеров класса AT, снабженных специальными схемами управления памятью, аналогично компьютерам с МП 80386 и выше, способен производить переадресацию на логическом уровне и тем самым способен поддерживать верхнюю память.

Разновидность верхней памяти, о которой только что рассказано, является программной, поскольку она формируется программными средствами при наличии соответствующей аппаратной поддержки.

Некоторые модели ПК различных классов, начиная с XT, имеют аппаратную верхнюю память, то есть оперативную память емкостью 384 Кбайт, заполняющую UMA. В этом случае регионы верхней памяти доступны изначально.

Распознать наличие аппаратной верхней памяти можно двумя способами:

  1. узнав общий размер оперативной памяти, из сообщений при ее тестировании во время загрузки DOS и сравнив с количеством, указанным в документации на ПК (аппартная верхняя память имеется, если протестированной памяти на 384 Кбайт меньше чем указано в документации);

  2. выдав команду MEM и проанализировав поле Total в строке Reserved отчета о статусе памяти (аппаратная верхняя память имеется, если в этом поле указано значение 384 К).

Первый способ основан на том, что BIOS не тестирует память, логически размещенную в UMA. Аналогичным первому способу можно считать сравнение сведений о размере расширенной памяти, отображаемых командой MEM, с общим ее количеством по документации.

ПК с процессорами 80386 и выше иногда способны аппаратно менять базовый адрес фрагмента расширенной памяти размером 384 Кбайт (только такого, но не меньшего размера). Тогда можно получить как аппаратную, так и программную верхнюю память. Верным признаком такой способности является поддержка теневой памяти (копии BIOS в оперативной памяти). Смена базового адреса обычно и происходит при изменении статуса поддержки теневой памяти, осуществляемом в среде встроенной в BIOS утилиты Setup. Правда, есть BIOS, которые, отключая теневую память, не перемещают высвободившиеся 384 Кбайт в ХМА, — это поле памяти оказывается неиспользуемым.

В дальнейшем речь пойдет только о программной верхней памяти.

Верхняя память выделяется блоками. Блок не может быть больше региона, в котором он формируется. В любом регионе может быть создано несколько блоков.

При использовании верхней памяти важно понимать, что драйверы и резидентные программы, загружаемые в нее, не обязаны использовать какие-либо специальные приемы для этого. Функция загрузки всецело ложится на «плечи» DOS, и она ее с честью реализует.

Обобщенные структуры памяти ПК

Различные классы ПК имеют неодинаковые структуры памяти, что определяется размером адресного пространства различных микропроцессоров, а также их возможностями по переадресации ячеек памяти.

В соответствии с этим. можно выделить три структуры памяти компьютеров:

  1. структура памяти ПК класса XT (рис. 3);

Р ис. 3 Структура памяти ПК класса ХТ.

  1. структура памяти ПК класса AT (рис.4);

  2. структура памяти ПК на базе микропроцессора 80386, 80486 или Pentium (рис.5).