Paginación y Segmentación
Download
Report
Transcript Paginación y Segmentación
Paginación y Segmentación
Giselle 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