На главную
Подписка
Новости










Главная / MS-DOS / MS-DOS. РУКОВОДСТВО РАЗРАБОТЧИКА / Глава 3 / Загрузка резидентных программ Сделать домашней страницей Добавить в избранное Написать писмо

НАЗАД СОДЕРЖАНИЕ ВПЕРЁД

Загрузка резидентных программ

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


Если была загружена автономная резидентная подпрограмма, то порождающая программа завершается, оставляя резидентную подпрограмму на месте в памяти. Это приводит к разбиению свободной памяти на "куски", но операционная система MS-DOS не рискует загружать последующие подпрограммы на резидентную подпрограмму. Если была бы загружена RTL, то порождающая программа была бы готова к вызову RTL, когда это необходимо. При завершении порождающая подпрограмма имеет возможность оставить RTL в памяти для последующего использования или удалить ее путем сброса ее вектора прерывания в исходное состояние и освобождения ее блока памяти.


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


НАЗАД СОДЕРЖАНИЕ ВПЕРЁД

Hosted by uCoz