Buscar este blog

jueves, 30 de octubre de 2014

CARGADOR

Es un programa especial, que 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 maquina, 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 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.






FUNCION 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 si 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 la 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 especifica direcciones en memoria donde cargaran 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 chocarlos en celdas sucesivas de la memoria a partir de una celda 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 simbolos externos o secciones de control completas.

También es posible cambiar referencias externas dentro del programa que se esta cargando, la mayoría de los cargadores permiten al usuario especificar alternativas para búsqueda por medio de una proposición de tipo LIBRARY.

TIPOS DE CARGADORES

·         Cargadores Iníciales: 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 asi apra 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 el mismo espacio de memoria (cada vez que se ejecuta el programa cargador), se dice que un cargador absoluto.

·         Cargadores con Reubicación: en ocasiones, un mismo programa necesita ejecutarse en diferentes posiciones de memoria. Para esto la traducciones debe estar realizada en forma adecuada, es decir, no utilizando referencias absolutas a direcciones de memoria, sino referencias relativas a una direcciones 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 maquina.

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

·         Cargadores Ligadores: conocidos también por su término ingles LINK editor o simplemente LINKER, es muy común también referirse a el por la castellanización del nombre LINCADOR. A la acción de montar se le llama asimismo LINCAR.

Montar un programa consiste en añadir al programa objeto obtenido en la traducción las rutinas externas a las que hace dichas referencias y las rutinas deben estar a su vez en lenguaje maquina 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 está 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, cargara 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 maquina el cargador bootstrap. Después de esto, el cargador se carga a si 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: 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 de cargador absoluto. El cargador relocatable es un programa mas 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, este empieza con la dirección. Las sucesivas instrucciones quedan asignadas a posiciones de memoria consecutivas. No obstante, las verdaderas posiciones de memoria en las que se está almacenando el programa.

Video Sobre Cargador: