stringtranslate.com

Carga de cadena

La carga en cadena es un método utilizado por los programas de computadora para reemplazar el programa que se está ejecutando actualmente con un programa nuevo, utilizando un área de datos común para pasar información del programa actual al nuevo programa. Ocurre 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 en su totalidad el programa que se está ejecutando actualmente. Las superposiciones generalmente reemplazan solo una parte del programa en ejecución. Al igual que el uso de superposiciones, el uso de carga en cadena aumenta la carga de E/S de una aplicación.

Carga de cadena en programas de administrador de arranque.

En los programas de administrador de arranque del sistema operativo , la carga en cadena se utiliza para pasar el control desde el administrador 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 cual se arrancó y ejecutó el administrador de arranque.

Carga de 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 con una imagen completamente nueva y el hilo actual comienza la ejecución de esa imagen. El área de datos común comprende las variables de entorno del proceso , que se conservan durante la llamada al sistema.

Carga en cadena en Linux

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

Carga de cadena en programas BASIC

En los programas BASIC , la carga en cadena es competencia de la CHAINdeclaración (o, en Commodore BASIC , la LOADdeclaración), que hace que el programa actual finalice y el programa encadenado se cargue e invoque (con, en esos dialectos de BASIC que lo admiten, un parámetro opcional que especifica el número de línea a partir del cual comenzará la ejecución, en lugar del valor predeterminado de la primera línea del nuevo programa). El área de datos común 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 en una CADENA. En otros BASIC, la COMdeclaración [1] se puede utilizar junto con CHAINpara especificar qué variables se conservarán como datos comunes en una operación en cadena.

La carga en cadena permite que los programas BÁSICOS ejecuten más código de programa del que podría caber en la memoria de programas y variables disponible. Por lo tanto, las aplicaciones escritas en BASIC podrían ser mucho más grandes que el tamaño de la memoria de trabajo, a través de un conjunto de programas cooperativos que CHAINvan y vienen entre sí a medida que el flujo del programa se mueve dentro de la aplicación general.

Carga de cadena en programas FORTRAN

Muchas versiones de Fortran incluyen una declaración CALL CHAINo CALL LINKque realiza la carga en cadena, preservando el contenido del almacenamiento COMÚN . [2] Esta no es la misma 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 la memoria del sistema operativo, esto puede resultar o no en la sustitución del código del programa que realiza la llamada en la memoria.

Ver también

Referencias

  1. ^ "HP 2000/Acceso BÁSICO" (PDF) . bitsavers.trailing-edge.com . CV. págs. 11-25 . Consultado el 16 de enero de 2020 .
  2. ^ Corporación IBM (1974). Lenguaje FORTRAN IV básico IBM 1130/1800 (PDF) . pag. 14.
  3. ^ "El compilador GNU Fortran" . Consultado el 27 de octubre de 2013 .