Elementos de la programación de sistemas

Post on 22-Jul-2015

145 views 9 download

Transcript of Elementos de la programación de sistemas

JESUS MARTINEZ FAJARDO

CARGADORES

ENSAMBLADORES

MACROPROCESADORES

SISTEMAS OPERATIVOS

COMPILADORES

CARGADORESLa programación de sistemas se refierea la creación de programas cuyafinalidad 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.

Un cargador es un programa quecoloca en la memoria para suejecución, el programa guardadoen algún dispositivo dealmacenamiento secundario.

Dependiendo de la manera en quese manejan los procesos de ligas ycarga, podemos clasificar a loscargadores en: cargadoresiniciales, absolutos, conreubicación y ligadores.

Cargadores Iniciales: son aquellos queindican ala PC la forma de poner enmemoria principal, unos datosalmacenados en un periférico de memoriaexterna (cintas, discos, etc.) sirven paracargar con la memoria pequeñosprogramas que inician el funcionamientode la computadora.

Cargadores Absolutos: como ya semenciono, el programa cargador pone enmemoria las instrucciones guardadas ensistemas externos. Si dichas instruccionesse almacenan siempre en el mismo espaciode memoria (cada vez que se ejecute elprograma cargador), se dice que es uncargador absoluto.

Cargadores con publicación: en ocasiones,un mismo programa necesita ejecutarse endiferentes posiciones de memoria. Paraesto, la introducción debe realizarse deforma adecuada, es decir, sin emplearreferencias absolutas a direcciones dememoria, si no referencias relativas a unadirección especial llamada Dirección deReubicación.

El calculo de las direcciones dereubicación las hace el mismo cargadora medida que va cargando lasinstrucciones en el espacio de memoriaque le indique al usuario o el sistemaoperativo de la maquina.

Cargadores ligadores: conocidostambién como “Link Editor” porsu término en ingles osimplemente “Linker”, ala acciónde motor se le llama vulgarmente“Lindar”.

Montar un programa consiste en añadir alprograma objeto. Obteniendo en latraducción las rutinas externas a las quehace referencia dicho programa.

El ensamblador debe permitir dichasreferencias y las rutinas debe estar a suvez en lenguaje maquina guardadas enalgún elemento accesible al montaje.

Generalmente dichas rutinas seencuentran guardadas en ficherosespeciales llamados “Librerías”;donde están almacenadas todas lasrutinas externas susceptibles a serempleados por los diferentesprogramas del usuario.

Allí va el programa ligador cuandoesta realizando el montaje de unprograma a buscarlas y las adjunta alprograma objeto.

En el proceso de carga reubicable(relocalizable), un mismo programa puedeejecutarse en diferentes posiciones dememoria. Para esto, el programa objetodebe utilizar referencias relativas a unadirección especial llamada dirección dereubicación.

EI cálculo de las direcciones reubicables esrealizado por el cargador a medida quo vaubicando las instrucciones en el espacio dememoria que le indique el sistemaoperativo.

Cuando se utilizan subrutinas en unprograma, el código ejecutable de cada unade ellas debe encontrarse en memoria altiempo de ejecución. Para esto, antes decargar un programa, debe ligarse su códigoobjeto con los códigos objeto (guardadosen uno o más archivos) de cada una de lassubrutinas invocadas por él, obteniendo asíun programa ejecutable que contiene tantoel código del módulo invocador como elcódigo de los módulos invocados.

En este punto, es posible guardar elresultado del proceso de liga en un archivoque podrá ser utilizado por un cargador, oel mismo programa ligador puede tambiénrealizar la tarea de carga. Esto último evitael tener que guardar el código ejecutable enun archivo, con lo que se ahorra espacio endisco. Este ahorro de espacio en disco sepaga con el tiempo gastado al tener queligar todos los módulos cada vez que senecesite ejecutar el programa.

Este enlace se llama estáticoporque se realiza antes deejecutar el programa.

Existe otro proceso llamadoenlace dinámico, el cual consisteen enlazar en tiempo deejecución los módulos quecontienen a las subrutinas.