Модуль Overlay

Он необходим при разработке больших программ с перекрытиями. Максимальный размер модуля не может превышать 64 кб, однако количество модулей не ограничено, что дает возможность разрабатывать очень крупные программы (до 580 кб оперативной памяти). И все же в некоторых случаях и этот объем может оказаться недостаточным. С помощью оверлея можно создавать программы практически неограниченной длины (имеется в виду длина кода программы; длина сегмента данных и размер программного стека не могут превышать 64 кб независимо от структуры программы).

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

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

Алгоритм создания оверлейных программ:

1. Выделить главную часть программы и разбить оставшуюся часть на несколько модулей.

2. В главной части программы указать с помощью директив компилятора {$O <имя>} те модули, которые будут оверлейными.

Program Over;

Uses DOS, Overlay, UnitA, UnitB;

{$O UnitA}

{$O UnitB}

{$O DOS}

Прим: из всех стандартных модулей только модуль DOS может бытьоверлейным.

3. Осуществить вызов процедуры инициализации оверлея OVRINIT перед первым обращением к оверлейному модулю.

4. В начале главной программы и каждого оверлейного модуля поместить директивы компилятора {$O+} {$F+} (разрешить создание оверлейной структуры и использовать дальнюю модель вызова), после чего откомпилировать программу на диск (Destination Disk).

Ниже приведены задания, решение которых позволит вам овладеть основными приемами работы с Турбо Паскалем.


ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: