39
ADMINISTRACIÓN DE MEMORIA PONENTES: - Keila Santos. - Jimy Cachay. - Fernando Mejía.

ADMINISTRACIÓN DE MEMORIA.pptx

Embed Size (px)

Citation preview

ADMINISTRACIN DE MEMORIA

ADMINISTRACIN DE MEMORIA

PONENTES:Keila Santos.Jimy Cachay.Fernando Meja.

LEY DE PARKINSONDe forma parafraseada Los programas se expanden para llenar la memoria disponible para contenerlosLos S.O. crean abstracciones de la memoria y tambin las administran.

Jerarqua de memoriaAdministrador de memoria

OBJETIVOS DE LA ADMINISTRACIN DE MEMORIA (Administrador de Memoria)Mantener informado qu memoria est libre/ocupadaAsignacin/liberacin de memoria a los procesosIntercambio RAM-DD, cuando la RAM es demasiado pequea para contener todos los procesos.Maximizar el rendimiento del sistemaABSTRACCIN 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 MEMORIALas 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 memoriaaun 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 memoriaUn 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 desventajaEjecucin 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: Unadireccin de memoria, identifica laubicacinfsica en unamemoria 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 reubicacinPero 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 MEMORIACon 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 libreCuando 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 bitsCon 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). Lafigura 3-6 muestra parte de la memoria y el mapa de bits correspondiente.

ADMINISTRACIN DE MEMORIA CON LISTAS LIGADASOtra 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 VIRTUALpermite 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 pginasCada 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 VIRTUALCuando 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.PAGINACINLos sistemas depaginacindememoriadividen los programas en pequeas partes o pginas. Del mismo modo, la memoria es dividida en trozos del mismo tamao que las pginas llamadosmarcos 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 PGINASLastablas de paginacino tablas de pginas son una parte integral delSistema de Memoria Virtualensistemas operativos, cuando se utilizapaginacin. 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 PGINASEn cada entrada de la tabla de paginacin (en ingls PTE,Page Table Entry) existe un bit depresencia, que est activado cuando la pgina se encuentra en memoria principal. Otro bit que puede encontrarse es el demodificado, 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 deaccedido, usado en elalgoritmo de reemplazo de pginasllamadoMenos 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 PGINASDado 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 unatabla 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 laUnidad 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 PGINASPasemos 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 pgina3.3. ACELERACIN DE LA PAGINACINEn 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 PAGINACINEl primer punto es una consecuencia del hecho de que la asociacin virtual-a-fsica 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 ADELANTADAPROBLEMA: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 ADELANTADASOLUCIN: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 EXTENSASLos 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 PGINASCuando 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 ptimoReemplaza la pgina que ms tiempo va a tardar en necesitarseIrreal: el orden de las referencias a memoria no se puedesaber 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 laspginas que se han solicitado recientementeSe establecen 4 categoras en base a los bits R y M:CLASE 0: R = 0, M = 0CLASE 1: R = 0, M = 1CLASE 2: R = 1, M = 0CLASE 3: R = 1, M = 1Desaloja aleatoriamente una pgina de la clase de nmero msbajo que no est vacaEste algoritmo funciona bien, es rpido y es sencillo deimplementarALGORITMO 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 RFuncionamiento: 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 PGINASAhora 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.