Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Оверлейные программы

Виртуальная память | Сегментная организация памяти | Страничная организация памяти | Сегментно-страничная организация | Стратегии свопинга страниц | Особенности сегментно-страничной организации в ПЭВМ | Абсолютный загрузчик | Настраивающий загрузчик | Загрузка программ для ЭВМ с явной адресацией | Загрузка программ для ЭВМ с неявной сегментной адресацией |


Читайте также:
  1. I. Общая характеристика программы
  2. II. Организационно-педагогические условия реализации программы (материально-техническое обеспечение образовательного процесса)
  3. II. Основные цели и задачи Программы с указанием сроков и этапов ее реализации, а также целевых индикаторов и показателей
  4. III. Мероприятия Программы
  5. IV. Обоснование ресурсного обеспечения Программы
  6. MEM.EXE/CLASSIFY|/DEBUG|/FREE|/MODULE имя_программы /PAGE
  7. V. Рабочие программы дисциплин

Мы рассмотрели статическую настройку на память программы, до ее выполнения. Кроме такой настройки существует динамическая загрузка других программ во время исполнения программы. К динамической загрузке относится загрузка частей этой же программы в режиме перекрытия (так называемые оверлейные программы), когда память одной части перекрывается другой частью программы. Способы реализации такого механизма специфичны для каждой из ОС. Мы рассмотрим реализацию оверлейных программ в MS DOS.

Части программ, загружаемые в ОП на одно и то же место и запускаемые на выполнение, называются оверлеями. При этом значительно экономится ОП.

Рассмотрим случай, когда различные части программы организованы в разных файлах. Как организовать оверлей из одного файла через объединение COMMON директивы SEGMENT, неизвестно. Задача заключается в помещении перекрывающихся частей в одно и то же место памяти. Это достигается выполнением функции EXEC, используемой для создания процессов, с подфункцией AL=3, а не AL=0. В данном случае управление загруженной программе не передается, т.е. процесс не возникает. Адрес размещения назначается головной программой.

Поскольку перекрываемая программа может быть загружена в любое место (с точностью до сегментного адреса), а этот адрес определяет разработчик, то для настройки сегментной части адресных ссылок типа far загрузчику надо сообщить необходимые данные. Для этого используется блок EPB для функции EXEC с AL=3 всего из 2 слов (табл.6.3).

Таблица 6.3

Смещение Длина Содержание
    Сегментный адрес ОП, куда считывать программу
    Фактор перемещения, на который необходимо откорректировать значения сегментов

В DOS фактор перемещения равен сегментному адресу ОП, куда будет считываться программа.

Для перекрывающей программы PSP не создается и оверлей как самостоятельная программа не устанавливается. Он загружается без передачи ему управления. Этот режим требует наличия COMMAND.COM, который может быть уже перекрыт программой. Поэтому в окружении необходимо обеспечить указание правильного пути к COMMAND.COM в переменной CONSPEC.

Для загрузки оверлея необходимо:

освободить неиспользуемую память за программой;

выделить память под оверлей с помощью функции 48h int 21h;

создать EPB для AL=3, для чего в первое слово поместить адрес параграфа выделенной памяти предыдущим шагом; его же поместить и во второе слово;

загрузить оверлей с помощью функции 4Bh прерывания 21h; регистры ES:BX должны указывать на EPB, регистры DS:DX - на имя файла с программой, AL=3.

Вызов оверлея осуществляется командой call типа far обычно следующим образом:


Дата добавления: 2015-10-02; просмотров: 68 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Загрузка программ в ПЭВМ| Call dword ptr over_off

mybiblioteka.su - 2015-2024 год. (0.006 сек.)