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 para 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 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 sentencias de control que indican al OS/360 Linkage Editor que vincule un programa superpuesto que contiene una sola región, con sangría para mostrar la estructura (los nombres de los segmentos son arbitrarios):

INCLUIR SYSLIB(MOD1) INCLUIR SYSLIB(MOD2) SUPERPOSICIÓN A INCLUIR SYSLIB(MOD3) SUPERPOSICIÓN AA INCLUIR SYSLIB(MOD4) INCLUIR SYSLIB(MOD5) SUPERPOSICIÓN AB INCLUIR SYSLIB(MOD6) SUPERPOSICIÓN B INCLUIR 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 declaraciones definen un árbol que consta del segmento residente permanente, llamado raíz , y dos superposiciones A y B que se cargarán una vez finalizado MOD2. La propia superposición A 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 superpuesto determinado 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 dicha plataforma puede diseñar un programa como si la restricción de memoria no existiera a menos que el conjunto de trabajo del programa exceda la memoria física disponible. Lo más importante es que el arquitecto puede centrarse en el problema que se resuelve sin la dificultad de diseño añadida de forzar el procesamiento en pasos limitados por el tamaño de la superposición. Por lo tanto, el diseñador puede utilizar lenguajes de programación de nivel superior que no le permiten al programador mucho control sobre el tamaño (por ejemplo, Java , C++ , Smalltalk ).

Aún así, las superposiciones siguen siendo útiles en sistemas integrados. [4] Algunos procesadores de bajo costo utilizados en sistemas integrados no proporcionan una unidad de administració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 primario (PASS) del transbordador espacial utiliza superposiciones programadas. [5]

Incluso en plataformas con memoria virtual, los componentes de software, como los códecs , pueden desacoplarse hasta el punto de poder cargarse y descargarse según sea necesario .

Uso histórico

IBM introdujo el concepto de trabajo en cadena [6] en FORTRAN II . El programa tuvo que llamar explícitamente a la subrutina CHAIN ​​para cargar un nuevo enlace, y el nuevo enlace reemplazó todo el almacenamiento del enlace antiguo 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 LLAMADA.

En OS/360, IBM amplió la función de superposición de IBLDR al permitir que un programa de superposición tenga 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 las computadoras domésticas, 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: la PC IBM 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 de DOS en la década de 1980 admitían [superposiciones] en una forma casi idéntica a la utilizada 25 años antes en las computadoras centrales". [4] [8] Los archivos binarios que contienen superposiciones de memoria tenían extensiones estándar de facto .OVL [8] o .OVR [9] (pero también usaban extensiones de archivos numéricos como .000 , .001 , etc. para archivos posteriores [10] ) . Este tipo de archivo fue utilizado, entre otros, por WordStar [11] (que consta del ejecutable principal WS.COMy los módulos de superposición WSMSGS.OVR, y , donde los archivos de superposición " gordos " eran incluso binarios idénticos en sus puertos para CP/M-86 y MS-DOS WSOVLY1.OVR. [12] ), dBase , [13] y el paquete de software de automatización de oficinas Enable DOS de Enable Software . Turbo Pascal de Borland [14] [15] y el compilador GFA BASIC pudieron producir archivos .OVL.MAILMERGE.OVRSPELSTAR.OVR

Ver 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 sus sucesores , puede haber varias regiones [a] , cada una de las cuales contiene un árbol superpuesto completo.
  3. ^ La nomenclatura varía según el sistema; por ejemplo, en la región OS/360 se refiere a un árbol de superposición completo.

Referencias

  1. ^ "Diccionarios de Oxford". 2015-11-26. 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". Cargando y vinculando programas Commodore. pag. 74. Archivado desde el original el 10 de julio de 2022 . Consultado el 10 de julio de 2022 . Esto le permite ejecutar programas que, de hecho, son mucho más grandes que la cantidad de memoria de su computadora. {{cite book}}: |magazine=ignorado ( ayuda )
  3. ^ ab Levine, John R. (2000). Enlazadores y cargadores. Editores Morgan Kaufmann . pag. 177.ISBN 1-55860-496-0. Archivado desde el original el 6 de abril de 2022 . Consultado el 10 de julio de 2022 .[2]
  4. ^ Consejo Nacional de Investigaciones (noviembre de 1993) [junio de 1993]. Una evaluación de los procesos de desarrollo de software de vuelo del transbordador espacial (2 ed.). Washington, DC, Estados Unidos: Academia Nacional de Ciencias , 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 FORTRAN II (PDF) . Poughkeepsie, Nueva York, Estados Unidos: IBM Corporation . Agosto de 1963. págs. 34-35. Formulario C28-6054-4 Expediente No. 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, Estados Unidos: IBM Corporation . Mayo de 1963. Formulario C28-6331 Expediente No. 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 (Proceso del sistema residente). 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 del 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 - Guía Norton. v3. pag. 149. Archivado desde el original el 4 de agosto de 2022 . Consultado el 4 de agosto de 2022 .
  10. ^ Mabbett, Alan (1985). Comenzando con WordStar, MailMerge + SpellStar . Prensa de la Universidad de Cambridge . ISBN 0-521-31805-X.
  11. ^ Necasek, Michal (30 de enero de 2018) [28 de enero de 2018, 26 de enero de 2018]. "WordStar otra vez". Museo OS/2 . Archivado desde el original el 28 de julio de 2019 . Consultado el 28 de julio de 2019 . […] La razón para sospechar tal diferencia es que la versión 3.2x también soporta CP/M-86 (las superposiciones son idénticas entre DOS y CP/M-86, sólo el ejecutable principal es diferente) […] los archivos .OVR son 100% idéntico entre DOS y CP/M-86, con una bandera (que se muestra claramente en el manual de WordStar 3.20 ) que cambia entre ellos en tiempo de ejecución […] la interfaz del sistema operativo en WordStar es bastante estrecha y bien abstracta […] el WordStar 3.2x Las superposiciones 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. (31 de julio de 1990). "Ashton-Tate envía dBASE IV versión 1.1" (PDF) . Torrance, California, Estados Unidos: Ashton Tate . pag. 2-2-2. Archivado desde el original (PDF) el 4 de abril de 2017 . Consultado el 13 de febrero de 2014 . La versión 1.1 tiene un nuevo Sistema de administración de memoria dinámica (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 requisitos de memoria más bajos del producto, de solo 450 KB de RAM, brindan soporte de red mejorado 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)

Otras lecturas

enlaces externos