Управление распределением оперативной памяти в реальном режиме работы процессора

У ПК архитектуры Intel/IBM PC распределение оперативной в реальном режиме работы процессора имеет следующую структуру.

Максимальный объем при реальном режиме работы процессоров составляет величину равную 1 Мб. При этом 640 Кб выделяется рабочим программам (рабочая память), а остальные 384 Кб – системная область для BIOS, видеопамяти и других компонентов.

 

Рис.3.1. Распределение памяти в реальном режиме работы.

Для использования прикладными программами оперативной памяти свыше 640Кб служат различные технологи.

Дополнительная память (Expanded Memory Specification – EMS). Обеспечивает доступ к оперативной памяти свыше 1Мб. Доступ предоставляется через дополнительное «окно» размером 64Кб, разделенное на 4 страницы по 16Кб. Создается «окно» в области 384 Кб.

В системной памяти (участок 384Кб) есть свободные блоки. Общий размер блоков составляет значение около 100 Кб. Такие блоки – UMB (Upper Memory Block) – блоки верхней памяти. Их можно использовать для загрузки резидентных программ и подключаемых драйверов устройств.

Рис.3.2. Структура памяти компьютера IBM PC. EMS и XMS память.

За пределами 1Мб находится область расширенной памяти (XMS память). Эта оперативная память доступна только в защищенном режиме работы процессора. Непосредственно к 1Мб оперативной памяти примыкает сегмент старшей памяти (HMA – High Memory Area). Он, адресуется в реальном режиме работы процессора Intel с помощью специальной адресной линии А20. Это сегмент можно использовать для переноса в него ядра ОС из области рабочей памяти.

Для управления памятью используются:

Драйвер Himem.sys

Драйвер Emm386.exe

Первый драйвер позволяет использовать XMS и XMA память.

Второй драйвер обеспечивает использование UMB и EMS памяти. При запуске драйвера могут указываться параметры:

RAM, создавать EMS память и использовать UMB блоки.

Допускается указывать размер EMS памяти в килобайтах.

NOEMS, использовать UMB блоки.

В конфигурационном файле используют команды:

DOS = HIGH, перенос ядра в HMA.

DOS = UMB, использовать UMB блоки.

DEVICEHIGH – загружать драйвер в UMB.

Пример файла конфигурации:

DOS=HIGH,UMB

FILES=40

BUFFERS=20

DEVICE=C:WINDOWShimem.sys

DEVICE=C:WINDOWSemm386.exe 2048 RAM

NUMLOCK=off

Примечание.

Файл конфигурации предоставляет прикладным программам 2Мб EMS памяти.

Оперативную память персонального компьютера можно использовать для создания дополнительного диска с данными. Работа с таким диском происходит к с обычным диском ЭВМ, но операции ввода – вывода выполняются значительно быстрее. Такие диски называют виртуальными. Для организации такого диска в состав MSDOS включают специальный драйвер RAMDRIVE.SYS.

Для загрузки драйвера используется команда конфигурации:

DEVICE=PATHRAMDRIVE.SYS Объем Сектор Файлы

/A | /E

Где:

Объем – объем оперативной памяти в килобайтах, выделяемый для диска. Допустимые значения: от 4 32767. Если значение не указано, то объем равен 64Кб.

Сектор – задает размер сектора. Допустимые значения 128, 256, 512байт. По умолчанию используется последнее значение.

Файлы – число файлов, которые можно включать в корневой каталог диска. Допустимые значения лежат в пределах от 2 до 1024. По умолчанию используется значение равное 64.

/A – виртуальный диск создается в дополнительной памяти.

/E – виртуальный диск создается в расширенной памяти.

Пример создания диска в расширенной памяти размером 2Мб:

DEVICE=A:DOSHIMEM.SYS

DEVICE=A:DOSRAMDRIVE 2048 /E