TURBO PASCAL

Новости

Программы   

Turbo Pascal 

Игры

Документация   

Странности

FAQ

Ссылки

Форум

Гостевая книга

Рассылка

Благодарности

Об авторе

 

 

Глава 20. Использование оверлеев 

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

             Оверлеи полезны только в программах  DOS  реального  режима.
        Поскольку для программ  Windows памятью управляет сама Windows, а
        для программ защищенного режима - администратор этапа  выполнения
        (RTM.EXE), эти  средства включают в себя полный механизм обслужи-
        вания оверлеев,  и в программах Windows и программах  защищенного
        режима необходимость использования оверлеев отпадает.

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

             Borland Pascal управляет оверлеями на уровне модулей,  кото-
        рые являются наименьшей частью программы, образующей оверлей. При
        компиляции   программы,  имеющей  оверлейную  структуру,  Borland
        Pascal генерирует наряду с выполняемым файлом (который имеет рас-
        ширение  .EXE) оверлейный файл (имеющий расширение .OVR).  Файл с
        расширением .EXE содержит статические (не оверлейные) части прог-
        раммы,  а файл с расширением .OVR содержит все оверлейные модули,
        которые при выполнении программы будут подкачиваться в память или
        выводиться из нее на диск.

             За исключением нескольких правил,  касающихся его программи-
        рования,  оверлейный модуль полностью идентичен неоверлейному мо-
        дулю. Фактически, если вы соблюдаете эти правила, у вас нет необ-
        ходимости  перекомпилировать  модуль,  чтобы  образовать  из него
        оверлей. Решение о том, будет модуль оверлейным или нет, принима-
        ется программой, которая использует данный модуль.

            При загрузке  оверлеев  в  память они помещаются в оверлейный
        буфер, который размещается в памяти между сегментом стека и дина-
        мически распределяемой областью памяти. По умолчанию для оверлей-
        ного буфера выбирается минимальный возможный размер,  но во время
        выполнения  программы  его размер может быть легко увеличен путем
        выделения дополнительной области памяти из динамически  распреде-
        ляемой области. Аналогично сегменту данных и минимальному размеру
        динамически распределяемой области, оверлейный буфер принятого по
        умолчанию размера выделяется при загрузке файла .EXE. При отсутс-
        твии памяти необходимого объема модулем Dos  или  интегрированной
        программной средой  IDE  будет  выводиться  сообщение  об  ошибке
        (Program  too  big  to fit in memory - "Программа слишком велика,
        чтобы разместиться в памяти")  или  (Not  enough  memory  to  run
        program - "Для запуска программы не хватает памяти").
             Одной из очень  важных  возможностей  подсистемы  управления
        оверлеями  является  возможность  при наличии достаточного прост-
        ранства загружать  оверлейный  файл в дополнительную память.  Для
        этой цели в Borland Pascal поддерживается средство расширения па-
        мяти  EMS  (Lotus/Intel/Microsoft Expanded Memory Specification).
        При размещении оверлейного файла в  памяти  EMS  все  последующие
        загрузки оверлеев сводятся к быстрой передаче информации из памя-
        ти в память.

Содержание

На первую страницу

Rambler's Top100 Rambler's Top100
PROext: Top 1000

(с)Все права защищены

По всем интересующим вопросам прошу писать на электронный адрес

Hosted by uCoz