TURBO PASCAL

Новости

Программы   

Turbo Pascal 

Игры

Документация   

Странности

FAQ

Ссылки

Форум

Гостевая книга

Рассылка

Благодарности

Об авторе

 

 

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

             По умолчанию  администратор  этапа выполнения использует при
        загрузке всю доступную память.  Затем по запросам он выделяет па-
        мять своим  клиентам (через подпрограммы API администратора памя-
        ти).

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

             Причина, по которой администратор этапа выполнения предпочи-
        тает расширенную память,  заключается в том, что прикладная прог-
        рамма может с помощью вызова подпрограммы Exec в модуле  Dos  по-
        рождать другие прикладные программы. Порожденные прикладные прог-
        раммы не обязательно являются программами защищенного режима; та-
        ким образом,  им может потребоваться обычная память.  Фактически,
        порожденные программы защищенного режима запускаются как програм-
        мы  реального  режима  и  переключаются в защищенный режим только
        после успешной загрузки фиктивным модулем средств  DPMI  и  адми-
        нистратора этапа выполнения.

             Администратор этапа выполнения перед порождением  прикладной
        программы пытается  освободить  максимальный объем обычной памяти
        (например, перенеся перемещаемые блоки в расширенную память). Од-
        нако попытки  освобождения расширенной памяти не предпринимаются.
        Таким образом, если должны порождаться прикладные программы защи-
        щенного режима,  не использующие администратор этапа  выполнения,
        то  необходим споcоб управления распределением памяти администра-
        тором этапа выполнения.

             Чтобы управлять тем, сколько памяти может использовать адми-
        нистратор этапа выполнения,  в командной строке  DOS  добавьте  к
        строке операционной среды DOS переменную среды RTM:

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

             Возможные параметры перечислены в следующей таблице.  Значе-
        ние nnnn может быть десятичным или шестнадцатиричным числом в ви-
        де xAB54 или xab54.

         B.Pascal 7 & Objects/LR     - 296 -


                     Параметры переменной операционной
             среды RTM, используемые для управления памятью  Таблица 17.7
        ┌────────────────────┬──────────────────────────────────────────┐
        │    Параметр        │                 Описание                 │
        ├────────────────────┼──────────────────────────────────────────┤
        │   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.                        │
        └────────────────────┴──────────────────────────────────────────┘

             Следующая команда DOS ограничивает RTM 2 мегабайтами  расши-
        ренной  памяти  и  обеспечивает,  что нераспределенными останутся
        128К реальной памяти.

             SET RTM=EXTMAX 2048 REALLEAVE 8192


Содержание

На первую страницу

Rambler's Top100 Rambler's Top100
PROext: Top 1000

(с)Все права защищены

По всем интересующим вопросам прошу писать на электронный адрес

Hosted by uCoz