Paginación y SegmentaciónGiselle M. Agosto
Carlos R. Pérez
Manejo de Memoria
Programas necesitan más memoria de lo que se puede proveer.
Solución: Memoria Virtual!!!Programa cree que tiene más memoria de
la que en realidad hay.
Memoria Virtual
¿Cómo la implementamos? Utilizamos tablas de
paginación. Se divide “address space”
en páginas. Las páginas se asocian a
un pedazo de memoria.
Direcciones en Memoria Virtual
¿Cómo funciona una tabla de paginación? Dirección Virtual
Nos da # de página y offset
Dirección Física Nos da dirección
en memoria
Cada Proceso tiene una diferente
Page faults
Cuando se necesita un página que no está en la memoria, ocurre un “page fault”.
¿Que sucede entonces?
Reemplazo de página
Paginación
¿Donde están las páginas?
En la memoria cuando tienen que ser accesadas.
En el disco cuando no se necesitan.
Reemplazo de páginas
Hay que escoger una página para mover al disco. Se le conoce como “evict”.
¿Que implica esto? Si la página ha sido modificada hay que
grabarla al disco Si no ha sido modificada se le escribe por
encima.
Algoritmos de reemplazo de páginas
¿Como escogemos la página a remover? Con un algoritmo de reemplazo de páginas.
Características de un buen algoritmo Rapidez Rapidez Rapidez
Algoritmo óptimo
¿Como lo logramos?
Adivinando el futuro (cuanto tiempo falta para que esa página tenga que ser accesada).
Es imposible de lograr!!
Not Recently Used (NRU) Algorithm
Referenced/Modified Bits Referenced bit dura un
tiempo especifico Prioridad según estado.
Ventajas: Fácil de entender e implementar
Desventajas: No es el más rápido.
Prioridad R M
Clase 0 0 0
Clase 1 0 1
Clase 2 1 0
Clase 3 1 1
Algoritmo de segunda oportunidad
Es un FIFO usando el R bit. Si R=0 evict Si R=1 la mueve al final,
pone R=0 y comienza otra vez
Algoritmo de Reloj Este algoritmo debe
implementar con una lista circular para mejorar su eficiencia.
Algoritmo FIFO
Mantiene una fila de las páginas.Elimina la página más vieja.
Raramente usado La página mas vieja puede ser la mas
importante.
Least Recently Used (LRU)
Escoge la página menos utilizada. La dificultad consta en
encontrar esta página. Método 1:
Contar el número de referencias
Método 2: Mantener una matrix nxn
Necesitan difícil implementacion en hardware
Implementación del LRU en software
Algoritmo de “aging” Mantiene la cuenta de los R bits por intervalos.
Segmentación
Provee la ventaja de que un proceso tenga uno o más “address spaces”.
Ejemplo: Compilador – Requiere muchas estructuras de
datos diferentes!!!! Variables y atributos Enteros y punto flotante “Parse tree” “Stack”
Porqué Segmentación?
En procesos con un solo “address space” tenemos que lidiar con cambios dinámicos en la data.
Segmentación nos deja tener más de un “address space” por cada estructura de dato en un programa.
Memoria Segmentada
Muchos “address spaces” para un programa.
Ventajas de Segmentación
Simplifica el proceso de “linking”. Facilita cambios a una subrutina o
estructura de datos. Es más fácil compartir recursos entre
procesos. Elimina la repetición de la misma librería en
“address spaces” de diferentes procesos.
Diferentes niveles de protección a cada segmento.
Segmentación y Paginación
Segmentos muy grandes requieren paginación.
Utilizamos memoria virtual para cada segmento.
Cada segmento tiene su propia tabla de páginas.
Direcciones en Segmentación
Se añade número de segmento a memoria virtual.
Protección
Privilegios Nivel 0 – Mayor Nivel 3 – Menor
Subrutinas de diferentes segmentos llamadas en un proceso requieren que se revise el nivel.
?’s
Top Related