stringtranslate.com

Carga de cadena

La carga en cadena es un método que utilizan los programas informáticos para reemplazar el programa que se está ejecutando actualmente por un programa nuevo, utilizando un área de datos común para pasar información del programa actual al nuevo. Se da en varias áreas de la informática.

La carga en cadena es similar al uso de superposiciones . Sin embargo, a diferencia de las superposiciones, la carga en cadena reemplaza el programa que se está ejecutando en ese momento en su totalidad. Las superposiciones generalmente reemplazan solo una parte del programa en ejecución. Al igual que el uso de superposiciones, el uso de la carga en cadena aumenta la carga de E/S de una aplicación.

Carga en cadena en programas de gestión de arranque

En los programas de gestión de arranque del sistema operativo , la carga en cadena se utiliza para pasar el control del gestor de arranque a un sector de arranque . El sector de arranque de destino se carga desde el disco , reemplazando el sector de arranque en memoria desde el que se inició el propio gestor de arranque y se ejecutó.

Carga en cadena en Unix

En Unix (y en sistemas operativos similares a Unix ), la llamada al sistema exec() se utiliza para realizar la carga en cadena. La imagen del programa del proceso actual se reemplaza por una imagen completamente nueva y el hilo actual comienza la ejecución de esa imagen. El área de datos comunes comprende las variables de entorno del proceso , que se conservan a lo largo de la llamada al sistema.

Carga en cadena en Linux

Además de la carga de la cadena a nivel de proceso exec(), Linux admite la llamada al sistema kexec () para reemplazar todo el núcleo del sistema operativo con una versión diferente. El nuevo núcleo se inicia como si se hubiera iniciado al encender el sistema y no se conserva ningún proceso en ejecución.

Carga en cadena en programas BASIC

En los programas BASIC , la carga en cadena es competencia de la CHAINsentencia (o, en Commodore BASIC , de la LOADsentencia), que hace que el programa actual se termine y que el programa encadenado se cargue y se invoque (con, en aquellos dialectos de BASIC que lo admiten, un parámetro opcional que especifica el número de línea desde el que debe comenzar la ejecución, en lugar del valor predeterminado de la primera línea del nuevo programa). El área de datos comunes varía según el dialecto particular de BASIC que se esté utilizando. En BBC BASIC , por ejemplo, solo se conserva un subconjunto específico de todas las variables a lo largo de una CADENA. En otros BASIC, la COMsentencia [1] se puede utilizar junto con CHAINpara especificar qué variables se conservarán como datos comunes a lo largo de una operación en cadena.

La carga en cadena permite que los programas BASIC ejecuten más código de programa del que cabe en la memoria de programa y variable disponible. Las aplicaciones escritas en BASIC pueden ser mucho más grandes que el tamaño de la memoria de trabajo, a través de un conjunto de programas cooperativos que CHAINse intercambian entre sí a medida que el flujo del programa se mueve dentro de la aplicación general.

Carga en cadena en programas FORTRAN

Muchas versiones de Fortran incluyen una declaración CALL CHAINor CALL LINKque realiza la carga en cadena, preservando el contenido del almacenamiento COMÚN . [2] Esto no es lo mismo que la LINKsubrutina no relacionada en GNU Fortran . [3]

Carga en cadena en OS/360

OS/360 y sus sucesores utilizan la XCTLmacro (para "control de transferencia") para la carga en cadena. Debido a la gestión de memoria del sistema operativo, esto puede o no resultar en el reemplazo del código del programa que realiza la llamada en la memoria.

Véase también

Referencias

  1. ^ "HP 2000/Access BASIC" (PDF) . bitsavers.trailing-edge.com . HP. págs. 11–25 . Consultado el 16 de enero de 2020 .
  2. ^ IBM Corporation (1974). Lenguaje básico FORTRAN IV IBM 1130/1800 (PDF) . pág. 14.
  3. ^ "El compilador Fortran de GNU" . Consultado el 27 de octubre de 2013 .