viernes, 30 de octubre de 2009

Cuestionario de Cargadores y Ligadores

Define a un cargador.
Que es un ligador?
Cual es su función de un cargador y un ligador?
Menciona y define al menos 4 tipos de cargadores y 4 tipos de ligadores.
Explica el proceso de carga.
Cuales son las razones para dividir un programa en subprogramas?
Escribe una breve conclusión.

13 comentarios:

Unknown dijo...

bueno es interesante saber como funcionan los sistemas operativos sus ligadores y cargadores pero para que me sirve o como es posible sacarles provecho o en que manera puedo modificarlos

j053 dijo...

yo no se nada............

o al menos no lo entiendo

j053 dijo...

bueno esto es lo que logre entender

un cargador es la parte de un sistema operativo que es responsable de cargar programas en memoria desde los ejecutables (por ejemplo, archivos ejecutables)
es un programa del sistema que realiza la función de llevar el programa objeto a la memoria para su ejecución

y un ligador combina dos o más programas objeto independientes y proporciona la información necesaria para realizar referencias entre ellos
realiza una busqueda en lo que se podria llamar biblioteca y mediante varios segmentos de bits se identifica la referencia y se produce el enlace

pero no se si estoy bien

Unknown dijo...

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.
Las funciones de un cargador son:
Colocar un programa objeto en la memoria e iniciar su ejecución.


Aurelio
José Luis

Unknown dijo...

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.
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.
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 ele mismo espacio de memoria (cada vez que se ejecuta el programa cargador), se dice que es un cargador absoluto.
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.

Unknown dijo...

ES LO QUE HICIMOS AURELIO Y UN SERVIDOR JOSE LUIS

Unknown dijo...

a que ora nos vemos para la carne asada

Unknown dijo...

carne asada despues de nadia

german dijo...

CARGADORES Y LIGADORES
Un programa objeto contiene instrucciones traducidas y valores de datos del programa fuente, y especifica direcciones en memoria donde se cargarán estos elementos.
Un cargador es un programa del sistema que realiza la función de carga (llevar el programa objeto a la memoria para su ejecución). Algunos sistemas tienen un ligador o editor de ligado (combina dos o más programas objeto independientes y proporciona la información necesaria para realizar referencias entre ellos) para realizar las operaciones de enlace, y un cargador separado para manejar la relocalización (modificar el programa objeto de forma que puede cargarse en una dirección diferente de la localidad especificada originalmente) y la carga. En la mayoría de los casos todos los traductores de programas (esto es, ensambladores y compiladores) de un sistema en particular producen programas objeto en el mismo formato, de esta forma puede usarse el cargador o ligador del sistema con independencia del lenguaje de programación fuente original.
Ligado Dinámico
En esta sección se analiza un esquema que pospone la función de ligado hasta el momento de la ejecución: una subrutina se carga y liga al resto del programa al llamarla por primera vez. Este tipo de función se suele denominar ligado dinámico, cargado dinámico o carga por llamada. El ligado dinámico proporciona la posibilidad de cargar las rutinas sólo cuando y si se necesitan, también evita la necesidad de cargar la biblioteca completa para cada ejecución. Para realizar la carga y ligado de una subrutina llamada se pueden utilizar varios mecanismos distintos. En lugar de ejecutar una instrucción JSUB que hace referencia
a un símbolo externo, el programa hace una solicitud de servicio de carga y llamada al sistema operativo. El parámetro de esta solicitud es el nombre simbólico de la rutina llamada. [Véase fig. 3.17(a)] El sistema operativo examina sus tablas internas para determinar si la rutina ya se ha cargado o no; en caso necesario, la rutina se carga desde la biblioteca de un usuario o desde el sistema especificado, como se ilustra en la figura 3.17(b). Entonces el control pasa del sistema operativo a la rutina llamada [Fig. 3.17(c)]. Cuando se completa el procesamiento de la subrutina llamada, vuelve a quien la llamó. Entones, el sistema operativo devuelve el control al programa que hizo la solicitud; este proceso se ilustra en la fig. 3.17(d).

es del barny y mio

ches007 dijo...

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.
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.
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.
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.
Búsqueda por medio de una proposición de tipo LIBRARY.

ches007 dijo...

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.
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:
*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.
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.
*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 ele mismo espacio de memoria (cada vez que se ejecuta el programa cargador), se dice que es un cargador absoluto.
*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.
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.

ches007 dijo...

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

ches007 dijo...

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
Los cargadores 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.
La carga absoluta necesita que el modulo de carga ocupe siempre la misma posición de memoria principal. Así pues, todas las referencias del modulo de carga para el cargador deben ser direcciones especificas o absolutas en memoria principal.
La asignación de direcciones específica a la referencia de memoria de un programa puede ser realizada tanto por el programador en tiempo de compilación o ensamblaje.
Con este método se tienen varias desventajas las cuales son:
*Todos los programadores tendrán que conocer la estrategia de asignación deseada para situar los módulos en memoria principal.
*Si se hace alguna modificación en el programa que se suponga inserciones o borrados en el cuerpo modulo tendrán que cambiarse las direcciones por consiguiente es expresar simbólicamente y que se resuelvan en el momento de la compilación o ensamblaje.
LIGADURA DE SUBRUTINAS
El enlace de una subrutina es la estructura con que se comparte la información entere el involucrado. El involucrado proporciona la dirección de retorno al involucrado como parte del enlace de subrutina .El involucrado establece lo que resta del enlacen de subrutina en el programa el cual puede establecer estar vació.
Ligar un programa consiste en añadir al programa objeto u programa ejecutable .El ensamblador debe permitir dichas referencias y las rutinas deben esta a su vez en lenguaje maquina guardadas en alguna elemento accesible por el montador .Dichas subrutinas se encuentran guardadas en algún elemento accesible por el que se suele denominarse librería porque ahí están almacenados todas las rutinas externas susceptibles de ser utilizadas por los diferentes programas del usuario ahí va el programa ligado cuando esta realizando el montaje de un programa a buscarlas y las adjunta sal programa objeto as esto a este proceso se le llama ligadura de rutinas y subrutinas.
Los siguientes puntos son razones para un programa en subprogramas:
*Vincular entre lenguajes es decir combinar el poder computacional de un lenguaje de alto nivel con el eficiente procesamiento del lenguaje ensamblador.
*Facilitar el desarrollo de proyectos largos en los cuales equipos diferentes proceden sus módulos separadamente.
*Incrustar partes de un programa durante su ejecución a causa del gran tamaño del programa.
Cuando se utilizan subrutinas en unos programas, 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 de cada una de las subrutinas involucradas por el obtenido así por un programa ejecutable que tiene tanto el código del modulo involucrado como el código de los módulos involucrados.
CONCLUSION
Podemos observar que el cargador frecuentemente se lleva de la mano con el ligador, pero podemos observar que pueden ser indepedientes entre si mismos, ya que los S. O. pueden ser muy maneables para el usuario, pero pueden ser muy fijos para las plataformas donde se utilicen.