paginación y segmentación giselle m. agosto carlos r. pérez

Post on 11-Apr-2015

120 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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