Введение

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

Загрузка цепочки в программах менеджера загрузки

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

Загрузка цепочки в Unix

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

Загрузка цепочки в Linux

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

Загрузка цепочки в программах BASIC

В программах BASIC, загрузка цепочки является предметом инструкции CHAIN (или, в Commodore BASIC, инструкции LOAD), которая заставляет текущую программу быть завершена и цепленная программа загружена и вызвана (с, на тех диалектах BASIC, которые поддерживают его, дополнительный параметр, указывающий номер строки, с которой должно начаться выполнение, а не по умолчанию первой строки новой программы). Общая область данных варьируется в зависимости от конкретного диалекта BASIC, который используется. Например, в BBC BASIC только определенный подмножество всех переменных сохраняется в цепочке. В других BASIC-системах команду COM можно использовать в сочетании с командой CHAIN для указания переменных, которые должны сохраняться как общие данные в цепочке операций. Цепная загрузка позволяет программам BASIC выполнять больше программного кода, чем может поместиться в доступную программу и переменную память. Приложения, написанные на BASIC, могут быть намного больше, чем размер рабочей памяти, через набор сотрудничающих программ, которые CHAIN перемещаются между собой по мере движения потока программ в рамках общего приложения.

Загрузка цепочки в программах FORTRAN

Многие версии Fortran включают в себя инструкцию CALL CHAIN или CALL LINK, которая выполняет загрузку цепочки, сохраняя содержимое хранилища COMMON. Это не то же самое, что не связанная подпрограмма LINK в GNU Fortran.

Нагрузка цепи в OS/360

OS/360 и его преемники используют макро XCTL (для "контроля передачи") для загрузки цепи. Из-за управления памятью операционной системы это может привести к замене кода вызывающей программы в памяти.