Что такое оверлейная программа

Как уже ранее отмечалось, максимальный размер модуля не может превышать 64 Кбайт, однако количество модулей в программе не ограничивается. Это дает возможность создавать программы, занимающие весь доступный объем оперативной памяти ПЭВМ. В ряде случаев для больших программ этого объема также недостаточно. Тогда программист может использовать механизм оверлеев, позволяющий создавать программы практически неограниченного объема.

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

Предположим, что программа состоит из основной части Main и трех модулей A, B и С, при этом их объем составляет соответственно и . Без использования оверлеев для размещения программы требуется байт. Структура такой программы имеет следующий вид:

QGIS — Атрибутивные и пространственные запросы, оверлейные операции, построение буферных зон

С использованием оверлеев получим такую структуру:

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

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

Управление оверлеями реализуется в Турбо Паскале с помощью стандартного модуля Overlay. При этом в программе пользователя должны быть выполнены следующие требования.

1. Все оверлейные модули должны компилироваться с директивами .

Читайте также:
Составить программу на паскале решение квадратного уравнения

Директива означает, что данный модуль может быть использован как оверлейный. В связи с этим в программе, имеющей оверлейную структуру, обычно для всех модулей устанавливают такую директиву.

2. В основной программе после предложения Uses следует в директивах перечислить имена оверлейных модулей.

3. В основной программе в предложении Uses имя стандартного модуля Overlay должно быть первым.

Инициализация оверлейного файла выполняется процедурой

OvrInit(Имя_файла:string),

в которой указывается имя файла с расширением ovr.

Код результата инициализации сохраняется в предописанной переменной OvrResult, которая при успешном завершении работы процедуры OvrInit принимает значение 0.

КАК ВКЛЮЧИТЬ ОВЕРЛЕЙ STEAM. ВАРИАНТЫ РЕШЕНИЯ ПРОБЛЕМЫ.

С помощью функции

можно получить значение размера оверлейного буфера (в байтах).

С помощью процедуры

это значение можно увеличить.

Пример.

Program OverDemo;

Uses Overlay,Crt,Unit1,Unit2;

OvrInit(‘OverDemo.ovr’);

If OvrResult<>0 then

Writeln(#7’Оверлейный файл не найден’);

Источник: studfile.net

Оверлейная структура программы

Как мы уже отмечали во вводных лекциях, в ранних ОС, в особенности – для персональных компьютеров, для пользовательского процесса были вынужденно введены очень жесткие ограничения по памяти, — например, в MS DOS – не более 640 килобайт. При таком дефиците основной памяти, если программа оказывается настолько велика, что полностью не помещается в память максимально разрешенного объема, необходимо предпринимать специальные меры при разработке программы, чтобы разбить ее на непересекающиеся группы модулей, такие. что в каждой группе модули логически взаимосвязаны и должны присутствовать в памяти одновременно, модули же разных групп не обязательно должны вместе загружаться в память. Во время исполнения такой программы должен использоваться специальный системный механизм, называемый оверлейная структура (overlay, дословно – наложение), обеспечивающий поочередную загрузку в одну и ту же область памяти то одной, то другой исполняемой группы модулей. Простая программа, которая выполняет эти действия, называется драйвер оверлея (overlay driver). Интегрированная среда разработки Турбо Паскаль обеспечивала специальные опции компилятора, которые позволяли явно указывать модули, входящие в каждый оверлей.

Читайте также:
Впр 8 класса по программе 7 класса вариант 2

Типичный для ранних компьютеров и ОС пример программы с оверлейной структурой – двухпросмотровый ассемблер. На первом просмотре он преобразует исходный ассемблерный код в промежуточное представление, которое программа второго просмотра ассемблера получает на входе. Полностью весь ассемблер (оба просмотра) в память не помещался, и пришлось применить оверлейную структуру. Данный пример иллюстрируется на рис. 15.3.

Рис. 15.3. Оверлейная структура двухпросмотрового ассемблера.

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

Самое популярное на сайте:

СИСТЕМА ОРГАНОВ ГОСУДАРСТВЕННОЙ ВЛАСТИ Система органов государственной власти включает: — Глава государства https://studopedia.ru/2_99737_overleynaya-struktura-programmi.html» target=»_blank»]studopedia.ru[/mask_link]

Большая Энциклопедия Нефти и Газа

Методика планирования оверлейной программы базируется на использовании графового представления структуры программы в виде дерева. Если каждую секцию интерпретировать вершиной графа, а ссылки из одной секции в другую — ребрами, то для данного случая получим следующее представление программы в виде дерева. [9]

При выполнении оверлейной программы оверлейный супервизор обнаружил, что 3 — е н 4 — е слова таблицы сегментов неверные. [10]

При выполнении оверлейной программы обнаружено, что адрес в таблице сегментов или таблице входов выходит за границы памяти раздела пункта задания. [11]

При выполнении оверлейной программы обнаружена запись неверной длины либо возникла постоянная ошибка ввода-вывода при загрузке сегмента из библиотеки. [12]

Ясно, что оверлейная программа должна иметь по крайней мере две ветви, иначе теряется ее смысл. [13]

При загрузке сегмента оверлейной программы обнаружена запись недопустимого типа. [14]

При загрузке сегмента оверлейной программы обнаружен недопустимый адрес. [15]

Источник: www.ngpedia.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru