Memoria Virtual
danielfe152 de Agosto de 2014
868 Palabras (4 Páginas)369 Visitas
SISTEMAS OPERATIVOS 2008 Trabajo práctico 4
Memoria Virtual (1)
1. ¿Qué es y para qué sirve la memoria virtual? La memoria virtual es una abstracción provista por el sistema operativo que permite a los procesos disponer de un espacio de direccionamiento que en general es mucho mayor que la cantidad de memoria principal presente en el sistema. En otras palabras, crea una ilusión hacia los procesos, haciéndoles “creer” que hay más memoria principal que la realmente instalada en el sistema.
En principio sirve para permitir la ejecución de programas cuyo código completo no cabe en memoria principal, sin que los programadores tengan que ocuparse de este hecho. Habilita al SO para proteger, compartir y reubicar datos y código de programas.
2. ¿Qué es y para qué sirve la MMU? La Memory Management Unit es un dispositivoi de hardware que en general se encuentra encapsulado junto con el procesador, y que se encarga de traducir las direcciones virtuales a direcciones físicas según las tablas generadas y mantenidas por el Sistema Operativo, e implementa los mecanismos de protección de la memoria virtual.
3. Compare los métodos de asignación de espacio en memoria de Primer Encaje, Peor Encaje y Mejor Encaje. Analice sus ventajas y desventajas. Estos algoritmos, ¿pertenecen a sistemas de particiones fijas o variables? Estos algoritmos pertenecen a sistemas de particiones variables (esto no es equivalente necesariamente a segmentación, ver Stallings de Organización y Arquitectura de Computadoras). Primer Encaje: cuando llega una petición de asignación de memoria, se ocupa el primer espacio contiguo disponible según la lista de espacio libre, que se encuentra ordenada por dirección. La ventaja de éste método es su rapidez y sencillez. Mejor Encaje: el algoritmo es esencialmente idéntico al de Primer Encaje, sólo que la lista de espacio libre se encuentra ordenada por tamaño, de menor a mayor. Es algo más complejo mantener la lista ordenada, pero discutiblemente aprovecha mejor el espacio. Es discutible porque puede generar mucha fragmentación externa. Peor encaje: la lista de espacio libre se ordena por tamaño de mayor a menor. La idea de este método es mantener la fragmentación en un mínimo, pensando que ocupando los espacios más grandes genera los huecos o fragmentos más grandes también, por lo tanto manteniendo los fragmentos pequeños (inservibles) en un mínimo; además, siempre asigna la memoria al primer elemento de la lista, por lo que es más rápido al asignar. La desventaja es complejidad, igual que Mejor Encaje.
El algoritmo de estos métodos es sencillo: buscar en la lista hasta encontrar el primer espacio contiguo suficientemente grande. La diferencia radica sólo en cómo se ordena la lista.
4. ¿Qué es la fragmentación interna? ¿A qué método de asignación de memoria corresponde? ¿Hay métodos para eliminarla? La fragmentación interna se genera en los esquemas de asignación de memoria de particiones fijas (no necesariamente equivalente a paginado). Es la porción de memoria que está generalmente al final del código de un programa, que está asignada pero no ocupada. Es el excedente de la asignación. No hay métodos para eliminarla, dado que el código tiene la longitud que debe tener para funcionar. En general, reduciendo el tamaño de los marcos se puede reducir la fragmentación interna, pero tiene un costo asociado (en ocupación de memoria y performance del SO) debido a la cantidad de entradas en la tabla de páginas que esto genera. Un compilador "inteligente" podría hacer uso de ese espacio para mejorar el desempeño.
5. ¿Qué es la fragmentación externa? ¿A qué método de asignación de memoria corresponde? ¿Hay métodos para eliminarla? La fragmentación externa se genera en los esquemas de asignación de memoria de particiones variables (segmentado). Es el espacio libre que queda
...