martes, 18 de mayo de 2010

LIGADORES Y CARGADORES

1.-¿Que son los ligadores?

Es un programa que enlaza todos los programas o módulos obteniendo lo que denominamos programa ejecutable. También 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.- ¿Cuales son las principales funciones de un ligador?

*Enlazar código intermedio compilado independientemente en un solo módulo de carga resolviendo las diferencias entreTokens.

*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 unidad llamada programa binario ejecutable


3.-¿Cuales son los tipos de ligadores?

EDITORES DE LIGADO. 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, y carga el programa ligado directamente en la memoria para su ejecución. 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. El editor de ligado realiza una ubicación de todas las secciones de control relativas al inicio del programa ligado.

LIGADOR DINAMICO. Ofrece algunas ventajas sobre los otros tipos de ligado. Da 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.

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 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

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.

EL PROCESO DE CARGA ABSOLUTA. Existen en sistemas de los que los compiladores generan código absoluto (no relocalizables).De esta forma se obliga a que el programa se obliga a cargar las mismas posiciones son relativamente pero no permiten tener multiprogramación.



4.-¿Cuales son los ligadores estáticos?

Cuando se utilizan subrutinas en un programa, el código ejecutable de cada una de ellas debe encontrarse en memoria al tiempo de ejecución. Para esto, antes de cargar un programa, debe ligarse su código objeto con los códigos objeto (guardados en uno o más archivos) de cada una de las subrutinas invocadas por él, obteniendo así un programa ejecutable que contiene tanto el código del módulo invocador como el código de los módulos invocados. En este punto, es posible guardar el resultado del proceso de liga en un archivo que podrá ser utilizado por un cargador, o el mismo programa ligador puede también realizar la tarea de carga. Esto último evita el tener que guardar el código ejecutable en un archivo, con lo que se ahorra espacio en disco. Este ahorro de espacio en disco se paga con el tiempo gastado al tener que ligar todos los módulos cada vez que se necesite ejecutar el programa.


5.-¿Cuales son los ligadores dinámicos?

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. Cualquier ejecución un programa usa sólo pocas de una gran cantidad de subrutinas posibles, pero el número exacto de rutinas necesarias no puede predecirse hasta que el programa examina su entrada. Un programa que permita al usuario llamar interactivamente a cualquiera de las subrutinas de una gran biblioteca matemática y estadística.


6.-¿Que son los ligadores de bibliotecas de códigos de objetos?

Podemos encontrar dos tipos que son:

*Ligadores Estáticos

* Ligadores Dinámicos


7.-¿Que es un cargador?

Es parte del sistema operativo que tiene como propósito colocar en la memoria las instrucciones y datos de un programa o información modificada 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.


8.-¿Cuales son las funciones de un cargador? *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.

*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.

9.-¿Tipos de cargadores?

*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.).

• Cargadores absolutos.- Como ya se menciono el programa cargador pone en memoria las instrucciones guardadas en sistemas externos. Si estas instrucciones se almacenan siempre en ele mismo espacio de memoria (cada vez que se ejecuta el programa cargador), se dice que es un cargador absoluto.

• Cargadores con reubicación.- Un programa necesita ejecutarse en diferentes posiciones de memoria.

• 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».

*CARGADORES BOOTSTRAP. El programa cargador, una vez situado en la memoria del computador, cargará el programa de aplicación y los datos.

*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.

*CARGADORES ABSOLUTOS. Este es un programa que carga cada instrucción del programa objeto en una posición fija y preestablecida. 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.

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.


10.-¿Cuales son los cargadores de carga absoluta y relocalisable?

Los programas se deben ubicar en la memoria principal. Una tarea muy importante es asociar instrucciones y datos con localidades específicas de memoria. El trabajo de realizar está asociación se deja algunas veces al usuario, otras al traductor, otras al programa llamado cargador y otras más al sistema operativo. La asociación de instrucciones con ciertas localidades de memoria se conoce como ligamiento. Dentro de la programación el lenguaje máquina, el ligamiento y los sistemas de memoria virtual actuales lo realizan de manera dinámica mientras se ejecuta el programa. El retraso del ligamiento aumenta la flexibilidad para el usuario y el sistema, pero los traductores, ligadores y los sistemas operativos resultan más complejos. Un cargador es un programa que coloca las instrucciones de un programa y sus datos en memoria principal.

Un cargador absoluto coloca las instrucciones y los datos en las localidades precisas indicadas por el programa en lenguaje de máquina.

El proceso de carga absoluta consiste en que con la máquina vacía ó inactiva no hay necesidad de hacer relocalización de programas tan solo se puede especificar la dirección absoluta del programa que se cargue en primer lugar. En la mayoría de los casos este programa es el sistema operativo que ocupa un lugar predefinido en la memoria. Esto significa que se necesitan algunos medios para realizar las funciones de el cargador absoluto. Una opción es que el operador introduzca en la memoria el código objeto de un cargador absoluto, utilizando los interruptores en la consola del computador. Algunos computadores requerían que el operador hiciera exactamente eso. Sin embargo este proceso es demasiado incomodo y propenso a errores para ser una buena solución del problema.

En la relocalización se establece la correspondencia entre las direcciones usadas en el programa y direcciones físicas cada vez que se utilizan durante la ejecución del programa. Las direcciones lógicas generadas por el ensamblador y el enlazador no se alteran durante la carga. Comenzaremos por ver un sencillo método en el cuál el programa se carga en posiciones contiguas de la memoria; es decir el programa no está disperso por la memoria. En la siguiente figura se presenta un cargador sencillo que puede usarse con la relocalización dinámica. En este caso el cargador lee encabezado del archivo ejecutable y determina la cantidad de espacio necesaria para el programa. Después asigna espacio suficiente para el programa y copia el archivo ejecutable a memoria. Cuando se carga el programa en la memoria, el cargador establece la correspondencia necesaria para el programa, pasando la dirección de carga y el tamaño v del programa a una rutina llamada establecer-correspondencia. Al leer este código observe que la función de carga devuelve un entero sin signo en lugar de un apuntador. Esto refleja el hecho de que la dirección inicial es una dirección lógica y física.

11.-¿Cuales son los cargadores estadios y dinámicos?

El cargador dinámico se utiliza para cargar dinámicamente bibliotecas compartidas durante el inicio ejecutable. Un cargador dinámico es útil cuando no es posible asignar en memoria un programa completo, dicho cargador se basa en el binder para operar de esta forma. Cada estructura se coloca dinámicamente en memoria. En este esquema cada módulo se va intercalando en memoria conforme se requiere, ese es el concepto de cargador dinámico.

12.-¿Que entiendes por paso del control al sistema operativo?

El sistema operativo es el programa o conjunto de programas (o software) más importante de una computadora. Para que funcionen los otros programas, cada PC de uso general debe tener un sistema operativo. Los sistemas operativos realizan tareas básicas, tales como reconocimiento de la conexión del teclado, enviar la información a la pantalla, realizar el seguimiento de los archivos y carpetas en el disco, y controlar los dispositivos periféricos como impresoras, escáner, etc.


No hay comentarios:

Publicar un comentario