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
Descargar

Slide 1