viernes, 31 de octubre de 2014

Cargadores



 Un cargador es la parte de un sistema operativo que es responsable de cargar programas en memoria desde los ejecutables. El cargador es usualmente una parte del núcleo del sistema operativo y es cargado al iniciar el sistema y permanece en memoria hasta que el sistema es reiniciado o apagado. Algunos sistemas tienen un ligador para realizar las operaciones de enlace, y un cargador separado para manejar la relocalización y la carga.

Las funciones más importantes 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 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 específica direcciones en memoria donde se cargarán estos elementos.
Carga, que lleva el programa objeto a la memoria para su ejecución.
Relocalización, que modifica el programa objeto de forma que puede cargarse en una dirección diferente de la localidad especificada originalmente.
Ligado, que combina dos o más programas objeto independientes y proporciona la información necesaria para realizar referencias entre ellos.

Cargadores Y Ligadores

Un cargador es un programa del sistema que realiza la función de llevar el programa objeto a la memoria para su ejecución. Algunos sistemas tienen un ligador o editor de ligado que 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 y la carga. En la mayoría de los casos todos los traductores de programas 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.
El ligador realiza la operación de enlazar programas objetos independientes. Los editores de ligado pueden efectuar varias funciones ultimas ademá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 de control que suelen utilizar juntas.

  Estos pueden ser útiles 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 en complejidad y sobrecarga. La tarea primaria del enlazador es resolver referencias externas lleva acabo la siguiente etapa del proceso de traducción enlazado 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.


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 los siguientes métodos:
 
Entrada Manual
Mediante el teclado el usuario teclea el cargador BOOTSTRAP.  Después de esto, el cargador se carga así mismo en la memoria del computador.

Entrada por ROM
  Es posible tener las instrucciones de inicialización almacenados permanentemente en alguna porción de la ROM, en lugar de introducirlas manualmente por teclado o por 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.

Características Del Cargador Dependientes De La Maquina 
El cargador absoluto es simple y eficiente; sin embargo, este esquema tiene varias desventajas potenciales. Una de las más obvias es que el programador necesita especificar la dirección real en la que se cargará la memoria. Si se trata de un computador muy sencillo con poca memoria, esto no crea muchas dificultades, ya que solo hay espacio para ejecutar un programa a la vez. En máquinas más grandes y avanzadas, la situación no es tan fácil porque a menudo se quieren ejecutar a la vez varios programas independientes compartiendo la memoria.
En esta sección se consideran el diseño e implantación de un cargador más complejo. Este cargador se encarga de la relocalización y ligado del programa, además de las funciones básicas. La necesidad de relocalizar los programas es una consecuencia directa del cambio a computadores más grandes y potentes. La forma de efectuar la relocalización en un cargador también depende de las características de la máquina.

Características Del Cargador Independientes De La Maquina 
Con frecuencia se piensa que el cargado y el ligado son funciones de servicio del sistema operativo. La conexión del programador con estos servicios no es tan directa como la que tiene con, por ejemplo, el ensamblador durante el desarrollo del programa. Por tanto, la mayoría de los cargadores tienen menos características diferentes que las que se pueden encontrar en un ensamblador típico.
Búsqueda Automática en Biblioteca
En la mayoría de los casos se emplea una biblioteca estándar del sistema, pero se pueden especificar para el cargador otras bibliotecas, mediante proposiciones de control o parámetros. En algunos sistemas, esta característica se denomina llamada automática a biblioteca o búsqueda en biblioteca.
Opciones del Cargador
Muchos cargadores tienen un lenguaje especial de mandatos que se utiliza para especificar opciones. En algunos sistemas, las opciones se especifican como parte de un lenguaje de control de trabajos que procesa el sistema operativo. Cuando se usa este enfoque el sistema operativo incorpora las opciones especificadas a un bloque de control que se pone a disposición del cargador cuando se le invoca. 

No hay comentarios:

Publicar un comentario