You are on page 1of 7

Repblica Bolivariana de Venezuela Ministerio del Poder Popular para la Educacin Superior Universidad Politcnica Territorial J. J.

Montilla Estado Portuguesa

Profesor: Luis Len

Integrantes: Cruz Oropeza CI: 8512946 Mara lvarez CI: 13604573 Hctor Cortez CI: 14466939 Yanet Lara CI: 15309886 Milagros Gil CI: 17.304.728 Yohanna Hernndez CI: 18668608 Jisney Mndez CI: 19956490

Guanare, Junio del 2012

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 de memoria a los procesos cuando estos 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 accedan 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 al del procesador como de la memoria. La seleccin de uno de ellos depende principalmente del diseo del hardware para el sistema. A continuacin se observaran los puntos correspondientes a la administracin de la memoria. Memoria Real (Principal): La memoria real o principal es en donde son ejecutados los programas y procesos de una computadora y es el especio 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. Sin Intercambio Monoprogramacin sin intercambio o paginacin 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.

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. Multiprogramacin con particiones fijas Para poder implementar la multiprogramacin, se puede hacer uso de particiones fijas o variables en la memoria. En el caso de las particiones fijas, la memoria se puede organizar dividindose en diversas partes, las cuales pueden variar en tamao. Esta particin la puede hacer el usuario en forma manual, al iniciar una sesin con la mquina. Una vez implementada la particin, hay dos maneras de asignar los procesos a ella. La primera es mediante el uso de una cola nica que asigna los procesos a los espacios disponibles de la memoria conforme se vayan desocupando. El tamao del hueco de memoria disponible es usado para localizar en la cola el primer proceso que quepa en l. Otra forma de asignacin es buscar en la cola el proceso de tamao mayor que se ajuste al hueco, sin embargo hay que tomar en cuenta que tal mtodo discrimina a los procesos ms pequeos. Dicho problema podra tener solucin si se asigna una particin pequea en la memoria al momento de hacer la particin inicial, el cual sera exclusivo para procesos pequeos. 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. 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 chequear si no existen procesos a los que este nuevo hueco pueda darles cabida.

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. Se ha demostrado mediante simulacros que tanto el primer y el mejor ajuste son mejores que el peor ajuste en cuanto a minimizar tanto el tiempo del almacenamiento. Ni el primer o el mejor ajuste es claramente el mejor en trminos de uso de espacio, pero por lo general el primer ajuste es ms rpido. 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). Administracin de la memoria con listas ligadas 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. Asignacin del hueco de intercambio En algunos sistemas, cuando el proceso se encuentra en la memoria, no hay un hueco en el disco asignado a l. Cuando deba intercambiarse, se deber asignar un hueco para l en el rea de intercambio del disco. Los algoritmos para la administracin del hueco de intercambio son los mismos que se utilizan para la administracin de la memoria principal. En otros sistemas, al caerse un proceso, se le asigna un hueco de intercambio en el disco. Cuando el proceso sea intercambiado, siempre pasar al hueco asignado, en vez de ir a otro lugar cada vez.

Cuando el proceso concluya, se libera el hueco de intercambio. La nica diferencia es que el hueco en disco necesario para un proceso debe representarse como un nmero entero de bloques del disco. Por ejemplo, un proceso de 13.5 K debe utilizar 14K (usando bloques de 1K). Fragmentacin La fragmentacin es la memoria que queda desperdiciada al usar los mtodos de gestin de memoria que se vieron en los mtodos anteriores. Tanto el primer ajuste, como el mejor y el peor producen fragmentacin externa. La fragmentacin es generada cuando durante el reemplazo de procesos quedan huecos entre dos o ms procesos de manera no continua y cada hueco no es capaz de soportar ningn proceso de la lista de espera. Tal vez en conjunto si sea espacio suficiente, pero se requerira de un proceso de defragmentacin de memoria o compactacin para lograrlo. Esta fragmentacin se denomina fragmentacin externa. Existe otro tipo de fragmentacin conocida como fragmentacin interna, la cual es generada cuando se reserva ms memoria de la que el proceso va realmente a usar. Sin embargo a diferencia de la externa, estos huecos no se pueden compactar para ser utilizados. Se debe de esperar a la finalizacin del proceso para que se libere el bloque completo de la memoria. Memoria virtual (Secundaria): 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 mas aplicaciones de las que realmente caben en la memoria principal, sin que por ello cada aplicacin individual pueda usar mas memoria de la que realmente hay o incluso de forma mas general, ofreciendo a cada aplicacin mas 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 que preocuparse sobre donde residir la aplicacin cuando se ejecute. Paginacin: 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.

Algoritmos de reemplazo de pginas Con el uso del mtodo de paginacin se puede llegar a saturar la memoria si se incrementa demasiado el nivel de multiprogramacin. Por ejemplo, si se corren seis procesos, cada uno con un tamao de diez pginas de las cuales en realidad slo utiliza cinco, se tiene un mayor uso del CPU y con marcos de sobra. Pero pudiera suceder que cada uno de esos procesos quiera usar las diez pginas resultando en una necesidad de 60 marcos, cuando solo hay 40 disponibles. Esto provoca sobre-asignacin y mientras un proceso de usuario se est ejecutando, ocurre un fallo de pgina. El hardware se bloquea con el sistema operativo, el cual checa en sus tablas internas y se da cuenta que es un fallo de pgina y no un acceso ilegal de memoria. El sistema operativo determina si la pgina est residiendo en disco, pero tambin determina que no hay marcos de memoria disponibles en la lista de marcos libres. Al ocurrir el fallo de pgina, el sistema operativo debe elegir una pgina para retirarla de la memoria y usar el espacio para la pgina que se necesita para desbloquear el sistema y que el hardware pueda seguir trabajando. Si la pgina por eliminar de la memoria fue modificada, se debe volver a escribir al disco para mantener la informacin actualizada; de lo contrario, si la pgina no fue modificada no es necesario rescribir la informacin a disco y la pgina que se carga simplemente se escribe sobre la pgina a borrar en memoria. Espacio de direcciones: Los espacios de direcciones involucrados en el manejo de la memoria son de tres tipos: Direcciones Fsicas: Son aquellas que referencia alguna posicin en la memoria fsica. Direcciones Lgicas: Son las direcciones utilizadas por los procesos. Sufren una serie de transformaciones, realizada por el procesador (MMU), antes de convertirse en direcciones fsicas. Direcciones lineales: Se obtienen a partir de direcciones lgicas tras haber aplicado una transformacin dependiente de la arquitectura. Los programas de usuario siempre tratan con direcciones virtuales, nunca ven las direcciones fsicas reales. Unidad de manejo de memoria: La unidad de manejo de memoria (MMU) es parte del procesador. Sus funciones son: Convertir las direcciones lgicas emitidas por los procesos en direcciones fsicas. Comprobar que la conversin se puede realizar. La direccin lgica podra no tener una direccin fsica asociada. Por ejemplo, la pgina correspondiente a una direccin se puede haber trasladado a una zona de almacenamiento secundario temporalmente. Comprobar que el proceso que intenta acceder a una cierta direccin de memoria tiene permiso para ello.

You might also like