stringtranslate.com

Цепная загрузка

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

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

Цепная загрузка в программах менеджера загрузки

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

Цепная загрузка в Unix

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

Цепная загрузка в Linux

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

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

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

Загрузка цепочки позволяет программам BASIC выполнять больше программного кода, чем может поместиться в доступной памяти программ и переменных. Таким образом, приложения, написанные на BASIC, могут быть намного больше размера рабочей памяти, с помощью набора взаимодействующих программ, которые CHAINвзаимодействуют между собой по мере перемещения потока программы в пределах всего приложения.

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

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

Загрузка цепочки в OS/360

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

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

Ссылки

  1. ^ "HP 2000/Access BASIC" (PDF) . bitsavers.trailing-edge.com . HP. стр. 11–25 . Получено 16 января 2020 г. .
  2. ^ Корпорация IBM (1974). IBM 1130/1800 Basic FORTRAN IV Language (PDF) . стр. 14.
  3. ^ "Компилятор GNU Fortran" . Получено 27 октября 2013 г.