Está en la página 1de 8

MEMORIA REAL Definicin La memoria real o principal es en donde son ejecutados los programas y procesos de una computadora y es el espacio

real que existe en memoria para que se ejecuten los procesos. Por lo general esta memoria es de mayor costo que la memoria secundaria, pero el acceso a la informacin contenida en ella es de ms rpido acceso. Solo la memoria cache es ms rpida que la principal, pero su costo es a su vez mayor.

Monoprogramacin sin intercambio (paginacin) El espacio de direcciones virtuales se divide en pginas del mismo tamao. La memoria principal se divide tambin en marcos o pginas fsicas del mismo tamao. Estos marcos son compartidos entre los distintos procesos que haya en el sistema, de forma que en cualquier momento un proceso dado tendr unas cuantas pginas residentes en la memoria principal (sus pginas activas) y el resto en la memoria secundaria (sus pginas inactivas). El mecanismo de paginacin cumple dos funciones: Llevar a cabo la transformacin de una direccin virtual a fsica, o sea, la determinacin de la pgina a la que corresponde una determinada direccin de un programa, as como del marco, si lo hay, que ocupa esta pgina;

Transferir, cuando haga falta, pginas de la memoria secundaria a la memoria principal, y de la memoria principal a la memoria secundaria cuando ya no sean necesarias.

Cuando solo se tiene un proceso que ocupe la memoria a la vez, el esquema de la administracin de la memoria es el ms sencillo que hay. Sin embargo, ste mtodo ya no tiene aplicacin en la actualidad, ya que era visto en las computadoras con sistemas operativos de un solo usuario y una sola tarea. El usuario introduca su disco a la computadora (por lo general, la mquina no contaba con disco duro) y ejecutaba su aplicacin, la cual acaparaba toda la mquina.

Ejemplos de distribucin de la memoria principal con un sistema operativo y un solo proceso de usuario

Ejemplo El ejemplo ms claro de este esquema es el que podemos ver en el sistema operativo MS-DOS, en que el usuario escribe un comando al sistema y al ejecutarse el sistema operativo lo carga a memoria desde el disco y realiza sus funciones. Cuando el proceso termina la memoria es liberada y le muestra al usuario el indicador de comandos (prompt) en la pantalla.

Multiprogramacin y uso de memoria Esta organizacin facilita la programacin de una aplicacin al dividirla en dos o ms procesos. Adems ofrece la capacidad de tener ms de un proceso a la vez en memoria as puede ofrecer servicios a varios usuarios a la vez.

El esquema de multiprogramacin incrementa el aprovechamiento del CPU, dado que a diferencia de la monoprogramacin en donde solo un proceso reside en memoria a la vez limitando el uso del procesador a las llamadas que requiera dicho proceso, desperdiciando un promedio del 80% del tiempo del procesador. En cambio la multiprogramacin, al tener varios procesos en la memoria principal y dividindose el tiempo de uso del procesador, logra reducir drsticamente el desperdicio del procesador.

Asignacin de particiones inciales en la multiprogramacin. CON INTERCAMBIO Multiprogramacin con particiones variables El sistema operativo lleva una tabla indicando cules partes de la memoria estn disponibles y cules estn ocupadas. Inicialmente, toda la memoria est disponible para los procesos de

usuario y es considerado como un gran bloque o hueco nico de memoria. Cuando llega un proceso que necesita memoria, buscamos un hueco lo suficientemente grande para el proceso. Si encontramos uno, se asigna nicamente el espacio requerido, manteniendo el resto disponible para futuros procesos que requieran de espacio.

EJEMPLO

Compactacin de memoria Cuando un proceso llega y necesita memoria, el sistema operativo busca en la tabla de huecos alguno lo suficientemente grande para el proceso. Si el hueco es muy grande, lo parte en dos. Una parte es asignada al proceso y la otra se identifica como hueco. Cuando el proceso termina y la memoria es liberada, el espacio es identificado como un hueco ms en la tabla y si el nuevo hueco es adyacente con otro, ambos huecos se unen formando un solo hueco ms grande. En ese momento se debe de checar si no existen procesos a los que este nuevo hueco pueda darles cabida.

En la figura se muestra como se modifica el mapa de la memoria despus de compactar huecos no adyacentes generados despus de intercambios realizados.

Asignacin dinmica El proceso de compactacin del punto anterior es una instancia particular del problema de asignacin de memoria dinmica, el cual es el cmo satisfacer una necesidad de tamao n con una lista de huecos libres. Existen muchas soluciones para el problema. El conjunto de huecos es analizado para determinar cul hueco es el ms indicado para asignarse. Las estrategias ms comunes para asignar algn hueco de la tabla son:

Primer ajuste: Consiste en asignar el primer hueco con capacidad suficiente. La bsqueda puede iniciar ya sea al inicio o al final del conjunto de huecos o en donde termin la ltima bsqueda. La bsqueda termina al encontrar un hueco lo suficientemente grande. Mejor ajuste: Busca asignar el espacio ms pequeo de los espacios con capacidad suficiente. La bsqueda se debe de realizar en toda la tabla, a menos que la tabla est ordenada por tamao. Esta estrategia produce el menor desperdicio de memoria posible. Peor ajuste: Asigna el hueco ms grande. Una vez ms, se debe de buscar en toda la tabla de huecos a menos que est organizada por tamao. Esta estrategia produce los huecos de sobra ms grandes, los cuales pudieran ser de ms uso si llegan procesos de tamao mediano que quepan en ellos.

ADMINISTRACIN DE MEMORIA

Cuando la memoria se asigna dinmicamente, el sistema operativo debe administrarla. En trminos generales, hay dos formas de contabilizar la utilizacin de memoria: Mapas de bits Listas enlazadas. ADMINISTRACIN DE LA MEMORIA CON MAPAS DE BITS Este tipo de administracin divide la memoria en unidades de asignacin, las cuales pueden ser tan pequeas como unas cuantas palabras o tan grandes como varios kilobytes. A cada unidad de asignacin le corresponde un bit en el mapa de bits, el cual toma el valor de 0 si la unidad est libre y 1 si est ocupada (o viceversa). La figura 6 muestra una parte de la memoria y su correspondiente mapa de bits.

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. Sin embargo, incluso con una unidad de asignacin de slo cuatro bits, 32 bits de memoria slo requerirn un bit del mapa. Una memoria de 32n bits usar n bits de mapa, y el mapa slo ocupar 1/33 de la memoria. Si se escoge una unidad de asignacin grande, el mapa de bits ser ms pequeo, pero podra desperdiciarse una cantidad apreciable de memoria en la ltima unidad si el tamao del proceso no es un mltiplo exacto de la unidad de asignacin. 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. El problema principal que presenta es que una vez que se ha decidido traer a la memoria un proceso de k unidades, el administrador de memoria debe buscar en el mapa de bits una serie de k bits en O consecutivos. La bsqueda de series de una longitud dada en un mapa de bits es una operacin lenta (porque la serie puede cruzar fronteras de palabra en el mapa); ste es un argumento en contra de los mapas de bits. EJEMPLO

Figura 4-5. (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, (e) La misma informacin en forma de lista.

ADMINISTRACIN DE LA MEMORIA CON LISTAS ENLAZADAS Otra forma de mantener un registro de la memoria es mediante una lista ligada de los segmentos de memoria asignados o libres, en donde un segmento puede ser un proceso o un hueco entre dos procesos. La memoria de la figura 7(a) est mostrada como una lista ligada de segmentos en la figura 7(b). Cada entrada de la lista especifica un hueco (H) o un proceso (P), la direccin donde comienza, su longitud y un apuntador a la siguiente entrada.

También podría gustarte