Vous êtes sur la page 1sur 21

Multiprogramacin con particiones fijas

La multiprogramacin aumenta el aprovechamiento del CPU. Lograr la multiprogramacin consiste simplemente en dividir la memoria en particiones, posiblemente desiguales. Cuando llega un trabajo, se le puede colocar en la cola de entrada de la particin pequea que puede contenerlo. Puesto que las particiones estn fijas en este esquema, cualquier espacio de una particin que un trabajo no utilice se desperdiciar.

Particiones de memoria fijas con colas de entrada individuales para cada Particin. Particiones de memoria fija con una sola cola de entrada.

La desventaja de repartir los trabajos entrantes en colas distintas se hace evidente cuando la cola de una particin grande est vaca pero la cola de una particin pequea est llena.

Colas distintas

Cada vez que se libera una particin, se selecciona el trabajo ms cercano a la cabeza de la cola que cabe en esa particin, se carga en dicha particin y ejecuta. NO es deseable desperdiciar una particin grande en un trabajo pequeo. Examinar toda la cola de entrada cada vez que se libera una particin y escoger el trabajo ms grande que cabe en ella.

Una sola cola

Tener por lo menos una particin pequea disponible. Permitir que se ejecuten los trabajos pequeos sin tener que asignar una particin grande para ello.

Utilizado por OS/360 en Macro computadoras de IBM

MFT (multiprogramacin con un numero fijo de tareas)

Sistema con Particiones fijas

Relocalizacin y proteccin

Los programas que necesitan cargarse a memoria real ya estn compilados y ligados, internamente contienen una serie de referencias a direcciones de instrucciones, rutinas y procedimientos que ya no son vlidas en el espacio de direcciones de memoria real de la seccin en la que se carga el programa. Esto es, cuando se compil el programa se definieron o resolvieron las direcciones de memoria de acuerdo a la seccin de ese momento, pero si el programa se carga en otro dia en una seccin diferente, las direcciones reales ya no coinciden.

EL PROBLEMA DE LA RELOCALIZACIN

El manejador de memoria puede solucionar el problema de dos maneras: de manera `esttica' o de manera `dinmica'. Solucin esttica: Consiste en que todas las direcciones del programa se vuelvan a recalcular al momento en que el programa se carga a memoria, esto es, prcticamente se vuelve a recompilar el programa. Solucin dinmica: Consiste en tener un registro que guarde la direccin base de la seccin que va a contener al programa. Cada vez que el programa haga una referencia a una direccin de memoria, se le suma el registro base para encontrar la direccin real.

EL PROBLEMA DE LA RELOCALIZACIN

Una vez que un programa ha sido cargado a memoria en algn segmento en particular, nada le impide al programador que intente direccionar (por error o deliberadamente) localidades de memoria menores que el lmite inferior de su programa o superiores a la direccin mayor; es decir, quiere referenciar localidades fuera de su espacio de direcciones. No es legal leer o escribir en reas de otros programas.

Cada vez que el programa hace una referencia a memoria se checa si cae en el rango de los registros (registro base y registro lmite) y si no es as se enva un mensaje de error y se aborta el programa.

EL PROBLEMA DE LA PROTECCIN

Una solucin alternativa tanto al problema de relocalizacin como al problema de proteccin consiste en equipar la mquina con dos registros especiales en hardware, llamados registros de base y de lmite. Cuando se calendariza un proceso, el registro de base se carga con la direccin del principio de su particin, y el registro de lmite se carga con la longitud de la particin.

INTERCAMBIO
Consiste en traer a la memoria cada proceso en su totalidad, ejecutarlo durante un tiempo, y despus colocarlo otra vez en el disco.

Inicialmente, slo el proceso A est en la memoria. Luego se crean o se traen del disco los procesos B y C

A termina o se intercambia al disco. Luego llega D y B sale. Por ltimo, entra E.

La asignacin de memoria cambia conforme los procesos entran en la memoria y salen de ella. Las regiones sombreadas son memoria no utilizada.

La diferencia principal entre las particiones fijas y las particiones variables es que el nmero, ubicacin y tamao de las particiones varan dinmicamente en el segundo caso conforme los procesos vienen y van, mientras que en el primer caso estn fijas.
Si el intercambio crea mltiples agujeros en la memoria, es posible combinarlos todos para formar uno grande desplazando todos los procesos hacia abajo hasta donde sea posible. Esta tcnica se conoce como compactacin de memoria, y pocas veces se practica porque requiere mucho tiempo de CPU.

ADMINISTRACIN DE MEMORIA CON MAPAS DE BITS


Cuando la memoria se asigna dinmicamente, el sistema operativo debe administrarla.

Con un mapa de bits: La memoria se divide en unidades de asignacin, de unas cuantas palabras o quiz de varios kilobytes. A cada unidad de asignacin corresponde un bit del mapa de bits, que es 0 si la unidad est libre y 1 si est ocupada (o viceversa).

(a) Una parte de la memoria con cinco procesos y tres agujeros. Las marcas indican las unidades de asignacin de memoria. Las regiones sombreadas (O en el mapa de bits) estn libres. (b) El mapa de bits correspondiente, (c) La misma informacin en forma de lista.

El tamao de la unidad de asignacin es una cuestin de diseo importante. Cuanto menor sea la unidad de asignacin, mayor ser el mapa de bits. Un mapa de bits ofrece un mtodo sencillo para contabilizar las palabras en una cantidad fija de memoria, porque el tamao del mapa de bits depende slo del tamao de la memoria y del tamao de la unidad de asignacin.