3. CARGADORES
La programación de sistemas se refiere
a la creación de programas cuya
finalidad es servir a otros programas.
Entre los programas que se manejan en
la programación de sistemas se
encuentran: los sistemas operativos,
los compiladores, los manejadores de
base de datos.
4. Un cargador es un programa que
coloca en la memoria para su
ejecución, el programa guardado
en
algún
dispositivo
de
almacenamiento secundario.
5. Dependiendo de la manera en que
se manejan los procesos de ligas y
carga, podemos clasificar a los
cargadores
en:
cargadores
iniciales,
absolutos,
con
reubicación y ligadores.
6. Cargadores Iniciales: son aquellos que
indican ala PC la forma de poner en
memoria
principal,
unos
datos
almacenados en un periférico de memoria
externa (cintas, discos, etc.) sirven para
cargar con
la memoria pequeños
programas que inician el funcionamiento
de la computadora.
7. Cargadores Absolutos: como ya se
menciono, el programa cargador pone en
memoria las instrucciones guardadas en
sistemas externos. Si dichas instrucciones
se almacenan siempre en el mismo espacio
de memoria (cada vez que se ejecute el
programa cargador), se dice que es un
cargador absoluto.
8. Cargadores con publicación: en ocasiones,
un mismo programa necesita ejecutarse en
diferentes posiciones de memoria. Para
esto, la introducción debe realizarse de
forma adecuada, es decir, sin emplear
referencias absolutas a direcciones de
memoria, si no referencias relativas a una
dirección especial llamada Dirección de
Reubicación.
9. El calculo de las direcciones de
reubicación las hace el mismo cargador
a medida que va cargando las
instrucciones en el espacio de memoria
que le indique al usuario o el sistema
operativo de la maquina.
10. Cargadores ligadores: conocidos
también como “Link Editor” por
su
término
en
ingles
o
simplemente “Linker”, ala acción
de motor se le llama vulgarmente
“Lindar”.
11. Montar un programa consiste en añadir al
programa objeto. Obteniendo en la
traducción las rutinas externas a las que
hace referencia dicho programa.
El ensamblador debe permitir dichas
referencias y las rutinas debe estar a su
vez en lenguaje maquina guardadas en
algún elemento accesible al montaje.
12. Generalmente dichas rutinas se
encuentran guardadas en ficheros
especiales
llamados
“Librerías”;
donde están almacenadas todas las
rutinas externas susceptibles a ser
empleados
por
los
diferentes
programas del usuario.
Allí va el programa ligador cuando
esta realizando el montaje de un
programa a buscarlas y las adjunta al
programa objeto.
13. En el proceso de carga reubicable
(relocalizable), un mismo programa puede
ejecutarse en diferentes posiciones de
memoria. Para esto, el programa objeto
debe utilizar referencias relativas a una
dirección especial llamada dirección de
reubicación.
EI cálculo de las direcciones reubicables es
realizado por el cargador a medida quo va
ubicando las instrucciones en el espacio de
memoria que le indique el sistema
operativo.
14. 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.
15. 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.
16. Este enlace se llama estático
porque se realiza antes de
ejecutar el programa.
Existe otro proceso llamado
enlace dinámico, el cual consiste
en enlazar en tiempo de
ejecución los módulos que
contienen a las subrutinas.