stringtranslate.com

Superposición (programación)

Esquemático

En un sentido informático general, superposición significa "el proceso de transferir un bloque de código de programa u otros datos a la memoria principal , reemplazando lo que ya está almacenado". [1] La superposición es un método de programación que permite que los programas sean más grandes que la memoria principal de la computadora . [2] Un sistema integrado normalmente usaría superposiciones debido a la limitación de la memoria física , que es la memoria interna de un sistema en chip , y la falta de instalaciones de memoria virtual .

Uso

La construcción de un programa de superposición implica dividir manualmente un programa en bloques de código objeto autónomos llamados superposiciones o enlaces , generalmente dispuestos en una estructura de árbol . [b] Los segmentos hermanos , aquellos que están en el mismo nivel de profundidad, comparten la misma memoria, llamada región de superposición [c] o región de destino . Un administrador de superposición, ya sea parte del sistema operativo o parte del programa de superposición, carga la superposición requerida desde la memoria externa en su región de destino cuando es necesario; esto puede ser automático o mediante código explícito. A menudo, los enlazadores brindan soporte para superposiciones. [3]

Ejemplo

El siguiente ejemplo muestra las instrucciones de control que instruyen al Editor de vínculos de OS/360 a vincular un programa superpuesto que contiene una sola región, sangrada para mostrar la estructura (los nombres de los segmentos son arbitrarios):

INCLUYE SYSLIB(MOD1) INCLUYE SYSLIB(MOD2) SUPERPOSICIÓN A INCLUYE SYSLIB(MOD3) SUPERPOSICIÓN AA INCLUYE SYSLIB(MOD4) INCLUYE SYSLIB(MOD5) SUPERPOSICIÓN AB INCLUYE SYSLIB(MOD6) SUPERPOSICIÓN B INCLUYE SYSLIB(MOD7)
 +--------------+ | Segmento raíz | | MOD1, MOD2 | +--------------+ | +----------+----------+ | | +-------------+ +-------------+ | Superposición A | | Superposición B | | MOD3 | | MOD7 | +-------------+ +-------------+ | +--------+--------+ | | +-------------+ +-------------+ | Superposición AA | | Superposición AB | | MOD4, MOD5 | | MOD6 | +-------------+ +-------------+

Estas instrucciones definen un árbol que consta del segmento residente permanente, llamado raíz , y dos superposiciones A y B que se cargarán después del final de MOD2. La superposición A en sí consta de dos segmentos superpuestos, AA y AB. En el momento de la ejecución, las superposiciones A y B utilizarán las mismas ubicaciones de memoria; AA y AB utilizarán las mismas ubicaciones después del final de MOD3.

Todos los segmentos entre la raíz y un segmento de superposición dado se denominan ruta .

Aplicaciones

A partir de 2015 , la mayoría de las aplicaciones empresariales están pensadas para ejecutarse en plataformas con memoria virtual . Un desarrollador en una plataforma de este tipo puede diseñar un programa como si la restricción de memoria no existiera a menos que el conjunto de trabajo del programa superponga la memoria física disponible. Lo más importante es que el arquitecto puede centrarse en el problema que se está resolviendo sin la dificultad de diseño añadida de forzar el procesamiento en pasos restringidos por el tamaño de la superposición. Por tanto, el diseñador puede utilizar lenguajes de programación de nivel superior que no permiten al programador mucho control sobre el tamaño (por ejemplo, Java , C++ , Smalltalk ).

Aun así, las superposiciones siguen siendo útiles en los sistemas integrados. [4] Algunos procesadores de bajo coste utilizados en sistemas integrados no proporcionan una unidad de gestión de memoria (MMU). Además, muchos sistemas integrados son sistemas en tiempo real y las superposiciones proporcionan un tiempo de respuesta más determinado que la paginación . Por ejemplo, el software del sistema de aviónica primaria (PASS) del transbordador espacial utiliza superposiciones programadas. [5]

Incluso en plataformas con memoria virtual, los componentes de software como los códecs pueden estar desacoplados hasta el punto en que se pueden cargar y descargar según sea necesario .

Uso histórico

IBM introdujo el concepto de trabajo en cadena [6] en FORTRAN II . El programa tenía que llamar explícitamente a la subrutina CHAIN ​​para cargar un nuevo enlace, y el nuevo enlace reemplazaba todo el almacenamiento del enlace anterior, excepto el área COMÚN de Fortran.

IBM introdujo un manejo de superposición más general [7] en IBSYS / IBJOB , incluida una estructura de árbol y carga automática de enlaces como parte del procesamiento de CALL.

En OS/360, IBM amplió la función de superposición de IBLDR al permitir que un programa de superposición tuviera regiones de superposición independientes, cada una con su propio árbol de superposición. OS/360 también tenía un sistema de superposición más simple para rutinas SVC transitorias , utilizando áreas transitorias SVC de 1024 bytes.

En la era de los ordenadores domésticos, las superposiciones eran populares porque el sistema operativo y muchos de los sistemas informáticos en los que se ejecutaba carecían de memoria virtual y tenían muy poca RAM según los estándares actuales: el IBM PC original tenía entre 16K y 64K, según la configuración. Las superposiciones eran una técnica popular en Commodore BASIC para cargar pantallas gráficas. [2]

"Varios enlazadores DOS en la década de 1980 admitían [superposiciones] en una forma casi idéntica a la utilizada 25 años antes en los ordenadores mainframe". [4] [8] Los archivos binarios que contenían superposiciones de memoria tenían extensiones estándar de facto .OVL [8] o .OVR [9] (pero también se usaban extensiones de archivo numéricas como .000 , .001 , etc. para los archivos posteriores [10] ). Este tipo de archivo fue utilizado, entre otros, por WordStar [11] (que constaba del ejecutable principal WS.COMy los módulos de superposición WSMSGS.OVR, WSOVLY1.OVR, MAILMERGE.OVRy SPELSTAR.OVR, donde los archivos de superposición " gordos " eran incluso idénticos en binario en sus puertos para CP/M-86 y MS-DOS [12] ), dBase [ 13] y el paquete de software de automatización de oficina Enable DOS de Enable Software . Turbo Pascal de Borland [14] [15] y el compilador GFA BASIC pudieron producir archivos .OVL.

Véase también

Notas

  1. ^ Esto no tiene nada que ver con el término región en la gestión de almacenamiento MVT .
  2. ^ En OS/360 y sucesores , puede haber varias regiones [a], cada una de las cuales contiene un árbol de superposición completo.
  3. ^ La nomenclatura varía según el sistema, por ejemplo, en OS/360, la región se refiere a un árbol de superposición completo.

Referencias

  1. ^ "Diccionarios Oxford". 26 de noviembre de 2015. Archivado desde el original el 10 de julio de 2022. Consultado el 10 de julio de 2022 .
  2. ^ ab Butterfield, James "Jim" , ed. (junio de 1986). "Parte 4: Superposición". Cargar y vincular programas de Commodore. pág. 74. Archivado desde el original el 2022-07-10 . Consultado el 2022-07-10 . Esto le permite ejecutar programas que, en efecto, son mucho más grandes que la cantidad de memoria de su computadora. {{cite book}}: |magazine=ignorado ( ayuda )
  3. ^ de Levine, John R. (2000). Enlazadores y cargadores. Morgan Kaufmann Publishers . pág. 177. ISBN 1-55860-496-0Archivado desde el original el 6 de abril de 2022. Consultado el 10 de julio de 2022 .[2]
  4. ^ Consejo Nacional de Investigación (noviembre de 1993) [junio de 1993]. Una evaluación de los procesos de desarrollo de software para vuelos de transbordadores espaciales (2.ª ed.). Washington, DC, EE. UU.: National Academy of Sciences , The National Academies Press . doi :10.17226/2222. hdl :2060/19930019745. ISBN . 978-0-309-04880-4. LCCN  93-84549 . Consultado el 29 de octubre de 2012 .(208 páginas)
  5. ^ "Capítulo 12: El trabajo en cadena" (PDF) . Sistemas de programación IBM 7090/7094: programación en FORTRAN II (PDF) . Poughkeepsie, Nueva York, EE. UU.: IBM Corporation . Agosto de 1963. págs. 34-35. Formulario C28-6054-4, archivo n.º 7090-25. Archivado (PDF) desde el original el 15 de marzo de 2022 . Consultado el 10 de julio de 2022 . {{cite book}}: |work=ignorado ( ayuda ) (52 páginas)
  6. ^ Sistemas de programación IBM 7090/7094 – Procesador IBJOB – Función de superposición de IBLDR (PDF) (1.ª ed.). Poughkeepsie, Nueva York, EE. UU.: IBM Corporation . Mayo de 1963. Formulario C28-6331, número de archivo 7090-27. Archivado (PDF) desde el original el 15 de marzo de 2022. Consultado el 26 de diciembre de 2021 . {{cite book}}: |work=ignorado ( ayuda ) (8 páginas)
  7. ^ ab Elliott, John C. (5 de junio de 2012) [2 de enero de 2000]. «Formato de archivo PRL». seasip.info . Archivado desde el original el 26 de enero de 2020 . Consultado el 26 de enero de 2020 . […] Un archivo PRL es un archivo binario reubicable , utilizado por MP/M y CP/M Plus para varios módulos distintos de los archivos .COM . El formato de archivo también se utiliza para archivos FID en Amstrad PCW . Hay varios formatos de archivo que utilizan versiones de PRL: SPR (System PRL), RSP (Resident System Process). LINK-80 también puede producir archivos OVL (superposición), que tienen un encabezado PRL pero no son reubicables. Los controladores GSX están en formato PRL; también lo son las extensiones de sistema residente (.RSX). […][3]
  8. ^ Dohmen, Norberto (1990). "Platz schaffen durch Überlagern - Estructuras superpuestas en Turbo Pascal". mc (en alemán). vol. 90, núm. 12. págs. 124-130. Archivado desde el original el 4 de agosto de 2022 . Consultado el 4 de agosto de 2022 .[4]
  9. ^ Gavin, Bruce. "Crear superposiciones de programas". En Pearson, Dave (ed.). Turbo Pascal - Norton Guide. v3. pág. 149. Archivado desde el original el 2022-08-04 . Consultado el 2022-08-04 .
  10. ^ Mabbett, Alan (1985). Introducción a WordStar, MailMerge + SpellStar . Cambridge University Press . ISBN 0-521-31805-X.
  11. ^ Necasek, Michal (2018-01-30) [2018-01-28, 2018-01-26]. "WordStar Again". Museo OS/2 . Archivado desde el original el 2019-07-28 . Consultado el 2019-07-28 . […] La razón para sospechar tal diferencia es que la versión 3.2x también soportaba CP/M-86 (las superposiciones son idénticas entre DOS y CP/M-86, solo el ejecutable principal es diferente) […] los archivos .OVR son 100% idénticos entre DOS y CP/M-86, con una bandera (claramente mostrada en el manual de WordStar 3.20 ) que cambia entre ellos en tiempo de ejecución […] la interfaz del SO en WordStar es bastante estrecha y bien abstraída […] las superposiciones de WordStar 3.2x son 100% idénticas entre las versiones DOS y CP/M-86. Hay un interruptor de tiempo de ejecución que elige entre llamar a INT 21h (DOS) e INT E0h (CP/M-86). WS.COM no es lo mismo entre DOS y CP/M-86, aunque probablemente tampoco sea muy diferente. […]
  12. ^ Sidnam-Wright, Liz; Stevens, Brad, eds. (1990-07-31). "Ashton-Tate distribuye dBASE IV versión 1.1" (PDF) . Torrance, California, EE. UU.: Ashton Tate . pág. 2-2-2. Archivado desde el original (PDF) el 2017-04-04 . Consultado el 2014-02-13 . La versión 1.1 tiene un nuevo sistema de administración de memoria dinámico (dMMS) que maneja las superposiciones de manera más eficiente: el producto requiere menos memoria, lo que resulta en una mayor disponibilidad de espacio para las aplicaciones. […] Los menores requisitos de memoria del producto de solo 450K de RAM brindan un mejor soporte de red porque ya no se requiere memoria de hardware adicional para admitir redes. […] Al acelerar las áreas de dBASE IV que dependen de la superposición, el nuevo dMMS mejora el rendimiento cuando se trabaja en el Centro de control y en programas que usan menús y ventanas.(5 páginas)
  13. ^ Herschel, Rudolf; Dieterich, Ernst-Wolfgang (2000). Turbo Pascal 7.0 (en alemán) (2 ed.). R. Oldenbourg Verlag  [Delaware] . pag. 249.ISBN 3-486-25499-5.
  14. ^ Eßer, Hans-Georg (junio de 2009). "Capítulo 6. Speicherverwaltung und Dateisysteme - Parte 5: Nicht-zusammenhängende Speicherzuordnung". Betriebssysteme I (PDF) (en alemán). Múnich, Alemania: Hochschule München. Archivado (PDF) desde el original el 8 de mayo de 2022 . Consultado el 13 de febrero de 2014 .(9 páginas)

Lectura adicional

Enlaces externos