Цепная загрузка - это метод, используемый компьютерными программами для замены выполняющейся в данный момент программы новой программой с использованием области общих данных для передачи информации из текущей программы в новую программу. Это происходит в нескольких областях вычислений.
Цепная загрузка аналогична использованию накладок . Однако, в отличие от оверлеев, загрузка по цепочке полностью заменяет выполняющуюся в данный момент программу. Оверлеи обычно заменяют только часть работающей программы. Как и использование оверлеев, использование цепной загрузки увеличивает нагрузку на ввод-вывод приложения.
Цепная загрузка в программах диспетчера загрузки
В программах диспетчера загрузки операционной системы загрузка по цепочке используется для передачи управления от диспетчера загрузки загрузочному сектору . Целевой загрузочный сектор загружается с диска , заменяя загрузочный сектор в памяти, из которого сам диспетчер загрузки был загружен и запущен.
Цепная загрузка в Unix
В Unix (и в Unix-подобных операционных системах ) системный вызов exec () используется для выполнения загрузки по цепочке. Программный образ текущего процесса заменяется полностью новым изображением, и текущий поток начинает выполнение этого образа. Область общих данных содержит переменные среды процесса , которые сохраняются во время системного вызова.
Цепная загрузка в Linux
В дополнение к загрузке цепочки уровней процессов exec () Linux поддерживает Системный вызов kexec () для замены всего ядра операционной системыдругой версией. Новое ядро загружается, как если бы оно было запущено при включении питания, и никакие запущенные процессы не сохраняются.
Цепная загрузка в BASIC программах
В программах BASIC загрузка цепочки является сферой действия CHAIN
оператора (или, в Commodore BASIC , LOAD
оператора), который вызывает завершение текущей программы и загрузку и запуск связанной с ней программы (с, на этих диалектах BASIC которые поддерживают его, необязательный параметр, указывающий номер строки, с которой должно начаться выполнение, а не значение по умолчанию для первой строки новой программы). Область общих данных зависит от используемого диалекта BASIC. На BBC BASIC , например, только определенное подмножество всех переменных сохраняются через ЦЕПЬ. На других BASIC COM
операторы [1] могут использоваться вместе с, CHAIN
чтобы указать, какие переменные должны быть сохранены как общие данные в цепочке операций.
Цепная загрузка позволяет программам BASIC выполнять больше программного кода, чем может поместиться в доступную память программ и переменных. Таким образом, приложения, написанные на BASIC, могут быть намного больше, чем размер рабочей памяти, за счет набора взаимодействующих программ, которые CHAIN
перемещаются между собой по мере того, как поток программы перемещается в рамках всего приложения.
Цепная загрузка в программах FORTRAN
Многие версии Fortran включают CALL LINK
оператор, который выполняет загрузку цепочки, сохраняя содержимое ОБЩЕГО хранилища . [2] Это не то же самое, что несвязанная LINK
подпрограмма в GNU Fortran . [3]
Цепная загрузка в OS / 360
OS / 360 и последующие используют XCTL
макрос (для «управления передачей») для загрузки цепочки. Из-за управления памятью операционной системы это может привести или не привести к замене кода вызывающей программы в памяти.
Смотрите также
- CHAIN (директива CONFIG.SYS) (цепочка выполнения нескольких файлов CONFIG.SYS в DR-DOS)
Рекомендации
- ^ "HP 2000 / Access BASIC" (PDF) . bitsavers.trailing-edge.com . HP. п. 11-25 . Проверено 16 января 2020 года .
- ^ Корпорация IBM (1974 г.). Базовый язык FORTRAN IV IBM 1130/1800 (PDF) . п. 14.
- ^ "Компилятор GNU Fortran" . Проверено 27 октября 2013 года .
- «цепная загрузка» . Руководство по GNU GRUB .
- Орландо Ли Стивенсон (декабрь 1985 г.). «Объединение программ Commodore» . ВЫЧИТАЙТЕ! (67): 114.
- Раймонд, Эрик Стивен. «Мультипрограммирование: Таксономия методов IPC Unix: оболочки и цепочки Бернштейна» . Искусство программирования Unix .