Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Gestión de Memoria
Introducción
Asignación de espacio contiguo
Asignación estática de memoria particionada
Asignación dinámica de memoria particionada
Protección y uso compartido
Asignación de espacio no contiguo
Segmentación
Paginación
Segmentación con paginación
Gestión de memoria virtual
Introducción
Paginación por demanda
Algoritmos de reemplazo de páginas
Algoritmos de asignación de marcos de página
Introducción
Antecedentes
Protección
En cada entrada de la tabla de segmentos hay:
bit de validez = 0 segmento ilegal
privilegios de lectura/escritura/ejecución
Los bits de protección están asociados con los segmentos;
la compartición de código ocurre a nivel de segmento
Ya que los segmentos varían en longitud, la asignación de
memoria es un problema de asignación dinámica
Ejemplo de Segmentación
Paginación
Espacio de Direcciones Virtuales
Paginación por Demanda
i
i
Tabla de páginas
Auto incremento/decremento
Soluciones
Comprobar antes de ejecutar la instrucción que no va a
producirse un fallo de página
Almacenar los valores antiguos en registros temporales
Guardar el estado del microcódigo del procesador
Pasos del Manejo de un Fallo de Páginas
Rendimiento de la Paginación por Demanda
1 1 4 5
2 2 1 3 9 fallos de página
3 3 2 4
4 marcos
1 1 5 4
2 2 1 5 10 fallos de páginas
3 3 2
4 4 3
Anomalía de Belady: más marcos más fallos de página
Reemplazo de Páginas FIFO
Anomalía de Belady
Algoritmo Óptimo
1 4
2 6 fallos de página
3
4 5
1 1 1 1 5
2 2 2 2 2
3 5 5 4 4
4 4 3 3 3
Bit de referencia
Con cada página se asocia un bit, inicialmente puesto a 0
Cuando se referencia una página el bit se pone a 1
Se reemplaza la página con el bit a 0 (si hay alguna)
Esto no permite conocer el orden de uso
Algoritmo de segunda oportunidad
Necesitamos un bit de referencia
También se denomina algoritmo de reloj
Si la página a reemplazar (de acuerdo al orden del reloj) tiene
el bit de referencia a 1:
Se pone el bit a 0
Se deja la página en memoria
Trata de reemplazar la siguiente página siguiendo el orden
del reloj
Algoritmo de Segunda Oportunidad (de Reloj)
Algoritmos de Conteo
Prepaginación
Se usa para reducir el gran número de fallos de página que
ocurre al comienzo de un proceso
Consiste en traer a memoria todas o algunas de las páginas que
necesitará un proceso antes de que las referencie
La páginas prepaginadas pueden no ser utilizadas, hay gasto de
memoria y E/S
Asumimos que s páginas son prepaginadas y una fracción α de
esas páginas son usadas
Es el coste de los s * α fallos de página ahorrados > o < que
el coste de prepaginar s * (1- α) páginas innecesarias?
Si α es cercano a cero la prepaginación no interesa
Tamaño de las Páginas
Programa 2
for (i = 0; i < 128; i++)
for (j = 0; j < 128; j++)
data[i][j] = 0;