русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

ОВЕРЛЕЙНАЯ СТРУКТУРА ПРОГРАММЫ


Дата добавления: 2014-11-27; просмотров: 2536; Нарушение авторских прав


 

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

 

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

 

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

 

  M a i n  
  A  
B
C

 

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

 
 

 

 


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

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



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

1. Все оверлейные модули должны компилироваться с директивами {$O+, F+}.

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

2. В основной программе после предложения Uses следует в директивах {$O Имя_файла} перечислить имена оверлейных модулей.

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

 

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

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

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

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

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

OvrGetBuf : longint

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

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

OvrSetBuf(OvrSize:longint)

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

 

Пример.

{$O+,F+}

Program OverDemo;

Uses Overlay,Crt,Unit1,Unit2;

{$O Unit1}

{$O Unit2}

Begin

OvrInit('OverDemo.ovr');

IfOvrResult<>0 then

Begin

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

Halt

End;

Proc1;

Proc2;

End.

 

{O+,F+}

Unit Unit1;



<== предыдущая лекция | следующая лекция ==>
Вычисление по короткой схеме. | ИСПОЛЬЗОВАНИЕ СОПРОЦЕССОРА


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.003 сек.