Paginación y segmentación de memoria virtual

21
Rafael Ricardo Munera Wilmer Andrés Rodríguez Gloria María Salamanca Paginación y segmentación de memoria virtual

Transcript of Paginación y segmentación de memoria virtual

Rafael Ricardo Munera

Wilmer Andrés Rodríguez

Gloria María Salamanca

Paginación y segmentación de memoria virtual

MEMORIA VIRTUAL Definición: Es la posibilidad de ejecutar un programa que no esta totalmente en memoria

Esta permite usar mas memoria principal de la que realmente posee el PC. La mayoría de PC posee 4 tipos de memoria:

• Memoria cache

• Registros de la CPU

• Memoria física

• Disco duro

FUENTE: HTTP://ES.WIKIPEDIA.ORG/WIKI/MEMORIA_VIRTUAL

MEMORIA VIRTUALEjecutar un programa que no esta totalmente en memoria permite que:

• Los programas puedan ser mas grandes que la memoria física instalada en la máquina

• Se pueda aumentar el grado de multiprogramación

• La forma mas usual de implementarla es con paginación bajo demanda

FUENTE: HTTP://ES.WIKIPEDIA.ORG/WIKI/MEMORIA_VIRTUAL

PAGINACION BAJO DEMANDA

• Es un sistema paginado con intercambio en donde se intercambia paginas cuando no son necesarias

• El HARDWARE debe suministrar una tabla de paginas con un bit que indique la presencia (o no) de la pagina en memoria de manera que

• Se referencia una pagina cuya entrada en la tabla de paginas tiene el bit de presencia a 1: se accede normalmente

• Se referencia una pagina cuya entrada en la tabla de paginas tiene el bit de presencia a 0: se produce una excepción

• Hace falta también una zona de almacenamiento secundario donde almacenar las paginas

• Hacerlo en un archivo es mas flexible, pero hay que sufrir las indirecciones del sistema de archivos

• Hacerlo en una partición o en un disco dedicado es mas rápido, pero se pierde flexibilidad

• Se pueden ejecutar programas mas grandes que la memoria física a costa de una merma en la velocidad

• Dado que a menudo hay que traer paginas a memoria, surge el problema de cuales reemplazar

• Además de los distintos algoritmos hay que considerar si se hace reemplazo local o global

• Otro aspecto a tener en cuenta son los criterios de asignación de marcos a los procesos

TABLAS DE PAGINA• Cada página tiene un número que se utiliza como índice en la tabla

de páginas, lo que da por resultado el número del marco correspondiente a esa página virtual.

• En teoría, la asociación de las direcciones virtuales con las físicas se efectúa según lo descrito.

• hay que enfrentar dos aspectos fundamentales:

• La tabla de páginas puede ser demasiado grande.

• La asociación debe ser rápida.

FRAGMENTACION

• Es la memoria que queda desperdiciada al usar los métodos de gestión de memoria utilizados que se vieron en los métodos anteriores.

• Esta es generada cuando durante el reemplazo de procesos quedan huecos entre dos o mas procesos de manera no contigua y cada hueco no es capaz de soportar ningún proceso de la lista de espera.

FRAGMENTACION EXTERNA• Existe el espacio de total de memoria para satisfacer un

requerimiento, pero no es contigua. Esta se puede reducir mediante la compactación para colocar toda la memoria libre en un solo gran bloque, pero esta solo es posible si la relocalización es dinámica y se hace en tiempo de ejecución.

• Fragmentación interna, la memoria asignada puede ser mayor ligeramente mayor que la requerida; esta referencia es interna a la partición, pero no se utiliza.

ALGORITMO FIFO• Algoritmo FIFO muy sencillo de implementar

• Inconvenientes:

• Rendimiento del algoritmo pobre, paginas frecuentemente usadas pueden ser sustituidas.

• Se puede presentar anomalía de belady: aumento del número de fallos de pagina al aumentar el número de marcos

ALGORITMO FIFO CON SEGUNDA OPORTUNIDAD

• Combina sencillez y buen rendimiento

• Emplea un bit de referencia asociado a cada página

• Pasos del algoritmo:

• Se elige una página con criterio FIFO y se examina su bit de referencia.

• Si el bit de referencia está activo, se desactiva y se trata la página como si se acabara de llegar a memoria. Volver a 1

ALGORITMO LRU(LEAST-RECENTLY-USED)

• Algoritmo de aproximación al reemplazo óptimo

• Basado en utilizar el pasado reciente como una predicción del futuro más próximo

• Sustituye la página menos usada en el pasado inmediato

• Carece de la anomalía de Belady.

• La implementación requiere de hardware adicional:

• Campo en las entradas de la tabla de páginas.

• Pila de las páginas en memoria.

ALGORITMO DE APROXIMACION AL LRU

• Existen diferentes algoritmos, entre ellos:

• Generalmente se implementa mediante una cola FIFO circular con las páginas cargadas

• Algoritmo del reloj global

• Algoritmo FIFO con segunda oportunidad

ALGORITMO DE RELOJ GLOBAL• Se colocan todas las páginas que pueden ser

sustituidas en una lista circular

• Un proceso de sistema borra los bits de referencia cada cierto tiempo utilizando un puntero giratorio

• Si en la siguiente vuelta el bit sigue desactivado, la página en cuestión es una buena candidata a ser sustituida.

ALGORITMO DE NFU • Algoritmo que simula por software el algoritmo LRU

• Utiliza un contador asociado a cada página que se incrementa en cada interrupción de reloj de acuerdo con el valor del bit de referencia

• En cada pulso de reloj se borra el valor del bit de referencia

• Si hay un fallo de página se elige la página con el valor mínimo del contador para su sustitución.