Оверлей (программирование) - Overlay (programming)

В общем вычислительном смысле наложение означает "процесс передачи блокировать программного кода или других данных в основная память, заменяя то, что уже хранится ".[1] Наложение - это программирование метод, который позволяет программам быть больше, чем компьютер основная память.[2] An Встроенная система обычно используют оверлеи из-за ограничений физическая память, который внутренняя память для система на кристалле, и отсутствие виртуальная память удобства.

использование

Построение оверлейной программы включает ручное разделение программы на автономные объектный код блоки называются накладки выложен в древовидная структура. Брат или сестра сегменты, находящиеся на одном уровне глубины, используют одну и ту же память, называемую область наложения или же регион назначения. Диспетчер наложений, либо часть Операционная система или часть программы оверлея, загружает требуемый оверлей из внешняя память в регион назначения, когда это необходимо. Часто линкеры обеспечить поддержку оверлеев.[3]

Пример

В следующем примере показаны управляющие операторы, которые инструктируют OS / 360 Редактор связей для связывания оверлейной программы с отступом для отображения структуры (имена сегментов произвольные):

 ВКЛЮЧИТЬ SYSLIB (MOD1) ВКЛЮЧИТЬ SYSLIB (MOD2) НАЛОЖЕНИЕ A ВКЛЮЧИТЬ SYSLIB (MOD3) НАЛОЖЕНИЕ AA ВКЛЮЧИТЬ SYSLIB (MOD4) ВКЛЮЧИТЬ SYSLIB (MOD5) НАЛОЖЕНИЕ AB ВКЛЮЧИТЬ SYSLIB (MOD6) НАЛОЖЕНИЕ SYSLIB (MOD6)
                       + -------------- + | Корневой сегмент | | MOD1, MOD2 | + -------------- + | + ---------- + ---------- + | | + ------------- + + ------------- + | Накладка A | | Накладка B | | MOD3 | | MOD7 | + ------------- + + ------------- + | + -------- + -------- + | | + ------------- + + ------------- + | Накладка AA | | Накладка AB | | MOD4, MOD5 | | MOD6 | + ------------- + + ------------- +

Эти операторы определяют дерево, состоящее из постоянно резидентного сегмента, называемого корень, и две оверлеи A и B, которые будут загружены после окончания MOD2. Само наложение A состоит из двух сегментов наложения, AA и AB. Во время выполнения оверлеи A и B будут использовать одни и те же ячейки памяти; AA и AB будут использовать одни и те же локации после окончания MOD3.

Все сегменты между корнем и данным сегментом наложения называются дорожка.

Приложения

По состоянию на 2015 год, большинство бизнес-приложений предназначены для работы на платформах с виртуальная память. Разработчик на такой платформе может разработать программу так, как будто ограничение памяти не существует, если только программа не рабочий набор превышает доступную физическую память. Что наиболее важно, архитектор может сосредоточиться на решаемой проблеме без дополнительных трудностей проектирования, связанных с форсированием обработки на этапах, ограниченных размером наложения. Таким образом, разработчик может использовать языки программирования более высокого уровня, которые не позволяют программисту сильно контролировать размер (например, Ява, C ++, Болтовня ).

Тем не менее, оверлеи остаются полезными во встроенных системах.[4] Некоторые недорогие процессоры, используемые в встроенные системы не предоставлять блок управления памятью (MMU). Кроме того, многие встроенные системы в реальном времени системы и оверлеи обеспечивают более точное время отклика, чем пейджинг. Например, Космический шатл Программное обеспечение основной авионики (PASS) использует запрограммированные наложения.[5]

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

Историческое использование

в домашний компьютер Наложения эпохи были популярны, потому что операционная система и многие компьютерные системы, на которых она работала, не обладали виртуальной памятью и имели очень мало оперативной памяти по текущим стандартам: оригинал IBM PC было от 16К до 64К, в зависимости от конфигурации. Наложения были популярной техникой в Commodore BASIC для загрузки графических экранов. Чтобы определить, когда наложение уже было загружено, переменная флага может быть использован.[2]

«Некоторые компоновщики DOS в 1980-х поддерживали [наложения] в форме, почти идентичной той, которая использовалась 25 годами ранее на мэйнфреймах».[4] Двоичные файлы содержащие оверлеи памяти имели стандартное расширение де-факто, .OVL. Этот тип файлов использовался, среди прочего, WordStar, dBase, а Давать возможность Программный пакет автоматизации офиса DOS от Включить Software, Inc.. В GFA BASIC компилятор мог создавать файлы .OVL.

Смотрите также

Рекомендации

  1. ^ «Оксфордские словари». 2015-11-26.
  2. ^ а б Баттерфилд, Джим (июнь 1986). «Часть 4: Наложение». Загрузка и связывание программ Commodore. Вычислить!. п. 74. Это позволяет запускать программы, размер которых в действительности намного превышает объем памяти вашего компьютера.
  3. ^ а б Левин, Джон Р. (2000). Линкеры и загрузчики. Издательство Morgan Kaufmann. п. 177. ISBN  1-55860-496-0. [1]
  4. ^ "Оценка процессов разработки программного обеспечения для полетов космических шаттлов". Получено 2012-10-29.

внешняя ссылка