2. El primer paso para la creación de
un proceso activo consiste en
cargar un programa en memoria
principal y crear una imagen del
proceso
3. Las aplicaciones están formadas por una serie
de módulos compilados En forma de código
objeto que se montan juntos para resolver las
referencias entre los módulos, al mismo tiempo
se resuelven referencias a rutinas de biblioteca
Las rutinas de biblioteca pueden estar
incorporadas en el programa o ser referenciadas
como código compartido que debe suministrar
el S.o en el momento de la ejecución
4.
5. Necesita que el modulo de carga ocupe siempre la
misma posición de memoria principal
La asignación de direcciones especificas a
las referencias de memoria de un programa
puede ser realizada tanto por el
programador como en tiempo de
compilación ensamblaje
6. Se necesita un modulo de carga que pueda ubicarse en cualquier
posición de la memoria principal
El ensamblador o compilador no genera direcciones
reales de memoria principal ( Direcciones absolutas) sino
direcciones relativas de algún punto conocido tal como el
comienzo del programa
7. Con toda la memoria esta expresada en forma
relativa, situar los módulos en la posición
deseada se convierte en una tarea sencilla. Si
al módulo va a ser cargado comenzando con la
posición x, el cargador simplemente generará
x a cada referencia a la memoria a medida que
carga él módulo en la memoria.
8. El cálculo de direcciones dinámicas proporciona una
completa flexibilidad.
Un programa puede cargarse en cualquier región
de la Memoria Principal.
9. La ejecución de programa puede interrumpirse y el
programa ser descargado de la Memoria Principal para
ser posteriormente cargado en una posición diferente.
La dirección absoluta no se calcula hasta que se
ejecuta una instrucción
10.
11. Consiste en tomar como entrada
una colección de módulos
objetos y generar un módulo de
“carga” que:
Contenga módulos de
programas y de datos para el
cargador.
12. El montador crea un único módulo de
carga que es concatenación de todos
módulos objetos. Además cada
referencia interna de un módulo debe
cambiarse de dirección simbólica a una
posición dentro del módulo de carga
total.
13. El montaje de direcciones dependerá: Del tipo de
módulo de carga y de cuando se produzca el
montaje.
14. Si se desea un módulo de carga reubicable, el
montaje se realiza de la siguiente manera:
Cada módulo objeto compilado se crea con
referencias relativas al comienzo del módulo.
Los módulos se unen en u único módulo de
carga reubicable, junto con las referencias
relativas al origen del módulo de carga.
15. Este módulo reubicable puede usarse
como una para una carga reubicable o
para una dinámica durante la ejecución.
Los montadores que crean módulos de
carga reubicable se conocen como
editores de montajes.
16. Como en la carga es posible aplazar
algunas funciones de montajes. Se
emplea para resaltar el montaje de
algunos módulos externos hasta que él
módulo de carga se haya creado.
17. Así, él módulo de carga contiene referencias
no resueltas que pueden resolverse tanto a la
carga como en la ejecución
18. _ El módulo de carga se trae a la Memoria
Principal.
_ Cualquier referencia a un módulo externo
hace que el cargador lo busque, lo cargue y
modifique las referencias a direcciones.
19. Resulta fácil actualizar versiones del módulo
externo. En el estático cualquier cambio en el
soporte requerirá volver a montar él módulo
de aplicación por completo.
Tener el código de destino en un archivo de
montaje dinámico prepara el terreno para
compartir automáticamente código.
El Sistema Operativo puede darse cuenta de que
más de una aplicación esta empleando el mismo
código de destino.
20. Permite usarse para cargar una única copia del
código en ves de tener que cargar una copia para
cada aplicación.
Resulta fácil ampliar la funcionalidad de un S. O.
muy empleado.
Un productor puede proponer una nueva función
útil para varias aplicaciones y empaquetarla como
un módulo de montaje dinámico.
21.
22. Parte del montaje se pospone hasta el
momento de la ejecución, las referencias
externas permanecen en el programa
cargado cuando se realiza una llamada a un
módulo ausente el Sistema Operativo
localiza, carga y lo monta en él módulo
llamador.
23. La estructura del módulo es estática y permanece
sin cambios durante la ejecución del proceso y de
una ejecución a la siguiente.
Por el contrario en algunos casos no es posible
determinar antes que módulos objetos harán falta.
La naturaleza de la transacción dictamina que
módulos de programas se necesitan y estos se
cargan de la forma apropiada y se montan con el
programa principal.
24. La ventaja de emplear un montador dinámico es
que no hace falta reservar memoria para las
unidades de programa a menos que se hagan
referencias a los mismos. Esta capacidad se
emplea como soporte para los sistemas de
segmentación.