Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BorlandPascal.doc
Скачиваний:
54
Добавлен:
17.03.2015
Размер:
2.83 Mб
Скачать

Управление объемом используемой rtm памяти

По умолчанию администратор этапа выполнения использует при

загрузке всю доступную память. Затем по запросам он выделяет па-

мять своим клиентам (через подпрограммы API администратора памя-

ти).

В защищенном режиме нет разницы между обычной памятью (ниже

1 мегабайта) и расширенной памятью (с адресами выше 1 мегабайта);

для программ защищенного режима доступны оба типа памяти. Однако

администратор этапа выполнение отдает предпочтение расширенной

памяти. Только после того как вся расширенная память будет выде-

лена, или когда прикладная программа специально запрашивает

обычную память (например, с помощью функции GlobalDosAlloc), ад-

министратор этапа выполнения выделяет обычную память.

Причина, по которой администратор этапа выполнения предпочи-

тает расширенную память, заключается в том, что прикладная прог-

рамма может с помощью вызова подпрограммы Exec в модуле Dos по-

рождать другие прикладные программы. Порожденные прикладные прог-

раммы не обязательно являются программами защищенного режима; та-

ким образом, им может потребоваться обычная память. Фактически,

порожденные программы защищенного режима запускаются как програм-

мы реального режима и переключаются в защищенный режим только

после успешной загрузки фиктивным модулем средств DPMI и адми-

нистратора этапа выполнения.

Администратор этапа выполнения перед порождением прикладной

программы пытается освободить максимальный объем обычной памяти

(например, перенеся перемещаемые блоки в расширенную память). Од-

нако попытки освобождения расширенной памяти не предпринимаются.

Таким образом, если должны порождаться прикладные программы защи-

щенного режима, не использующие администратор этапа выполнения,

то необходим споcоб управления распределением памяти администра-

тором этапа выполнения.

Чтобы управлять тем, сколько памяти может использовать адми-

нистратор этапа выполнения, в командной строке DOS добавьте к

строке операционной среды DOS переменную среды RTM:

SET RTM={параметр nnnn}

Возможные параметры перечислены в следующей таблице. Значе-

ние nnnn может быть десятичным или шестнадцатиричным числом в ви-

де xAB54 или xab54.

Параметры переменной операционной

среды RTM, используемые для управления памятью Таблица 17.7

---------------------T------------------------------------------

¦ Параметр ¦ Описание ¦

+--------------------+------------------------------------------+

¦ EXTLEAVE nnnn ¦ Всегда оставляет не менее nnnn килобайт¦

¦ ¦ доступной расширенной памяти. По умолча-¦

¦ ¦ нию это значение равно 640К. ¦

+--------------------+------------------------------------------+

¦ EXTMAX nnnn ¦ Не выделяет более nnnn килобайт расширен-¦

¦ ¦ ной памяти. По умолчанию используется¦

¦ ¦ значение 4 гигабайта. В Windows использу-¦

¦ ¦ емое по умолчанию значение равно половине¦

¦ ¦ доступной памяти. ¦

+--------------------+------------------------------------------+

¦ EXTMIN nnnn ¦ Если после применения EXTMAX или EXTLEAVE¦

¦ ¦ доступно менее nnnn килобайт, то програм-¦

¦ ¦ ма завершается с сообщением о нехватке¦

¦ ¦ памяти (Out of memory). По умолчанию это¦

¦ ¦ значение равно 0. ¦

+--------------------+------------------------------------------+

¦ REALLEAVE nnnn ¦ Всегда оставляет не менее nnnn параграфов¦

¦ ¦ доступной реальной памяти. По умолчанию¦

¦ ¦ это значение равно 64К или 4096 парагра-¦

¦ ¦ фов. ¦

+--------------------+------------------------------------------+

¦ REALMAX nnnn ¦ Не выделяет более nnnn параграфов реаль-¦

¦ ¦ ной памяти. По умолчанию это значение¦

¦ ¦ равно 1 мегабайту или 65535 параграфов. ¦

+--------------------+------------------------------------------+

¦ REALMIN nnnn ¦ Если после применения REALMAX и REALLEAVE¦

¦ ¦ доступно менее nnnn параграфов, то прог-¦

¦ ¦ рамма завершается с сообщением о нехватке¦

¦ ¦ памяти (Out of memory). По умолчанию это¦

¦ ¦ значение равно 0. ¦

L--------------------+-------------------------------------------

Следующая команда DOS ограничивает RTM 2 мегабайтами расши-

ренной памяти и обеспечивает, что нераспределенными останутся

128К реальной памяти.

SET RTM=EXTMAX 2048 REALLEAVE 8192

Соседние файлы в предмете Программирование на Pascal