SlideShare una empresa de Scribd logo
1 de 7
Descargar para leer sin conexión
CARGADORES Y EDITORES DE ENLACE

La mayor parte de los programas se componen de más de un
procedimiento.

Los   compiladores  y   ensambladores   suelen   traducir   un
procedimiento a la vez y guardan en memoria secundaria el
resultado de esta traducción. Antes de que pueda ejecutarse
el programa, todos los procedimientos traducidos deben
recuperarse y ligarse correctamente. Si no se dispone de
memoria   virtual,  el   programa   enlazado   debe   cargarse
explícitamente en memoria.

Los programas que realizan estas funciones reciben varios
nombres, como cargador (loader), cargador montado (linking
loader) y editor de enlaces (linkage editor).

La traducción completa de un programa fuente se efectúa en
dos pasos:

    Compilación o ensamblaje de los procedimientos fuente
    Encadenamiento (linking) o montaje de los módulos objeto.

Cargador:
Es un programa especial, parte del sistema operativo que
tiene como propósito colocar en la memoria las instrucciones
y datos de un programa o información codificada en lenguaje
máquina, para que entonces la computadora pueda procesarla.

Un cargador es un programa que realiza la función de carga,
pero muchos cargadores también incluyen relocalización y
ligado.

Algunos sistemas tienen un ligador para realizar las
operaciones de enlace, y un cargador separado para manejar la
relocalización y la carga. Los procesos de ensamblado y carga
están íntimamente relacionados.

Ligador:
Es un programa que enlaza todos los programas o       módulos
obteniendo lo que denominamos programa ejecutable.

Es un programa que enlaza distintos módulos o programas que
poseen subprogramas. Además incorporan las denominadas
rutinas de librerías en caso de solicitarlas el propio
programa.
La generación de un módulo ejecutable          a partir de una
colección de procedimientos traducidos         independientemente
requiere un ligador.

FUNCION DE UN CARGADOR Y UN LIGADOR

Las funciones de un cargador son:

Colocar un   programa   objeto   en   la   memoria   e   iniciar   su
ejecución.

Si tenemos un cargador que no necesita realizar las funciones
de ligado y relocalización de programas, su operación es muy
simple, pues todas las funciones se realizan en un solo paso.
Se revisa el registro de encabezamiento para comprobar se ha
presentado el programa correcto para la carga (entrando en la
memoria disponible). A medida que se lee cada registro de
texto, el código objeto que contiene pasa a la dirección de
memoria indicada. Cuando se encuentra el registro de fin, el
cargador salta a al dirección especificada para iniciar la
ejecución del programa cargado. Un programa objeto contiene
instrucciones traducidas y valores de datos del programa
fuente, y específica direcciones en memoria donde se cargarán
estos elementos.

Las funciones de un cargador son relativamente sencillas y
consisten en extraer información de algún medio exterior de
la memoria (por ejemplo: CD Discos) y chocarlo en celdas
sucesivas de la memoria a partir de una celda pre
especificada. El cargador realiza la última etapa del proceso
de traducción: cargar el programa en memoria donde puede ser
ejecutado.

Una opción típica del cargador permite la selección de
fuentes alternativas de entrada. Otros mandatos permiten al
usuario eliminar símbolos externos o secciones de control
completas.
También es posible cambiar referencias externas dentro del
programa que se está cargando, La mayoría de los cargadores
permiten al usuario especificar alternativas para búsqueda
por medio de una proposición de tipo LIBRARY.

Las funciones de un ligador:

Los editores de ligado pueden efectuar varias funciones
últimas a demás de la simple preparación de un programa
objeto para su ejecución estos también se pueden utilizar
para construir paquetes de subrutinas u otras secciones que
suelen utilizar juntas. Esto puede ser útil al tratar con
bibliotecas   de   subrutinas   que   manejan  lenguajes   de
programación de alto nivel. Comparados con los cargadores de
ligadores los editores de ligado en general tienden a ofrecer
mayor   flexibilidad   y  control   con   el  correspondiente
incremento e complejidad y sobrecarga.

La tarea principal del enlazador es resolver referencias
externas lleva a cabo la siguiente etapa del proceso de
traducción enlazando los módulos ensambladores y los acervos
para formar un programa completo. En algunos sistemas el
cargador simplemente copia el programa ejecutable a las
posiciones de memorias apropiadas.

Sus principales funciones son:

    Enlazar código intermedio compilado independientemente en
    un solo módulo de carga resolviendo las diferencias entre
    Tokens.
    Incorpora las denominadas rutinas de librerías en caso de
    solicitarlas el propio programa.
    Su función es reducir procedimientos traducidos por
    separado y enlazarlos para que se ejecuten como una
    unidad llamada programa binario ejecutable.

                TIPOS DE CARGADORES Y LIGADORES

TIPOS DE CARGADORES:

o Cargadores iniciales.- Indican a la computadora la forma de
poner, dentro de la memoria principal, unos datos que están
guardados en un periférico de memoria externa (cinta, disco,
etc.). Sirven para cargar en la memoria pequeños programas
que inician el funcionamiento de una computadora.

Algunas computadoras de carácter general no tienen en memoria
ningún programa de forma permanente y cuando se desconectan
pierden toda la información de su memoria interna. Al
volverlos a conectar no son capaces de controlar ningún
periférico (teclado, discos, etc.). Esto se hace así para que
sea el usuario el que ponga los programas que le interese
ejecutar.

o Cargadores absolutos.- Como ya se menciono el programa
cargador pone en memoria las instrucciones guardadas en
sistemas externos. Independientemente de que sea un cargador
inicial o no, si dichas instrucciones se almacenan siempre en
el mismo espacio de memoria (cada vez que se ejecuta el
programa cargador), se dice que es un cargador absoluto.

o Cargadores con reubicación.- En ocasiones, un mismo
programa necesita ejecutarse en diferentes posiciones de
memoria. Para esto la traducción debe estar realizada en
forma adecuada, es decir, no utilizando referencias absolutas
a direcciones de memoria, sino referencias relativas a una
dirección especial llamada dirección de reubicación.

El cálculo de las direcciones reubicables lo realiza el
propio cargador a medida que va guardando las instrucciones
en el espacio de memoria que le indique el usuario o el
propio sistema operativo de la máquina.

A los cargadores que permiten estas      operaciones   se   les
denominan cargadores con reubicación.

o Cargadores ligadores.- Conocidos también por su término
inglés Link editor o simplemente Linker, es muy común también
referirse a él por la castellanización del nombre inglés,
<<lincador>>. A la acción de montar se le llama asimismo
vulgarmente <<lincar>>.

Montar un programa consiste en añadir al programa objeto
obtenido en la traducción las rutinas externas a las que hace
referencia dicho programa. El ensamblador debe permitir
dichas referencias y las rutinas deben estar a su vez en
lenguaje máquina guardadas en algún elemento accesible por el
montador.   Generalmente,   dichas  rutinas   se   encuentran
guardadas en un fichero especial al que suele denominarse
librería, porque están almacenadas todas las rutinas externas
susceptibles de ser utilizadas por los diferentes programas
del usuario. Allí va el programa ligador cuando esta
realizando el montaje de un programa a buscarlas y las
adjunta al programa objeto.

CARGADORES BOOTSTRAP. El programa cargador, una vez situado
en la memoria del computador, cargará el programa de
aplicación y los datos. Pero, previamente, se ha debido
cargar el cargador en la memoria y esto se puede realizar por
uno de los métodos siguientes:
Entrada Manual: Mediante el teclado, el usuario teclea en la
máquina el cargador bootstrap. Después de esto, el cargador
se carga a sí mismo en la memoria del computador. A partir de
este momento, es el cargador el encargado de cargar el
programa de aplicación en la memoria.

Entrada por ROM: Es posible tener las instrucciones de
inicialización almacenadas permanentemente en alguna porción
de la ROM, en lugar de introducirlas manualmente por teclado
o por el panel frontal. Cuando se requiere el programa de
bootstrap, el operador simplemente dirige al computador,
mediante los conmutadores del panel, a ejecutar las
instrucciones memorizadas en ROM: Al estar el programa
almacenado en ROM se elimina también la posibilidad de
borrados accidentales.

CARGADORES ABSOLUTOS. Este es un programa que carga cada
instrucción del programa objeto en una posición fija y
preestablecida. Por tanto, cada instrucción tiene una
dirección absoluta. El cargador absoluto lee simplemente la
línea de código objeto que contiene la dirección de inicio de
las instrucciones y datos, y carga las palabras (o bytes)
sucesivas en posiciones de memoria sucesivas.

El cargador absoluto tiene un serio inconveniente cuando se
utiliza en sistemas computadores grandes.

Esto significa que los programas y datos se deben almacenar
cada vez en posiciones de memoria distintas. Si se utilizan
cargadores absolutos, el programa objeto se tendrá que
modificar para que refleje la nueva posición de inicio de
memoria. Esta es una actividad larga y sujeta a errores. En
tales situaciones, se utilizan cargadores relocatables.

Los cargadores absolutos están diseñados generalmente para
verificar cada instrucción que leen. Si se detecta una
instrucción ilegal, se interrumpe el proceso de carga.

CARGADORES RELOCATABLES. Este cargador evita el principal
inconveniente del cargador absoluto. El cargador relocatable
es un programa más sofisticado, tiene las características del
cargador absoluto, y además permite al usuario seleccionar y
especificar las posiciones de memoria en las que se debe
almacenar las palabras de instrucciones y datos.

De esta forma, el mismo programa se puede cargar en distintas
zonas de la memoria sin necesidad de reensamblarlo o
recompilarlo. Durante el ensamblado o compilación del
programa objeto, éste empieza con la dirección. Las sucesivas
instrucciones quedan asignadas a posiciones de memoria
consecutivas. No obstante, las direcciones no son absolutas,
es decir, no representan las verdaderas posiciones de memoria
en las que se está almacenando el programa.
Se trata de direcciones relativas. El programador inserta la
dirección se añade a cada una de las posiciones de memoria
asignadas en el programa, obteniéndose

Las direcciones reales de las instrucciones y datos del
programa. El cargador relocatable ofrece algunas ventajas.

TIPOS DE LIGADORES:

EDITORES DE LIGADO. La diferencia fundamental entre un editor
de ligado y un cargador ligador es: Primero se ensambla o
compila el programa fuente, produciendo un programa objeto
(que puede contener varias secciones de control diferentes).

Un cargador ligador realiza todas las operaciones de ligado y
relocalización,    incluyendo    búsqueda     automática   en
bibliotecas, si se especifica, y carga el programa ligado
directamente en la memoria para su ejecución. Por otro lado,
un editor de ligado produce una versión ligada del programa
(llamada a menudo módulo de carga o imagen ejecutable), que
se escribe un archivo o biblioteca para su ejecución
posterior. Cuando el usuario esta listo para ejecutar el
programa ligado, se puede utilizar un cargador relocalizador
simple para cargar el programa en la memoria.

El editor de ligado realiza relocalización de todas las
secciones de control relativas al inicio del programa ligado.

LIGADOR DINAMICO. El ligador dinámico ofrece algunas ventajas
sobre los otros tipos de ligado. Proporciona la posibilidad
de cargar las rutinas sólo cuando y si se necesitan. Si las
subrutinas son grandes o tienen muchas referencias externas,
se pueden conseguir ahorros considerables de tiempo y espacio
de memoria.

Cuando se utiliza el ligador dinámico, la asociación de una
dirección real y el nombre simbólico de la rutina llamada no
se hace hasta que se ejecuta la proposición llamada.

LIGADOR DEL SISTEMA VAX. El ligador VAX es un editor de
ligado que realiza las mismas funciones básicas alcanzadas
con anterioridad. La acción del ligador en la creación de las
secciones de imagen está controlada por ensamblador o
compilador por medio de una secuencia de mandatos que forman
parte del programa objeto.

El lenguaje de mandatos ofrece una gran diversidad de
posibilidades: hay más de 50 códigos de mandatos posibles. El
ligador VAX puede generar tres tipos de imágenes. Una imagen
ejecutable es aquella adecuada para la carga y ejecución; sin
embargo, el ligador no puede reprocesar este tipo de imagen.
Una imagen compartible no es ejecutable, pero el ligador
puede reprocesarla, y se puede utilizar, por ejemplo como
tapa intermedia en el ligado de un programa muy grande. Las
imágenes compartibles también hacen posibles que diferentes

Programas compartan la misma copia de ciertas instrucciones o
área de datos. El tercer tipo de imagen que puede crear el
ligado es una imagen de sistema, concebida para ser ejecutada
directamente en la máquina VAX.

EDITOR DE LIGADO DEL SISTEMA /370. El formato de los
programas objeto manejado por el editor de ligado del SISTEMA
/370 es muy parecido al analizado para SIC/XE. La técnica de
referencia a un número se usa para mejorar la eficiencia. El
programa de salida del editor de ligado se llama módulo de
carga, y puede cargarse en la memoria para su ejecución, y
suele contener suficiente información para permitir que el
editor de ligado los reprocese.

Más contenido relacionado

La actualidad más candente

Cargadores y ligadores
Cargadores y ligadoresCargadores y ligadores
Cargadores y ligadoresperlallamas
 
Entrada/Salida de Sistemas Operativos
Entrada/Salida de Sistemas OperativosEntrada/Salida de Sistemas Operativos
Entrada/Salida de Sistemas OperativosKarina Rivra
 
Protección y Seguridad de los sistemas operativos
Protección y Seguridad de los sistemas operativosProtección y Seguridad de los sistemas operativos
Protección y Seguridad de los sistemas operativosAquiles Guzman
 
GESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativosadriel91
 
Unidad 3 administracion de la memoria
Unidad 3 administracion de la memoriaUnidad 3 administracion de la memoria
Unidad 3 administracion de la memoriacaredimaria
 
Unidad 2 concepto de Programa,Proceso y Procesador
Unidad 2  concepto de Programa,Proceso y ProcesadorUnidad 2  concepto de Programa,Proceso y Procesador
Unidad 2 concepto de Programa,Proceso y ProcesadorMario Alberto Antonio Lopez
 
Sistemas operativos - Sistemas De Archivos - reporte unidad 5
Sistemas operativos - Sistemas De Archivos - reporte unidad 5Sistemas operativos - Sistemas De Archivos - reporte unidad 5
Sistemas operativos - Sistemas De Archivos - reporte unidad 5Dj Mada - Tres Valles, Veracruz
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasYESENIA CETINA
 
INTRODUCCION A LOS SISTEMAS OPERATIVOS
INTRODUCCION A LOS SISTEMAS OPERATIVOSINTRODUCCION A LOS SISTEMAS OPERATIVOS
INTRODUCCION A LOS SISTEMAS OPERATIVOSAnel Sosa
 
Mecanismo de sincronización de procesos
Mecanismo de sincronización de procesosMecanismo de sincronización de procesos
Mecanismo de sincronización de procesosjulio izaguirre
 
Mapa conceptual sobre
Mapa conceptual sobre Mapa conceptual sobre
Mapa conceptual sobre Juan Anaya
 

La actualidad más candente (20)

Cargadores y ligadores
Cargadores y ligadoresCargadores y ligadores
Cargadores y ligadores
 
Noción de archivo real y virtual
Noción de archivo real y virtual Noción de archivo real y virtual
Noción de archivo real y virtual
 
Entrada/Salida de Sistemas Operativos
Entrada/Salida de Sistemas OperativosEntrada/Salida de Sistemas Operativos
Entrada/Salida de Sistemas Operativos
 
Protección y Seguridad de los sistemas operativos
Protección y Seguridad de los sistemas operativosProtección y Seguridad de los sistemas operativos
Protección y Seguridad de los sistemas operativos
 
GESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativos
 
Sistemas Operativos Mono Proceso
Sistemas Operativos Mono ProcesoSistemas Operativos Mono Proceso
Sistemas Operativos Mono Proceso
 
Ciclo de instrucción
Ciclo de instrucciónCiclo de instrucción
Ciclo de instrucción
 
Unidad 3 administracion de la memoria
Unidad 3 administracion de la memoriaUnidad 3 administracion de la memoria
Unidad 3 administracion de la memoria
 
Unidad 2 concepto de Programa,Proceso y Procesador
Unidad 2  concepto de Programa,Proceso y ProcesadorUnidad 2  concepto de Programa,Proceso y Procesador
Unidad 2 concepto de Programa,Proceso y Procesador
 
Sistemas operativos - Sistemas De Archivos - reporte unidad 5
Sistemas operativos - Sistemas De Archivos - reporte unidad 5Sistemas operativos - Sistemas De Archivos - reporte unidad 5
Sistemas operativos - Sistemas De Archivos - reporte unidad 5
 
Tecnicas de Administracion de Memoria
Tecnicas de Administracion de MemoriaTecnicas de Administracion de Memoria
Tecnicas de Administracion de Memoria
 
Gestion memoria windows
Gestion memoria windowsGestion memoria windows
Gestion memoria windows
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadoras
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 
PAGINACION Y SEGMENTACION DE MEMORIA
PAGINACION Y SEGMENTACION DE MEMORIAPAGINACION Y SEGMENTACION DE MEMORIA
PAGINACION Y SEGMENTACION DE MEMORIA
 
INTRODUCCION A LOS SISTEMAS OPERATIVOS
INTRODUCCION A LOS SISTEMAS OPERATIVOSINTRODUCCION A LOS SISTEMAS OPERATIVOS
INTRODUCCION A LOS SISTEMAS OPERATIVOS
 
Mecanismo de sincronización de procesos
Mecanismo de sincronización de procesosMecanismo de sincronización de procesos
Mecanismo de sincronización de procesos
 
DESFRAGMENTAR UN DISCO
DESFRAGMENTAR UN DISCODESFRAGMENTAR UN DISCO
DESFRAGMENTAR UN DISCO
 
Gestion de Entrada y Salida
Gestion de Entrada y SalidaGestion de Entrada y Salida
Gestion de Entrada y Salida
 
Mapa conceptual sobre
Mapa conceptual sobre Mapa conceptual sobre
Mapa conceptual sobre
 

Destacado

Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensambladoriagardea
 
Protección de Datos: Casos reales de sanciones por incumplimiento de la ley
Protección de Datos: Casos reales de sanciones por incumplimiento de la leyProtección de Datos: Casos reales de sanciones por incumplimiento de la ley
Protección de Datos: Casos reales de sanciones por incumplimiento de la leyYTK ERT
 
Unidad 3 ensambladores
Unidad 3 ensambladoresUnidad 3 ensambladores
Unidad 3 ensambladoresGustavo Davila
 
Enlazadores cargadores-by-gadd
Enlazadores cargadores-by-gaddEnlazadores cargadores-by-gadd
Enlazadores cargadores-by-gaddGustavo Davila
 
Elementos de la programación de sistemas
Elementos de la programación de sistemasElementos de la programación de sistemas
Elementos de la programación de sistemasJesus Martinez
 
Catalogo cargador-ruedas-962h-caterpillar
Catalogo cargador-ruedas-962h-caterpillarCatalogo cargador-ruedas-962h-caterpillar
Catalogo cargador-ruedas-962h-caterpillars_seba
 
Compendio de operación de Cargador de Ruedas - Guia de oroscocat
Compendio de operación de Cargador de Ruedas  - Guia de oroscocatCompendio de operación de Cargador de Ruedas  - Guia de oroscocat
Compendio de operación de Cargador de Ruedas - Guia de oroscocatRobert Orosco
 
Curso cargador-frontal-caterpillar
Curso cargador-frontal-caterpillarCurso cargador-frontal-caterpillar
Curso cargador-frontal-caterpillarEddy Ortega
 
Enfoque de sistemas de la administración
Enfoque de sistemas de la administraciónEnfoque de sistemas de la administración
Enfoque de sistemas de la administraciónMeliita123
 

Destacado (16)

Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensamblador
 
Protección de Datos: Casos reales de sanciones por incumplimiento de la ley
Protección de Datos: Casos reales de sanciones por incumplimiento de la leyProtección de Datos: Casos reales de sanciones por incumplimiento de la ley
Protección de Datos: Casos reales de sanciones por incumplimiento de la ley
 
oswaldo
oswaldooswaldo
oswaldo
 
lenguaje ensamblado
lenguaje ensambladolenguaje ensamblado
lenguaje ensamblado
 
Ensambladores
EnsambladoresEnsambladores
Ensambladores
 
Unidad 3 ensambladores
Unidad 3 ensambladoresUnidad 3 ensambladores
Unidad 3 ensambladores
 
Enlazadores cargadores-by-gadd
Enlazadores cargadores-by-gaddEnlazadores cargadores-by-gadd
Enlazadores cargadores-by-gadd
 
Elementos de la programación de sistemas
Elementos de la programación de sistemasElementos de la programación de sistemas
Elementos de la programación de sistemas
 
Catalogo cargador-ruedas-962h-caterpillar
Catalogo cargador-ruedas-962h-caterpillarCatalogo cargador-ruedas-962h-caterpillar
Catalogo cargador-ruedas-962h-caterpillar
 
1.4 ensambladores y compiladores
1.4 ensambladores y compiladores1.4 ensambladores y compiladores
1.4 ensambladores y compiladores
 
Clasificacion de Interpretes
Clasificacion de InterpretesClasificacion de Interpretes
Clasificacion de Interpretes
 
Diapositiva cargadores
Diapositiva cargadoresDiapositiva cargadores
Diapositiva cargadores
 
Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensamblador
 
Compendio de operación de Cargador de Ruedas - Guia de oroscocat
Compendio de operación de Cargador de Ruedas  - Guia de oroscocatCompendio de operación de Cargador de Ruedas  - Guia de oroscocat
Compendio de operación de Cargador de Ruedas - Guia de oroscocat
 
Curso cargador-frontal-caterpillar
Curso cargador-frontal-caterpillarCurso cargador-frontal-caterpillar
Curso cargador-frontal-caterpillar
 
Enfoque de sistemas de la administración
Enfoque de sistemas de la administraciónEnfoque de sistemas de la administración
Enfoque de sistemas de la administración
 

Similar a Cargadores y ligadores: funciones y tipos

Compilador 22 (1)
Compilador 22 (1)Compilador 22 (1)
Compilador 22 (1)still01
 
3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...
3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...
3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...Domitho Ibarra
 
Terceraunidad 130504124039-phpapp02
Terceraunidad 130504124039-phpapp02Terceraunidad 130504124039-phpapp02
Terceraunidad 130504124039-phpapp02Maryfer' Ortega
 
3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...
3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...
3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...Kareen's Maldonado
 
3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...
3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...
3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...carolina peña
 
Tarea3 Ezamora
Tarea3 EzamoraTarea3 Ezamora
Tarea3 Ezamoraedzamo13
 
Programa, aplicaciones y sistema operativo
Programa, aplicaciones y sistema operativoPrograma, aplicaciones y sistema operativo
Programa, aplicaciones y sistema operativoJeison Bedoya
 

Similar a Cargadores y ligadores: funciones y tipos (20)

Compilador 22 (1)
Compilador 22 (1)Compilador 22 (1)
Compilador 22 (1)
 
Tercera unidad
Tercera unidadTercera unidad
Tercera unidad
 
3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...
3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...
3 unidad.Poner a punto el programa mediante el uso de un editor de lenguaje d...
 
Tercera unidad ;3
Tercera unidad ;3Tercera unidad ;3
Tercera unidad ;3
 
Relacion cargador sistema operativo
Relacion cargador sistema operativoRelacion cargador sistema operativo
Relacion cargador sistema operativo
 
Terceraunidad 130504124039-phpapp02
Terceraunidad 130504124039-phpapp02Terceraunidad 130504124039-phpapp02
Terceraunidad 130504124039-phpapp02
 
3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...
3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...
3 ponerapuntoelprogramamedianteelusodeuneditordelenguajedeprogramacinestructu...
 
3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...
3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...
3. poner a punto el programa mediante el uso de un editor de lenguaje de prog...
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Fanny3
Fanny3Fanny3
Fanny3
 
Jhonny3
Jhonny3Jhonny3
Jhonny3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad ad 3
Unidad ad 3Unidad ad 3
Unidad ad 3
 
Presentación3
Presentación3Presentación3
Presentación3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Tarea3 Ezamora
Tarea3 EzamoraTarea3 Ezamora
Tarea3 Ezamora
 
Programa, aplicaciones y sistema operativo
Programa, aplicaciones y sistema operativoPrograma, aplicaciones y sistema operativo
Programa, aplicaciones y sistema operativo
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 

Cargadores y ligadores: funciones y tipos

  • 1. CARGADORES Y EDITORES DE ENLACE La mayor parte de los programas se componen de más de un procedimiento. Los compiladores y ensambladores suelen traducir un procedimiento a la vez y guardan en memoria secundaria el resultado de esta traducción. Antes de que pueda ejecutarse el programa, todos los procedimientos traducidos deben recuperarse y ligarse correctamente. Si no se dispone de memoria virtual, el programa enlazado debe cargarse explícitamente en memoria. Los programas que realizan estas funciones reciben varios nombres, como cargador (loader), cargador montado (linking loader) y editor de enlaces (linkage editor). La traducción completa de un programa fuente se efectúa en dos pasos: Compilación o ensamblaje de los procedimientos fuente Encadenamiento (linking) o montaje de los módulos objeto. Cargador: Es un programa especial, parte del sistema operativo que tiene como propósito colocar en la memoria las instrucciones y datos de un programa o información codificada en lenguaje máquina, para que entonces la computadora pueda procesarla. Un cargador es un programa que realiza la función de carga, pero muchos cargadores también incluyen relocalización y ligado. Algunos sistemas tienen un ligador para realizar las operaciones de enlace, y un cargador separado para manejar la relocalización y la carga. Los procesos de ensamblado y carga están íntimamente relacionados. Ligador: Es un programa que enlaza todos los programas o módulos obteniendo lo que denominamos programa ejecutable. Es un programa que enlaza distintos módulos o programas que poseen subprogramas. Además incorporan las denominadas rutinas de librerías en caso de solicitarlas el propio programa.
  • 2. La generación de un módulo ejecutable a partir de una colección de procedimientos traducidos independientemente requiere un ligador. FUNCION DE UN CARGADOR Y UN LIGADOR Las funciones de un cargador son: Colocar un programa objeto en la memoria e iniciar su ejecución. Si tenemos un cargador que no necesita realizar las funciones de ligado y relocalización de programas, su operación es muy simple, pues todas las funciones se realizan en un solo paso. Se revisa el registro de encabezamiento para comprobar se ha presentado el programa correcto para la carga (entrando en la memoria disponible). A medida que se lee cada registro de texto, el código objeto que contiene pasa a la dirección de memoria indicada. Cuando se encuentra el registro de fin, el cargador salta a al dirección especificada para iniciar la ejecución del programa cargado. Un programa objeto contiene instrucciones traducidas y valores de datos del programa fuente, y específica direcciones en memoria donde se cargarán estos elementos. Las funciones de un cargador son relativamente sencillas y consisten en extraer información de algún medio exterior de la memoria (por ejemplo: CD Discos) y chocarlo en celdas sucesivas de la memoria a partir de una celda pre especificada. El cargador realiza la última etapa del proceso de traducción: cargar el programa en memoria donde puede ser ejecutado. Una opción típica del cargador permite la selección de fuentes alternativas de entrada. Otros mandatos permiten al usuario eliminar símbolos externos o secciones de control completas.
  • 3. También es posible cambiar referencias externas dentro del programa que se está cargando, La mayoría de los cargadores permiten al usuario especificar alternativas para búsqueda por medio de una proposición de tipo LIBRARY. Las funciones de un ligador: Los editores de ligado pueden efectuar varias funciones últimas a demás de la simple preparación de un programa objeto para su ejecución estos también se pueden utilizar para construir paquetes de subrutinas u otras secciones que suelen utilizar juntas. Esto puede ser útil al tratar con bibliotecas de subrutinas que manejan lenguajes de programación de alto nivel. Comparados con los cargadores de ligadores los editores de ligado en general tienden a ofrecer mayor flexibilidad y control con el correspondiente incremento e complejidad y sobrecarga. La tarea principal del enlazador es resolver referencias externas lleva a cabo la siguiente etapa del proceso de traducción enlazando los módulos ensambladores y los acervos para formar un programa completo. En algunos sistemas el cargador simplemente copia el programa ejecutable a las posiciones de memorias apropiadas. Sus principales funciones son: Enlazar código intermedio compilado independientemente en un solo módulo de carga resolviendo las diferencias entre Tokens. Incorpora las denominadas rutinas de librerías en caso de solicitarlas el propio programa. Su función es reducir procedimientos traducidos por separado y enlazarlos para que se ejecuten como una unidad llamada programa binario ejecutable. TIPOS DE CARGADORES Y LIGADORES TIPOS DE CARGADORES: o Cargadores iniciales.- Indican a la computadora la forma de poner, dentro de la memoria principal, unos datos que están guardados en un periférico de memoria externa (cinta, disco, etc.). Sirven para cargar en la memoria pequeños programas que inician el funcionamiento de una computadora. Algunas computadoras de carácter general no tienen en memoria ningún programa de forma permanente y cuando se desconectan pierden toda la información de su memoria interna. Al volverlos a conectar no son capaces de controlar ningún
  • 4. periférico (teclado, discos, etc.). Esto se hace así para que sea el usuario el que ponga los programas que le interese ejecutar. o Cargadores absolutos.- Como ya se menciono el programa cargador pone en memoria las instrucciones guardadas en sistemas externos. Independientemente de que sea un cargador inicial o no, si dichas instrucciones se almacenan siempre en el mismo espacio de memoria (cada vez que se ejecuta el programa cargador), se dice que es un cargador absoluto. o Cargadores con reubicación.- En ocasiones, un mismo programa necesita ejecutarse en diferentes posiciones de memoria. Para esto la traducción debe estar realizada en forma adecuada, es decir, no utilizando referencias absolutas a direcciones de memoria, sino referencias relativas a una dirección especial llamada dirección de reubicación. El cálculo de las direcciones reubicables lo realiza el propio cargador a medida que va guardando las instrucciones en el espacio de memoria que le indique el usuario o el propio sistema operativo de la máquina. A los cargadores que permiten estas operaciones se les denominan cargadores con reubicación. o Cargadores ligadores.- Conocidos también por su término inglés Link editor o simplemente Linker, es muy común también referirse a él por la castellanización del nombre inglés, <<lincador>>. A la acción de montar se le llama asimismo vulgarmente <<lincar>>. Montar un programa consiste en añadir al programa objeto obtenido en la traducción las rutinas externas a las que hace referencia dicho programa. El ensamblador debe permitir dichas referencias y las rutinas deben estar a su vez en lenguaje máquina guardadas en algún elemento accesible por el montador. Generalmente, dichas rutinas se encuentran guardadas en un fichero especial al que suele denominarse librería, porque están almacenadas todas las rutinas externas susceptibles de ser utilizadas por los diferentes programas del usuario. Allí va el programa ligador cuando esta realizando el montaje de un programa a buscarlas y las adjunta al programa objeto. CARGADORES BOOTSTRAP. El programa cargador, una vez situado en la memoria del computador, cargará el programa de aplicación y los datos. Pero, previamente, se ha debido cargar el cargador en la memoria y esto se puede realizar por uno de los métodos siguientes:
  • 5. Entrada Manual: Mediante el teclado, el usuario teclea en la máquina el cargador bootstrap. Después de esto, el cargador se carga a sí mismo en la memoria del computador. A partir de este momento, es el cargador el encargado de cargar el programa de aplicación en la memoria. Entrada por ROM: Es posible tener las instrucciones de inicialización almacenadas permanentemente en alguna porción de la ROM, en lugar de introducirlas manualmente por teclado o por el panel frontal. Cuando se requiere el programa de bootstrap, el operador simplemente dirige al computador, mediante los conmutadores del panel, a ejecutar las instrucciones memorizadas en ROM: Al estar el programa almacenado en ROM se elimina también la posibilidad de borrados accidentales. CARGADORES ABSOLUTOS. Este es un programa que carga cada instrucción del programa objeto en una posición fija y preestablecida. Por tanto, cada instrucción tiene una dirección absoluta. El cargador absoluto lee simplemente la línea de código objeto que contiene la dirección de inicio de las instrucciones y datos, y carga las palabras (o bytes) sucesivas en posiciones de memoria sucesivas. El cargador absoluto tiene un serio inconveniente cuando se utiliza en sistemas computadores grandes. Esto significa que los programas y datos se deben almacenar cada vez en posiciones de memoria distintas. Si se utilizan cargadores absolutos, el programa objeto se tendrá que modificar para que refleje la nueva posición de inicio de memoria. Esta es una actividad larga y sujeta a errores. En tales situaciones, se utilizan cargadores relocatables. Los cargadores absolutos están diseñados generalmente para verificar cada instrucción que leen. Si se detecta una instrucción ilegal, se interrumpe el proceso de carga. CARGADORES RELOCATABLES. Este cargador evita el principal inconveniente del cargador absoluto. El cargador relocatable es un programa más sofisticado, tiene las características del cargador absoluto, y además permite al usuario seleccionar y especificar las posiciones de memoria en las que se debe almacenar las palabras de instrucciones y datos. De esta forma, el mismo programa se puede cargar en distintas zonas de la memoria sin necesidad de reensamblarlo o recompilarlo. Durante el ensamblado o compilación del programa objeto, éste empieza con la dirección. Las sucesivas instrucciones quedan asignadas a posiciones de memoria consecutivas. No obstante, las direcciones no son absolutas, es decir, no representan las verdaderas posiciones de memoria en las que se está almacenando el programa.
  • 6. Se trata de direcciones relativas. El programador inserta la dirección se añade a cada una de las posiciones de memoria asignadas en el programa, obteniéndose Las direcciones reales de las instrucciones y datos del programa. El cargador relocatable ofrece algunas ventajas. TIPOS DE LIGADORES: EDITORES DE LIGADO. La diferencia fundamental entre un editor de ligado y un cargador ligador es: Primero se ensambla o compila el programa fuente, produciendo un programa objeto (que puede contener varias secciones de control diferentes). Un cargador ligador realiza todas las operaciones de ligado y relocalización, incluyendo búsqueda automática en bibliotecas, si se especifica, y carga el programa ligado directamente en la memoria para su ejecución. Por otro lado, un editor de ligado produce una versión ligada del programa (llamada a menudo módulo de carga o imagen ejecutable), que se escribe un archivo o biblioteca para su ejecución posterior. Cuando el usuario esta listo para ejecutar el programa ligado, se puede utilizar un cargador relocalizador simple para cargar el programa en la memoria. El editor de ligado realiza relocalización de todas las secciones de control relativas al inicio del programa ligado. LIGADOR DINAMICO. El ligador dinámico ofrece algunas ventajas sobre los otros tipos de ligado. Proporciona la posibilidad de cargar las rutinas sólo cuando y si se necesitan. Si las subrutinas son grandes o tienen muchas referencias externas, se pueden conseguir ahorros considerables de tiempo y espacio de memoria. Cuando se utiliza el ligador dinámico, la asociación de una dirección real y el nombre simbólico de la rutina llamada no se hace hasta que se ejecuta la proposición llamada. LIGADOR DEL SISTEMA VAX. El ligador VAX es un editor de ligado que realiza las mismas funciones básicas alcanzadas con anterioridad. La acción del ligador en la creación de las secciones de imagen está controlada por ensamblador o compilador por medio de una secuencia de mandatos que forman parte del programa objeto. El lenguaje de mandatos ofrece una gran diversidad de posibilidades: hay más de 50 códigos de mandatos posibles. El ligador VAX puede generar tres tipos de imágenes. Una imagen ejecutable es aquella adecuada para la carga y ejecución; sin embargo, el ligador no puede reprocesar este tipo de imagen. Una imagen compartible no es ejecutable, pero el ligador
  • 7. puede reprocesarla, y se puede utilizar, por ejemplo como tapa intermedia en el ligado de un programa muy grande. Las imágenes compartibles también hacen posibles que diferentes Programas compartan la misma copia de ciertas instrucciones o área de datos. El tercer tipo de imagen que puede crear el ligado es una imagen de sistema, concebida para ser ejecutada directamente en la máquina VAX. EDITOR DE LIGADO DEL SISTEMA /370. El formato de los programas objeto manejado por el editor de ligado del SISTEMA /370 es muy parecido al analizado para SIC/XE. La técnica de referencia a un número se usa para mejorar la eficiencia. El programa de salida del editor de ligado se llama módulo de carga, y puede cargarse en la memoria para su ejecución, y suele contener suficiente información para permitir que el editor de ligado los reprocese.