Sei sulla pagina 1di 39

ADMINISTRACIN DE MEMORIA

PONENTES:
- Keila Santos. - Jimy Cachay. - Fernando Meja.

LEY DE PARKINSON

De forma parafraseada Los programas se expanden para llenar la memoria disponible para contenerlos

Los S.O. crean abstracciones de la memoria y tambin las administran.


Jerarqua de memoria Administrador de memoria

OBJETIVOS DE LA ADMINISTRACIN DE MEMORIA (Administrador de Memoria)


Mantener

informado qu memoria est libre/ocupada Asignacin/liberacin de memoria a los procesos Intercambio RAM-DD, cuando la RAM es demasiado pequea para contener todos los procesos. Maximizar el rendimiento del sistema

ABSTRACCIN DE MEMORIA:

permite ocultar lo ms posible los detalles de ms bajo nivel intentando dar a los niveles superiores una visin ms sencilla, global y abstracta ofreciendo operaciones para manipular dichas estructuras ocultas desconocidas por completo para la gestin interna de la estructura. Gracias a ella, los S.O enmascaran los recursos fsicos permitiendo su manejo con funciones mas generales que ocultan las bsicas constituyendo verdaderos recursos ficticios o virtuales que mejoran o son ms potentes que los fsicos.

SIN ABSTRACCIN DE MEMORIA

Las primeras computadoras mainframe (antes de 1960), las primeras minicomputadoras (antes de 1970) y las primeras computadoras personales (antes de 1980) no tenan abstraccin de memoria. Cada programa vea simplemente la memoria fsica. Bajo estas condiciones, no era posible tener dos programas ejecutndose en memoria al mismo tiempo.

Ejecucin de mltiple programas sin una abstraccin de memoria

aun sin abstraccin de memoria es posible ejecutar varios programas al mismo tiempo. Lo que el sistema operativo debe hacer es guardar todo el contenido de la memoria en un archivo en disco, para despus traer y ejecutar el siguiente programa. Mientras slo haya un programa a la vez en la memoria no hay conflictos. Con la adicin de cierto hardware especial es posible ejecutar mltiples programas concurrentemente, aun sin intercambio. Los primeros modelos de la IBM 360 resolvieron el problema de la siguiente manera: la memoria estaba dividida en bloques de 2 KB y a cada uno se le asignaba una llave de proteccin de 4 bits, guardada en registros especiales dentro de la CPU.

Ejecucin de mltiple programas sin una abstraccin de memoria

Un equipo con una memoria de 1 MB slo necesitaba 512 de estos registros de 4 bits para totalizar 256 bytes de almacenamiento de la llave.

El registro PSW (Program Status Word, Palabra de estado del programa) tambin contena una llave de 4 bits. El hardware de la 360 controlaba mediante un trap cualquier intento por parte de un proceso en ejecucin de acceder a la memoria con un cdigo de proteccin distinto del de la llave del PSW.
Como slo el sistema operativo poda modificar las llaves de proteccin, los procesos de usuario fueron controlados para que no interfirieran unos con otros, ni con el mismo sistema operativo. Sin embargo, esta solucin tena una gran desventaja

Ejecucin de mltiple programas sin una abstraccin de memoria

ESPACIO DE DIRECCIONES (Address Space):

Es el conjunto de direcciones que puede utilizar un proceso para direccionar la memoria.


Cada proceso tiene su propio espacio de direcciones, independiente de los que pertenecen a otros procesos (excepto en ciertas circunstancias especiales en donde los procesos desean compartir sus espacios de direcciones). EJEMPLO: Una direccin de memoria, identifica la ubicacin fsica en una memoria de computadora, como lo hara una direccin de una calle (direccin de memoria) en una ciudad (memoria). El espacio de direcciones sera como un rea de ubicaciones (un vecindario, una ciudad o un pas, siguiendo con la comparacin anterior).

ESPACIOS DE DIRECCIONES:

cuando no hay una abstraccin de la memoria fsica es difcil de lograr tener varios programas abiertos a la vez.

Hay que resolver dos problemas para permitir que haya varias aplicaciones en memoria al mismo tiempo sin que interfieran entre s: proteccin y reubicacin
Pero una mejor solucin es inventar una nueva abstraccin para la memoria: el espacio de direcciones. As como el concepto del proceso crea un tipo de CPU abstracta para ejecutar programas, el espacio de direcciones crea un tipo de memoria abstracta para que los programas vivan ah.

TIPOS DE ADMINISTRACIN DE MEMORIA


Con

intercambios y paginacin Sin ellos

INTERCAMBIO:

consiste en llevar cada proceso completo a memoria, ejecutarlo durante cierto tiempo y despus regresarlo al disco.

Los procesos inactivos mayormente son almacenados en disco, de tal manera que no ocupan memoria cuando no se estn ejecutando (aunque algunos de ellos se despiertan peridicamente para realizar su trabajo y despus vuelven a quedar inactivos).

Administracin de memoria libre

Cuando la memoria se asigna en forma dinmica, el sistema operativo debe administrarla.

En trminos generales, hay dos formas de llevar el registro del uso de la memoria: mapas de bits y listas libres.

Administracin de memoria con mapas de bits

Con un mapa de bits, la memoria se divide en unidades de asignacin tan pequeas como unas cuantas palabras y tan grandes como varios kilobytes. Para cada unidad de asignacin hay un bit correspondiente en el mapa de bits, que es 0 si la unidad est libre y 1 si est ocupada (o viceversa). La figura 3-6 muestra parte de la memoria y el mapa de bits correspondiente.

ADMINISTRACIN DE MEMORIA CON LISTAS LIGADAS

Otra manera de llevar el registro de la memoria es mantener una lista ligada de segmentos de memoria asignados y libres, en donde un segmento contiene un proceso o es un hueco vaco entre dos procesos.

3.MEMORIA VIRTUAL

permite que los programas se ejecuten incluso cuando slo se encuentran en forma parcial en la memoria.

La memoria virtual es una tcnica para dar la ilusin de tener mas memoria.
La idea bsica detrs de la memoria virtual es que cada programa tiene su propio espacio de direcciones, el cual se divide en trozos llamados pginas Cada pgina es un rango contiguo de direcciones. Estas pginas se asocian a la memoria fsica, pero no todas tienen que estar en la memoria fsica para poder ejecutar el programa.

3.MEMORIA VIRTUAL

Cuando el programa hace referencia a una parte de su espacio de direcciones que est en la memoria fsica, el hardware realiza la asociacin necesaria al instante. Cuando el programa hace referencia a una parte de su espacio de direcciones que no est en la memoria fsica, el sistema operativo recibe una alerta para buscar la parte faltante y volver a ejecutar la instruccin que fall.

3.1.PAGINACIN

Los sistemas de paginacin de memoria dividen los programas en pequeas partes o pginas. Del mismo modo, la memoria es dividida en trozos del mismo tamao que las pginas llamados marcos de pgina. De esta forma, la cantidad de memoria desperdiciada por un proceso es el final de su ltima pgina, lo que minimiza la fragmentacin interna y evita la externa. Una de las tcnicas de memoria virtual ms usadas que permite ejecutar programas mas grandes que la memoria fsica disponible de forma transparente al programador.

3.2.TABLAS DE PGINAS

Las tablas de paginacin o tablas de pginas son una parte integral del Sistema de Memoria Virtual en sistemas operativos, cuando se utiliza paginacin. Son usadas para realizar las traducciones de direcciones de memoria virtual (o lgica) a memoria real (o fsica) y en general el sistema operativo mantiene una por cada proceso corriendo en el sistema.

3.2.TABLAS DE PGINAS

En cada entrada de la tabla de paginacin (en ingls PTE, Page Table Entry) existe un bit de presencia, que est activado cuando la pgina se encuentra en memoria principal. Otro bit que puede encontrarse es el de modificado, que advierte que la pgina ha sido modificada desde que fue trada del disco, y por lo tanto deber guardarse si es elegida para abandonar la memoria principal; y el bit de accedido, usado en el algoritmo de reemplazo de pginas llamado Menos Usado Recientemente (LRU, least recently used). Tambin podran haber otros bits indicando los permisos que tiene el proceso sobre la pgina (leer, escribir, ejecutar).

3.2.TABLAS DE PGINAS

Dado que las tablas de paginacin pueden ocupar un espacio considerable de la memoria principal, estas tambin podran estar sujetas a paginacin, lo que da lugar a una organizacin paginada de mltiples niveles (o tabla de pginas multinivel). En los sistemas con un tamao de direcciones muy grande ( 64 bits ), podra usarse una tabla de pginas invertida, la cual utiliza menos espacio, aunque puede aumentar el tiempo de bsqueda de la pgina. Las tablas son mantenidas por el sistema operativo y utilizadas por la Unidad de Gestin de Memoria (MMU) para realizar las traducciones. Para evitar un acceso a las tablas de paginacin, hay un dispositivo llamado Buffer de Traduccin Adelantada (TLB, Translation Lookaside Buffer), acelerando el proceso de traduccin.

ESTRUCTURA DE UNA ENTRADA EN LA TABLA DE PGINAS

Pasemos ahora a la estructura general de las tablas de pginas a los pormenores de una sola entra en de una tabla.

La organizacin exacta de una entrada depende mucho de la mquina, pero el tipo de informacin presente es casi el mismo en todas las computadoras.

En la figura mostramos un ejemplo de entrada en la tabla. El tamao varia de una computadora a otra, pero el de 32 bits es muy comn. El campo mas importante es el nmero de marco de pgina. Despus de todo, el objetivo de la correspondencia de pginas es averiguar este valor. Junto a l tenemos el bit presente/ausente. Si este bit es 1, la entrada es vlida y se puede utilizar. Si es 0, la pgina virtual a la que pertenece la entrada no se encuentra actualmente en la memoria. Tener acceso a una entrada de tabla de pgina que tiene este bit establecido en 0 causa un fallo de pgina

3.3. ACELERACIN DE LA PAGINACIN

En cualquier sistema de paginacin hay que abordar dos cuestiones principales:

1. La asociacin de una direccin virtual a una direccin fsica debe ser rpida.
2. Si el espacio de direcciones virtuales es grande, la tabla de pginas ser grande.

3.3. ACELERACIN DE LA PAGINACIN

El primer punto es una consecuencia del hecho de que la asociacin virtual-afsica debe realizarse en cada referencia de memoria. Todas las instrucciones deben provenir finalmente de la memoria y muchas de ellas hacen referencias a operandos en memoria tambin. En consecuencia, es necesario hacer una, dos o algunas veces ms referencias a la tabla de pginas por instruccin. Si la ejecucin de una instruccin tarda, por ejemplo 1 nseg, la bsqueda en la tabla de pginas debe realizarse en menos de 0.2 nseg para evitar que la asociacin se convierta en un cuello de botella importante.

El segundo punto se deriva del hecho de que todas las computadoras modernas utilizan direcciones virtuales de por lo menos 32 bits, donde 64 bits se vuelven cada vez ms comunes. Por decir, con un tamao de pgina de 4 KB, un espacio de direcciones de 32 bits tiene 1 milln de pginas y un espacio de direcciones de 64 bits tiene ms de las que desearamos contemplar.

BFERES DE TRADUCCIN ADELANTADA


PROBLEMA: Con la paginacin se requiere al menos una referencia adicional a memoria para acceder a la tabla de pginas. Como la velocidad de ejecucin est comnmente limitada por la proporcin a la que la CPU puede obtener instrucciones y datos de la memoria, al tener que hacer dos referencias a memoria por cada una de ellas se reduce el rendimiento a la mitad. Bajo estas condiciones, nadie utilizara la paginacin.

BFERES DE TRADUCCIN ADELANTADA


SOLUCIN: La solucin que se ha ideado es equipar a las computadoras con un pequeo dispositivo de hardware para asociar direcciones virtuales a direcciones fsicas sin pasar por la tabla de pginas. El dispositivo, llamado TLB (Translation Lookaside Buffer, Bfer de traduccin adelantada).

3.4. TABLAS DE PGINAS PARA MEMORIAS EXTENSAS

Los TLBs se pueden utilizar para acelerar las traducciones de direcciones virtuales a direcciones fsicas sobre el esquema original de la tabla de pginas en memoria. Pero se no es el nico problema que debemos combatir. Otro problema es cmo lidiar con espacios de direcciones virtuales muy extensos.

3.4 ALGORITMOS DE REEMPLAZO DE PGINAS

Cuando ocurre un fallo de pgina, el sistema operativo tiene que elegir una pgina para desalojarla (eliminarla de memoria) y hacer espacio para la pgina entrante. Si la pgina a eliminar se modific mientras estaba en memoria, debe volver a escribirse en el disco para actualizar la copia del mismo.

ALGORITMOS DE REEMPLAZO DE PGINAS

Qu marco seleccionar para una nueva pgina?

Algoritmo ptimo
Reemplaza la pgina que ms tiempo va a tardar en necesitarse Irreal: el orden de las referencias a memoria no se puede saber de antemano

ALGORITMO NRU (NO USADA RECIENTEMENTE)

Se utilizan los bits de R (referencia) y M (modificado) De forma peridica el bit R se establece a 0 ) distinguir las

pginas que se han solicitado recientemente


Se establecen 4 categoras en base a los bits R y M: CLASE 0: R = 0, M = 0 CLASE 1: R = 0, M = 1 CLASE 2: R = 1, M = 0 CLASE 3: R = 1, M = 1 Desaloja aleatoriamente una pgina de la clase de nmero ms bajo que no est vaca Este algoritmo funciona bien, es rpido y es sencillo de implementar

ALGORITMO FIFO: PRIMERO EN ENTRAR, PRIMERO EN SALIR

Reemplaza la pgina que entr hace ms tiempo en memoria (la primera que entr)

Es muy malo, al no tener en cuenta el uso de las pginas

ALGORITMO DE LA SEGUNDA OPORTUNIDAD

Modificacin del FIFO, evitando los problemas de desalojar una pgina que se use mucho, teniendo en cuenta su bit R Funcionamiento: Si el bit R de la pgina a quitar es 0 se elimina, Si su bit R es 1, se pasa al final y se anula el valor del bit R (como si fuera nueva) Si todos los bit R son 1, su comportamiento es el de un FIFO Busca una pgina antigua a la que no se le haya hecho referencia desde el ltimo reemplazo

RESUMEN DE LOS ALGORITMOS DE REEMPLAZO DE PGINAS

Ahora hemos visto una variedad de algoritmos de reemplazo de pginas. En esta seccin mostraremos un breve resumen de ellos. La lista de algoritmos descritos se proporciona en la figura 3-22.