You are on page 1of 17

Repblica Bolivariana de Venezuela Ministerio del Poder Popular para la Defensa Universidad Nacional Experimental Politcnica de la Fuerza Armada

Bolivariana UNEFA Ncleo Lara

Gestin de Memoria

Integrante: Pimentel Emilton C.I. 12.860.482 Seccin: 6N2IS Docente: Prof. Richard Galea

Barquisimeto, 18 de Octubre de 2011

Introduccin
La memoria es uno de los principales recursos de la computadora, la cual debe de administrarse con mucho cuidado. Aunque actualmente la mayora de los sistemas de cmputo cuentan con una alta capacidad de memoria, de igual manera las aplicaciones actuales tienen tambin altos requerimientos de memoria, lo que sigue generando escasez de memoria en los sistemas multitarea y/o multiusuario. La parte del sistema operativo que administra la memoria se llama administrador de memoria y su labor consiste en llevar un registro de las partes de memoria que se estn utilizando y aquellas que no, con el fin de asignar espacio en memoria a los procesos cuando stos la necesiten y liberndola cuando terminen, as como administrar el intercambio entre la memoria principal y el disco en los casos en los que la memoria principal no le pueda dar capacidad a todos los procesos que tienen necesidad de ella. Los sistemas de administracin de memoria se pueden clasificar en dos tipos: los que desplazan los procesos de la memoria principal al disco y viceversa durante la ejecucin y los que no. El propsito principal de una computadora es el de ejecutar programas, estos programas, junto con la informacin que accesan deben de estar en la memoria principal (al menos parcialmente) durante la ejecucin. Para optimizar el uso del CPU y de la memoria, el sistema operativo debe de tener varios procesos a la vez en la memoria principal, para lo cual dispone de varias opciones de administracin tanto del procesador como de la memoria. La seleccin de uno de ellos depende principalmente del diseo del hardware para el sistema. A continuacin se observarn los puntos correspondientes a la administracin de la memoria.

Gestin de la Memoria Concepto: La parte del sistema operativo que administra la memoria se llama administrador de memoria y su labor consiste en llevar un registro de las partes de memoria que se estn utilizando y aquellas que no, con el fin de asignar espacio en memoria a los procesos cuando stos la necesiten y liberndola cuando terminen. Para ello existen diferentes esquemas de administracin de memoria desde los ms simples hasta los ms elaborados entre los cuales se ubican: Implementacin de gestin de memoria Polticas de reemplazo de pginas Los criterios a seguir para implementar un algoritmo de reemplazo de pginas son fundamentalmente dos: Minimizar el nmero de fallos de pgina, como se ha razonado en el apartado anterior. Explotar la localidad temporal de los programas ser fundamental. Sencillez de implementacin. Un algoritmo complejo, como veremos, puede requerir intervencin adicional en los accesos a memoria, lo que implicar o prdida de rendimiento, o un hardware costoso, lo que a su vez redundar probablemente en prdida de rendimiento Poltica FIFO La implementacin puede hacerse mediante una cola FIFO de marcos de pgina, que se actualiza cada vez que se carga una pgina. Una alternativa es elegir la vctima sobre la base de un registro que almacena el tick en que se produjo la carga, lo que proporciona una aproximacin a FIFO. Al no basarse en criterios de localidad, FIFO no obtiene buenos resultados en cuanto a probabilidad de fallo. Adems, presenta un problema conocido como anomala de Belady, un fenmeno de prdida de rendimiento (mayor nmero de fallos de pgina), que presentan algunos algoritmos de reemplazo con determinadas secuencias de referencias cuando se incrementa el nmero de marcos de pgina en memoria. Esto ocurre, por ejemplo, con la siguiente secuencia: 123412512345 En concreto, con esta secuencia se producen ms fallos de pgina con cuatro marcos que con tres. 4.6.6.3 Poltica LRU

De acuerdo al principio de localidad temporal en las referencias (es ms probable la referencia a una pgina cuanto ms recientemente se haya referenciado), se selecciona como pgina vctima la menos recientemente referenciada. Ntese que ello implica modificar en cada referencia la informacin acerca de las pginas cargadas, a diferencia del algoritmo FIFO, que slo requiere hacerlo en la carga de cada pgina. Esta caracterstica hace de LRU un algoritmo de pila. Los algoritmos de pila presentan la propiedad de que, dada una secuencia de referencias, una memoria con ms marcos de pgina, tras un nmero determinado de referencias, mantiene el conjunto de pginas que contendra con un tamao menor en la misma referencia. En otras palabras, la tasa de fallos nunca aumenta si se incrementa el tamao de memoria. Los algoritmos de pila evitan la anomala de Belady. La implementacin hardware de la poltica LRU es compleja. Hay dos mecanismos: (a) Mantener una lista encadenada de pginas ordenadas por el tiempo de su ltima referencia. (b) Mantener un contador de referencias y un registro (de al menos 64 bits) asociado a cada marco de pgina, que se actualiza en una referencia con el valor del contador. En ambos casos la implementacin es muy costosa, por lo que, como alternativa al algoritmo LRU puro se utilizan aproximaciones. Un mecanismo de aproximacin consiste en almacenar el tick de reloj en el que se produce la referencia en vez de la propia referencia, para lo que se requiere un bit de referencia asociado a cada marco en base al cual la rutina de atencin al reloj puede determinar si la pgina ha sido referenciada desde el tick anterior y actualizar el registro de ticks de ltima referencia a la pgina, que puede implementarse por software. Con esta aproximacin se pierde precisin, al convertir la relacin de orden total entre las referencias en una relacin de orden parcial (las referencias dentro de un mismo tick no estn ordenadas). NFU En el algoritmo NFU (pgina no referenciada frecuentemente), se establece si en un intervalo de tiempo (por ejemplo, un tick de reloj) una pgina ha sido o no referenciada. Se lleva la cuenta del nmero de intervalos que cada pgina ha sido referenciada, eligiendo como vctima la de cuenta ms baja. Para cada pgina se requiere, adems del bit R que se activa en cada referencia, un contador. En cada tick de reloj, para cada pgina, el bit R se acumula en el contador. Comparado con LRU puro, en NFU los contadores se incrementan con mucha menor frecuencia, por lo que es implementable en software. Envejecimiento Como una mejora de NFU, se puede introducir un parmetro de olvido (o envejecimiento) sobre las referencias pasadas. Un mecanismo para implementar el envejecimiento consiste en desplazar los contadores un bit a la derecha en cada tick de reloj, introduciendo el bit R por la izquierda. De esta forma, una pgina referenciada durante el ltimo tick permanecer en memoria sobre cualquiera que no lo haya sido.

Gestin de memoria con particiones fija El objetivo en todo esto es tener ms de un proceso en memoria a la vez, solucin posible sera dividir la memoria en n partes al inicio de una sesin de uso de la mquina, pero an as se obtiene el desperdicio de particiones grandes con una tarea pequea, la respuesta puede ser tener particiones pequeas tambin. Las tareas que van llegando se forman hasta que una particin adecuada est disponible, en cuyo momento la tarea se carga en esa particin y se ejecuta hasta terminar. Gestin de memoria con particiones variables. Mediante un algoritmo de administracin de memoria las particiones variables varan de forma dinmica durante el uso de la mquina, evitando desperdicio de memoria Otros mtodos de administracin de memoria que tenemos son: la administracin de memoria con mapa de bits la memoria se divide en unidades de asignacin, a cada asignacin le corresponden un bit en el mapa de bits, un mapa de bits es una forma sencilla para llevar un registro de las palabras de la memoria en una cantidad fija de memoria. la administracin de memoria con listas ligadas otra forma de mantener un registro en memoria es mediante una lista ligada donde cada entrada de la lista especfica un hueco o un proceso. la administracin de memoria con el sistema de los asociados basado en el sistema binario o utiliza para las direcciones.

Paginacin: Es una tcnica de manejo de memoria, en la cual el espacio de memoria se divide en secciones fsicas de igual tamao, denominadas marcos de pgina. Los programas se dividen en unidades lgicas, denominadas pginas, que tienen el mismo tamao que los marcos de pginas. De esta forma, se puede cargar una pgina de informacin en cualquier marco de pgina. Las pginas sirven como unidad de almacenamiento de informacin y de transferencia entre memoria principal y memoria auxiliar o secundaria. Cada marco se identifica por la direccin de marco, que est en la posicin fsica de la primera palabra en el marco de pgina. Las pginas de un programa necesitan estar contiguamente en memoria, aunque el programador lo observe de esta forma. Los mecanismos de paginacin permiten la correspondencia correcta entre las direcciones virtuales (dadas por los programas) y las direcciones reales de la memoria que se reverencien. Cada pgina consiste en z palabras contiguas; un espacio de direcciones N de un programa consiste de n pginas (0,1,2,3 n-1) (n*z direcciones virtuales) y el espacio de memoria consiste de m marcos de paginas (0,z,2z,,(m-1)z)(m*z posiciones). Una direccin virtual a es equivalente a una direccin dada como una dupla (p, d), en la cual p es el nmero de la pgina y d el nmero de la palabra dentro de la pgina, de acuerdo con la relacin:

a=p*z+d (06), los cuatro bits ms significativos indican el numero de la pagina y los m-4 bits restantes, el desplazamiento. Para tener el control de las pginas, debe mantenerse una tabla en memoria que se denomina tabla de Mapas de Pagina (PMT) para cada uno de los procesos. Hasta ahora, los mtodos que hemos visto de la administracin de la memoria principal, nos han dejado con un problema: Fragmentacin, (huecos en la memoria que no pueden usarse debido a lo pequeo de su espacio) lo que nos provoca un desperdicio

de memoria principal. Una posible solucin para la fragmentacin externa es permitir que espacio de direcciones lgicas lleve a cabo un proceso en direcciones no contiguas, as permitiendo al proceso ubicarse en cualquier espacio de memoria fsica que est disponible, aunque est dividida. Una forma de implementar esta solucin es a travs del uso de un esquema de paginacin. La paginacin evita el considerable problema de ajustar los pedazos de memoria de tamaos variables que han sufrido los esquemas de manejo de memoria anteriores. Dado a sus ventajas sobre los mtodos previos, la paginacin, en sus diversas formas, es usada en muchos sistemas operativos. Al utilizar la memoria virtual, las direcciones no pasan en forma directa al bus de memoria, sino que van a una unidad administradora de la memoria (MMU Memory Management Unit). Estas direcciones generadas por los programas se llaman direcciones virtuales y conforman el hueco de direcciones virtuales. Este hueco se divide en unidades llamadas pginas. Las unidades correspondientes en la memoria fsica se llaman marcos para pgina o frames. Las pginas y los frames tienen siempre el mismo tamao. Tablas de pginas: Cada pgina tiene un nmero que se utiliza como ndice en la tabla de pginas, lo que da por resultado el nmero del marco correspondiente a esa pgina virtual. Si el bit presente / ausente es 0, se provoca un sealamiento (trap) hacia el sistema operativo. Si el bit es 1, el nmero de marco que aparece en la tabla de pginas se copia en los bits de mayor orden del registro de salida, junto con el ajuste (offset) de 12 bits, el cual se copia sin modificaciones de la direccin virtual de entrada. Juntos forman una direccin fsica de 15 bits. El registro de salida se coloca entonces en el bus de la memoria como la direccin en la memoria fsica. En teora, la asociacin de las direcciones virtuales con las fsicas se efecta segn lo descrito. El nmero de pgina virtual se divide en un nmero de pgina virtual (los bits superiores) y un ajuste (los bits inferiores). El nmero de pgina virtual se utiliza como un ndice en la tabla de pginas para encontrar la entrada de esa pgina virtual. El nmero de marco (si existe) se determina a partir de la tabla de pginas. El nmero de marco se asocia al extremo superior del ajuste y reemplaza al nmero de pgina virtual para formar una direccin fsica que se puede enviar a la memoria.

La finalidad de la tabla de pginas es asociar las pginas virtuales con los marcos. En trminos matemticos, la tabla de pginas es una funcin, cuyo argumento es el nmero de pgina virtual y como resultado el nmero del marco fsico. Mediante el resultado de esta funcin, se puede reemplazar el campo de la pgina virtual de una direccin virtual por un campo de marco, lo que produce una direccin en la memoria fsica. Sin embargo hay que enfrentar dos aspectos fundamentales: La tabla de pginas puede ser demasiado grande. La asociacin debe ser rpida. El primer punto proviene del hecho de que las computadoras modernas utilizan direcciones virtuales de al menos 32 bits. Por ejemplo, si el tamao de pgina es de 4K, un hueco de direcciones de 32 bits tiene un milln de pginas; en el caso de un hueco de direcciones de 64 bits, se tendra ms informacin de la que uno quisiera contemplar.

El segundo punto es consecuencia del hecho de que la asociacin virtual fsica debe hacerse en cada referencia a la memoria. Una instruccin comn tiene una palabra de instruccin y tambin un operando de memoria. Entonces es necesario hacer una, dos o ms referencias a la tabla de pginas por cada instruccin.

Caractersticas de la paginacin: El espacio de direcciones lgico de un proceso puede ser no contiguo. Se divide la memoria fsica en bloques de tamao fijo llamados marcos (frames). Se divide la memoria en bloques de tamao llamados pginas. Se mantiene informacin en los marcos libres. Para correr un programa de n paginas de tamao, se necesitan encontrar n marcos y cargar el programa.

Se establece una tabla de pginas para trasladar las direcciones lgicas a fsicas. Se produce fragmentacin interna. Ventajas de la paginacin: Es posible comenzar a ejecutar un programa, cargando solo una parte del mismo en memoria, y el resto se cargara bajo la solicitud. No es necesario que las paginas estn contiguas en memoria, por lo que no se necesitan procesos de compactacin cuando existen marcos de paginas libres dispersos en la memoria. Es fcil controlar todas las pginas, ya que tienen el mismo tamao. El mecanismo de traduccin de direcciones (DAT) permite separar los conceptos de espacio de direcciones y espacios de memoria. Todo el mecanismo es transparente al usuario. Se libera al programador de la restriccin de programar para un tamao fsico de memoria, con lo que s e aumenta su productividad. Se puede programar en funcin de una memoria mucho ms grande a la existente. Al no necesitarse cargar un programa completo en memoria para su ejecucin, se puede aumentar el nmero de programas multiprogramndose. Se elimina el problema de fragmentacin externa. Desventajas de la paginacin: El costo de hardware y software se incrementa, por la nueva informacin que debe manejarse y el mecanismo de traduccin de direcciones necesario. Se consumen muchos ms recursos de memoria, tiempo en el CPU para su implantacin. Se deben reservar reas de memoria para las PMT de los procesos. Al no ser fijo el tamao de estas, se crea un problema semejante al de los programas (cmo asignar un tamao ptimo sin desperdicio de memoria, u ovearhead del procesador).

Aparece el problema de fragmentacin interna. As, si se requieren 5K para un programa, pero las pginas son de 4K, debern asignrseles 2 pginas (8k), con lo que quedan 3K sin utilizar. La suma de los espacios libres dejados de esta forma puede ser mayor que el de varias pginas, pero no podr ser utilizado. Debe asignarse un tamao promedio a las pginas, evitando que si son muy pequeas, se necesiten tablas BMT y PMT muy grandes, y si son muy grandes, se incremente el grado de fragmentacin interna. Segmentacin: Es un esquema de manejo de memoria mediante el cual la estructura del programa refleja su divisin lgica, llevndose a cabo una agrupacin lgica de la informacin en bloques de tamao variable denominados segmentos. Cada uno de ellos tienen informacin lgica del programa: subrutina, arreglo, etc. Luego, cada espacio de direcciones de programa consiste de una coleccin de segmentos, que generalmente reflejan la divisin lgica del programa. La segmentacin permite alcanzar los siguientes objetivos: Modularidad de programas: Cada rutina del programa puede ser un bloque sujeto a cambios y recopilaciones, sin afectar por ello al resto del programa.

Estructuras de datos de largo variable: Ejm. Stack, donde cada estructura tiene su propio tamao y este puede variar. Proteccin: Se pueden proteger los mdulos del segmento contra accesos no autorizados. Comparticin: Dos o ms procesos pueden ser un mismo segmento, bajo reglas de proteccin; aunque no sean propietarios de los mismos. Enlace dinmico entre segmentos: Puede evitarse realizar todo el proceso de enlace antes de comenzar a ejecutar un programa. Los enlaces se establecern slo cuando sea necesario.

Ventajas de la segmentacin: El esquema de segmentacin ofrece las siguientes ventajas: El programador puede conocer las unidades lgicas de su programa, dndoles un tratamiento particular. Es posible compilar mdulos separados como segmentos el enlace entre los segmentos puede suponer hasta tanto se haga una referencia entre segmentos. Debido a que es posible separar los mdulos, se hace ms fcil la modificacin de los mismos. Cambios dentro de un modulo no afecta al resto de los mdulos. Es fcil el compartir segmentos. Es posible que los segmentos crezcan dinmicamente segn las necesidades del programa en ejecucin. Existe la posibilidad de definir segmentos que aun no existan. As, no se asignar memoria, sino a partir del momento que sea necesario hacer usos del segmento. Un ejemplo de esto, seran los arreglos cuya dimensin no se conoce hasta tanto no se comienza a ejecutar el programa. En algunos casos, incluso podra retardar la asignacin de memoria hasta el momento en el cul se referencia el arreglo u otra estructura de datos por primera vez. Desventajas de la segmentacin: Hay un incremento en los costos de hardware y de software para llevar a cabo la implantacin, as como un mayor consumo de recursos: memoria, tiempo de CPU, etc. Debido a que los segmentos tienen un tamao variable se pueden presentar problemas de fragmentacin externas, lo que puede ameritar un plan de reubicacin de segmentos en memoria principal. Se complica el manejo de memoria virtual, ya que los discos almacenan la informacin en bloques de tamaos fijos, mientras los segmentos son de tamao variable. Esto hace necesaria la existencia de mecanismos ms costosos que los existentes para paginacin.

Al permitir que los segmentos varen de tamao, pueden ser necesarios planes de reubicacin a nivel de los discos, si los segmentos son devueltos a dicho dispositivo, lo que conlleva a nuevos costos. No se puede garantizar que al salir un segmento de la memoria, este pueda ser trado fcilmente de nuevo, ya que ser necesario encontrar nuevamente un rea de memoria libre ajustada a su tamao. La comparticin de segmentos permite ahorrar memoria, pero requiere de mecanismos adicionales da hardware y software. Estas desventajas tratan de ser minimizadas, bajo la tcnica conocida como Segmentacin paginada.

Segmentacin Paginada: Paginacin y segmentacin son tcnicas diferentes, cada una de las cuales busca brindar las ventajas enunciadas anteriormente. Para la segmentacin se necesita que estn cargadas en memoria reas de tamaos variables. Si se requiere cargar un segmento en memoria que antes estuvo en ella y fue removido a memoria secundaria, se necesita encontrar una regin de la memoria lo suficientemente grande para contenerlo, lo cual no es siempre factible. En cambio recargar una pgina implica slo encontrar un marco de pgina disponible. A nivel de paginacin, si quiere referenciar en forma cclica n paginas, estas debern ser cargadas una a una, generndose varias interrupciones por fallas de pginas. Bajo segmentacin, esta pgina podra conformar un slo segmento, ocurriendo una sola interrupcin por falla de segmento. No obstante, si bajo segmentacin se desea acceder

un rea muy pequea dentro de un segmento muy grande, este deber cargarse completamente en memoria, desperdicindose memoria. Bajo paginacin slo se cargar la pgina que contiene los tems referenciados. Puede hacerse una combinacin de segmentacin y paginacin para obtener las ventajas de ambas. En lugar de tratar un segmento como una unidad contigua, ste puede dividirse en pginas. Cada segmento puede ser descrito por su propia tabla de pginas. Los segmentos son usualmente mltiplos de pginas en tamao, y no es necesario que todas las pginas se encuentren en memoria principal a la vez. Adems, las pginas de un mismo segmento, aunque se encuentren contiguas en memoria virtual, no necesitan estarlo en memoria real. Las direcciones tienen tres componentes: (s, p, d), donde la primera indica el nmero del segmento, la segunda el nmero de la pgina dentro del segmento y la tercera el desplazamiento dentro de la pgina. Se debern usar varias tablas: SMT (tabla de mapas de segmentos): Una para cada proceso. En cada entrada de la SMT se almacena la informacin descrita bajo segmentacin pura, pero en el campo de direccin se indicara la direccin de la PMT (tabla de mapas de pginas) que describe a las diferentes pginas de cada segmento. PMT (tabla de mapas de pginas): Una por segmento; cada entrada de la PMT describe una pgina de un segmento, en la forma que se present la pagina pura. TBM (tabla de bloques de memoria): Para controlar asignacin de pginas por parte del sistema operativo. JT (tabla de Jobs): Que contiene las direcciones de comienzo de cada una de las SMT de los procesos que se ejecutan en memoria. En el caso de que un segmento sea de tamao inferior o igual al de una pgina, no se necesita tener la correspondiente PMT, actundose en igual forma que bajo

segmentacin pura. Puede arreglarse un bit adicional (S) a cada entrada de la SMT, que indicar si el segmento est paginado o no. Ventajas de la segmentacin paginada: El esquema de segmentacin paginada tiene todas las ventajas de la segmentacin y la paginacin: Debido a que los espacios de memorias son segmentados, se garantiza la facilidad de implantar la comparticin y enlace. Como los espacios de memoria son paginados, se simplifican las estrategias de almacenamiento. Se elimina el problema de la fragmentacin externa y la necesidad de compactacin. Desventajas de la segmentacin paginada: Los tres componentes de la direccin y el proceso de formacin de direcciones hace que se incremente el costo de su implantacin. El costo es mayor que en el caso de de segmentacin pura o paginacin pura. Se hace necesario mantener un nmero mayor de tablas en memoria, lo que implica un mayor costo de almacenamiento. Sigue existiendo el problema de fragmentacin interna de todas -o casi todas- las pginas finales de cada uno de los segmentos. Bajo paginacin pura se desperdicia slo la ltima pgina asignada, mientras que bajo segmentacin paginada el desperdicio puede ocurrir en todos los segmentos asignados.

Memoria virtual: El trmino memoria virtual se asocia a dos conceptos que normalmente aparecen unidos: El uso de almacenamiento secundario para ofrecer al conjunto de las aplicaciones la ilusin de tener ms memoria RAM de la que realmente hay en el sistema. Esta ilusin existe tanto a nivel del sistema, es decir, teniendo en ejecucin ms aplicaciones de las que realmente caben en la memoria principal, sin que por ello cada aplicacin individual

pueda usar ms memoria de la que realmente hay o incluso de forma ms general, ofreciendo a cada aplicacin ms memoria de la que existe fsicamente en la maquina. Ofrecer a las aplicaciones la ilusin de que estn solas en el sistema, y que por lo tanto, pueden usar el espacio de direcciones completo. Esta tcnica facilita enormemente la generacin de cdigo, puesto que el compilador no tiene por qu preocuparse sobre dnde residir la aplicacin cuando se ejecute.

Conclusin
Para concluir se entiende que: En la memoria principal son ejecutados los programas y procesos de una computadora y es el espacio real que existe en memoria para que se ejecuten los procesos. La memoria virtual es aquella que le ofrece a las aplicaciones la ilusin de que estn solas en el sistema y que pueden usar el espacio de direcciones completo. Las direcciones de memoria son de tres tipos: fsicas, lgicas y lineales. El objetivo del intercambio es dar cabida a la ejecucin de ms aplicaciones de las que pueden residir simultneamente en la memoria del sistema. La asignacin consiste en determinar cul espacio vaco en la memoria principal es el ms indicado para ser asignado a un proceso. Las estrategias ms comunes para asignar espacios vacos (huecos) son: primer ajuste, mejor ajuste, peor ajuste. La paginacin es una tcnica de gestin de memoria en la cual el espacio de memoria se divide en secciones fsicas de igual tamao llamadas marcos de pagina, las cules sirven como unidad de almacenamiento de informacin. La segmentacin es un esquema de manejo de memoria mediante el cual la estructura del programa refleja su divisin lgica, llevndose a cabo una agrupacin lgica de la informacin en bloques de tamao variable denominados segmentos

Bibliografa DEITEL Sistemas Operativos STALLINGS William . Sistemas Operativos .. Editorial Prentice Hall TANENBAUM Andrew S. Sistemas Operativos Modernos .Prentice Hal

You might also like