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