gestion de memoria

Upload: yoel-ben-efraim

Post on 09-Jan-2016

7 views

Category:

Documents


0 download

DESCRIPTION

estes es un ensayo sobre la gestion de memorias ram. en el cual encontraran diferentes tipos de gestionamiento de la mismma

TRANSCRIPT

Resumen sobre Paginacin, Sistemas Combinados y Memoria Virtual

Presentado por:Juan David Meja

Presentado a :Leonardo Javier Nivia Ruiz

Universidad Cooperativa De ColombiaIngeniera De SistemasSistemas OperativosIbagu- Tolima2015

PAGINACIN Y SEGMENTACINPermiten la ubicacin no contigua de programas para combatir la fragmentacin y la degradacin de la memoria. Al poder ubicarse de forma no contigua, un programa ya no necesita un hueco de su tamao, sino que la cantidad total de memoria libre sea mayor o igual. La ubicacin no contigua requiere dividir los programas en trozos. En paginacin, que es un caso particular del particionado fijo, el programa se divide en pginas del mismo tamao. La segmentacin, que es un caso particular de particionado variable, divide el programa en sus unidades lgicas (cdigo, pila, datos, etc...), denominadas segmentos. Las direcciones lgicas de los programas no contiguos presentan una gran independencia de su ubicacin fsica (direccionamiento virtual), proporcionada sobre la base de tablas de traduccin de direcciones. Otra ventaja de los programas no contiguos es que facilita que varios programas compartan trozos entre ellos, por ejemplo el cdigo, lo que permite un ahorro importante de memoria y de tiempo de carga.Es necesario soporte hardware para la traduccin de direcciones. Las direcciones lgicas generadas por el programa se dividen en nmero de pgina (o segmento) y desplazamiento dentro de la pgina. La traduccin del nmero de pgina (o segmento) a marco de pgina en memoria fsica (o direccin de comienzo del segmento) se realiza en tiempo de ejecucin mediante una tabla de pginas (o tabla de segmentos) asociada al programa, que habitualmente reside en memoria. Adems, es conveniente hardware adicional para acelerar la traduccin, ya que cada referencia a memoria implica dos accesos a memoria fsica. Se requiere un registro apuntador a la base de la tabla de pginas del programa o a la tabla de segmentos. El clculo de la direccin fsica es ms simple en paginacin, ya que slo requiere la concatenacin del nmero de marco y el desplazamiento, mientras que la segmentacin implica una suma de la direccin base del segmento y el desplazamiento. Para proteccin, en la paginacin se puede asociar un conjunto de bits a cada entrada de la tabla de pginas: bit de slo lectura bits para restricciones de acceso (en sistemas multiusuario). En segmentacin, la proteccin es ms sencilla y natural, al establecerse de acuerdo a divisiones lgicas del programa. La tabla de segmentos especifica tambin la longitud de cada segmento, lo que proporciona un mecanismo adicional para tratar errores de direccionamiento fuera de segmento, mediante un trap que se genera si el desplazamiento supera la longitud del segmento.Las tablas de pginas o segmentos proporcionan reubicacin dinmica a nivel de pgina o de segmento. En paginacin, el cargador busca marcos de pgina libres en memoria, carga las pginas del programa, crea la tabla de pginas con la correspondencia y carga su direccin en el. En segmentacin el proceso es similar, salvo que requiere la asignacin de huecos adecuados al tamao de cada segmento del programa, as como la colaboracin del compilador y el montador para establecer los tamaos.La traduccin de direcciones, un mecanismo complejo y crtico para el rendimiento, ha de gestionarse a nivel hardware, genricamente por una unidad de gestin de memoria. La memoria libre en segmentacin se gestiona bajo los criterios de las particiones de tamao variable, mientras que en paginacin es adecuado un mapa de bits. La paginacin presenta fragmentacin interna en las pginas. Esto no ocurre en la segmentacin, si bien ahora aparece fragmentacin externa al utilizar unidades de ubicacin de tamaos diferentes. Ya que el tamao de los segmentos es tpicamente mayor que el de las pginas, el problema de la fragmentacin en la segmentacin es ms importante. El mismo mecanismo permite que los programas compartan pginas o, ms propiamente, segmentos. Por ejemplo, una nica copia de cdigo puede compartirse por varios programas simplemente haciendo que las entradas correspondientes al segmento de cdigo en sus tablas de segmentos (o el conjunto de entradas de sus tablas de pginas, en paginacin) coincidan. Los bits de slo lectura estarn activados, para evitar que un programa pueda corromper el cdigo.SISTEMAS COMBINADOSPara evitar el problema de la fragmentacin externa en segmentacin pura, y para evitar el tener cargada una tabla de pginas demasiado grande en paginacin, aparecen sistemas que combinan paginacin y segmentacin. Se denominan sistemas de segmentacin paginada o de paginacin segmentada, segn se entienda que los segmentos se dividen en pginas o que la tabla de pginas se segmenta en varias, respectivamente. La direccin lgica se divide en tres partes: nmero de segmento, de pgina y desplazamiento dentro de la pgina. El nmero de segmento identifica en la tabla de segmentos la direccin base de una tabla de pginas, que se direcciona mediante el nmero de pgina para obtener el marco de pgina en memoria. El clculo de la direccin lgica es ahora ms complejo y lento, requiriendo dos indirecciones. El soporte hardware para traduccin es ahora an ms importante. Son tambin habituales los sistemas doblemente paginados (con dos niveles de paginacin), que siguen un esquema parecido. Generalizando, se pueden concebir sistemas que dividen la direccin virtual en ms de tres partes, especificando diferentes niveles de paginacin y/o segmentacin.La necesidad de ejecutar programas de tamao mayor que la memoria fsica disponible ha originado a lo largo de la historia la introduccin de sofisticados mecanismos de gestin de la ubicacin de programas en memoria. Un primer enfoque es el de dividir en programa en varios mdulos, denominados overlays o solapamientos, a partir de su estructura y cargar dinmicamente slo aquellos que se necesiten. La carga de un solapamiento la realiza una rutina de enlace, que se encarga tambin de seleccionar el(los) solapamiento(s) reemplazado(s), si se requiere espacio para la carga. Tradicionalmente, el programador determinaba qu rutinas constituan los solapamientos, construa la rutina de enlace y las tablas de rutinas de los solapamientos, y elaboraba el programa de forma que las llamadas a las rutinas de los solapamientos se llamasen a travs de la rutina de enlace. MEMORIA VIRTUALLa memoria virtual es el mecanismo ms general para la ejecucin de programas no enteros en memoria. Se basa en un sistema de paginacin (o combinado) en el que slo un subconjunto de las pginas del programa est cargadas en memoria. El resto reside en un dispositivo de almacenamiento secundario, anlogamente al de swap7. La memoria virtual presenta, adicionalmente a su capacidad para ejecutar programa mayor que la memoria fsica disponible, un conjunto de interesantes ventajas con respecto a la paginacin con programas enteros: Reduce la latencia en la ejecucin de los programas, al no tener stos que cargarse completamente para comenzar a ejecutarse. Permite gestionar ms eficientemente la memoria fsica. Cualquier espacio libre, incluso una nica pgina, puede ser aprovechado para cargar un nuevo programa y comenzar a ejecutarlo. Por otra parte, si una pgina de un programa no se referencia durante la ejecucin, no habr que cargarla. Al aumentar el grado de multiprogramacin a costa de reducir el nmero de pginas cargadas de cada programa, permite incrementar la eficiencia de la CPU en sistemas multiprogramados. Ahora la independencia de los programas con respecto a la mquina es completa. Adems del direccionamiento virtual que aporta la paginacin, la cantidad de memoria fsica disponible para ejecutar el programa slo es relevante para la velocidad de ejecucin del programa.Adems del soporte hardware para la traduccin de direcciones de los sistemas paginados, la memoria virtual requiere mecanismos hardware adicional: Espacio para paginacin en un dispositivo de almacenamiento secundario (disco). Bit de validez, V. Para cada entrada de la tabla de pginas es necesario un bit que indique si la pgina correspondiente est cargada en memoria o no. Trap de fallo de pgina. Cuando la pgina referenciada no est cargada en memoria, el mecanismo de interrupciones produce el salto a la rutina de tratamiento del fallo de pgina (que promover la carga de la pgina en memoria). A diferencia de una interrupcin normal, el fallo de pgina puede ocurrir en cualquier referencia a memoria durante la ejecucin de la instruccin, por lo que la arquitectura debe proporcionar los mecanismos adecuados para establecer un estado del procesador consistente antes de saltar a la rutina de tratamiento. Informacin adicional para la gestin del fallo de pgina (bit de pgina modificada, referenciada, etc).