Publicado el 5 de Septiembre del 2018
828 visualizaciones desde el 5 de Septiembre del 2018
762,7 KB
86 paginas
Creado hace 10a (28/01/2015)
Concepto
Paginación sobre demanda
Reemplazo de páginas
Asignación de marcos
Administración de memoria: Memoria
virtual
Gunnar Wolf
Facultad de Ingeniería, UNAM
Instituto de Investigaciones Económicas, UNAM
Gunnar Wolf
Administración de memoria: Memoria virtual
Concepto
Paginación sobre demanda
Reemplazo de páginas
Asignación de marcos
Índice
1 Concepto
2 Paginación sobre demanda
3 Reemplazo de páginas
4 Asignación de marcos
Gunnar Wolf
Administración de memoria: Memoria virtual
Concepto
Paginación sobre demanda
Reemplazo de páginas
Asignación de marcos
Disociar por completo memoria física y lógica
El primer gran paso hacia la memoria virtual lo cubrimos
al hablar de paginación
Cada proceso tiene una vista lógica de su memoria
Cada proceso se mapea a la memoria física
Pero es exclusivo, distinto del de los demás procesos
Ahora cada proceso tiene un espacio de direccionamiento
exclusivo y muy grande
Pero omitimos cómo es que podemos ofrecer más
memoria que la físicamente disponible
Aquí entra en juego la memoria virtual
La memoria física es sólo una proyección parcial de la
memoria lógica, potencialmente mucho mayor
Gunnar Wolf
Administración de memoria: Memoria virtual
Concepto
Paginación sobre demanda
Reemplazo de páginas
Asignación de marcos
Retomando el intercambio
Vimos el intercambio en primer término al intercambio
(swap) al hablar de memoria particionada
Espacio de memoria completo de un proceso
Mejora cuando hablamos de segmentación
Intercambio parcial; segmentos no utilizados.
El proceso puede continuar con porciones congeladas a
almacenamiento secundario
Con la memoria virtual, el intercambio se realiza por
página
Mucho más rápido que por bloques tan grandes como un
segmento
Completamente transparente al proceso
Gunnar Wolf
Administración de memoria: Memoria virtual
Concepto
Paginación sobre demanda
Reemplazo de páginas
Asignación de marcos
Esquema general empleando memoria virtual
Figura: Esquema general de la memoria, incorporando espacio en
almacenamiento secundario, representando la memoria virtual
Gunnar Wolf
Administración de memoria: Memoria virtual
Concepto
Paginación sobre demanda
Reemplazo de páginas
Asignación de marcos
Pequeño cambio de nomenclatura
El intercambio (swap) deja de ser un último recurso
Pasa a ser un elemento más en la jerarquía de memoria
El mecanismo para intercambiar páginas al disco ya no es
un mecanismo aparte
Ya no hablamos del intercambiador (swapper)
Sino que del paginador
Gunnar Wolf
Administración de memoria: Memoria virtual
Concepto
Paginación sobre demanda
Reemplazo de páginas
Asignación de marcos
Transparencia al proceso
Es importante recalcar que cuando hablamos de memoria
virtual, ésta se mantiene transparente al proceso
El proceso puede dedicarse a cumplir su tarea, el sistema
operativo paginará la memoria según haga falta
Es posible hacer ciertas indicaciones de preferencia, pero
en general no es el caso
Gunnar Wolf
Administración de memoria: Memoria virtual
Concepto
Paginación sobre demanda
Reemplazo de páginas
Asignación de marcos
Índice
1 Concepto
2 Paginación sobre demanda
3 Reemplazo de páginas
4 Asignación de marcos
Gunnar Wolf
Administración de memoria: Memoria virtual
Concepto
Paginación sobre demanda
Reemplazo de páginas
Asignación de marcos
Deja dormir al código durmiente
En el transcurso de la vida de un proceso, porciones
importantes de su memoria se mantienen durmientes
Código que sólo se emplea eventualmente
Respuesta a situaciones de excepción
Exportación de un documento a determinado formato
Vericación de sanidad al cerrar el programa
Estructuras inicializadas con espacio para permitir que
crezcan
. . .
Las páginas en que están dichos datos no son necesarias
durante la ejecución normal
El paginador puede posponer su carga hasta cuando sean
necesarias
Si es que alguna vez son requeridas
Gunnar Wolf
Administración de memoria: Memoria virtual
Concepto
Paginación sobre demanda
Reemplazo de páginas
Asignación de marcos
Entonces, ¾sobre demanda?
Todo el código que ejecute o referencie directamente el
procesador tiene que estar en memoria principal
Pero no tiene que estarlo antes de ser referenciado
Para ejecutar un proceso, sólo requerimos cargar la
porción necesaria para comenzar la ejecución
Podemos emplear a un paginador ojo
Sólo ir cargando a memoria las páginas conforme van a
ser utilizadas
Las páginas que no sean requeridas nunca serán cargadas
a memoria
Gunnar Wolf
Administración de memoria: Memoria virtual
Concepto
Paginación sobre demanda
Reemplazo de páginas
Asignación de marcos
¾Paginador ojo?
Flojo: Concepto usado en diversas áreas del cómputo
Flojo (Lazy) Busca hacer el trabajo mínimo en un principio, y
diferir para más tarde tanto como sea posible
Ansioso (Eager) Busca realizar todo el trabajo que sea posible
desde un principio
Gunnar Wolf
Administración de memoria: Memoria virtual
Concepto
Paginación sobre demanda
Reemplazo de páginas
Asignación de marcos
¾Cómo hacemos ojo al paginador?
Estructura de MMU muy parecida a la del TLB
La tabla de páginas incluirá un bit de validez
Indica si la página está presente o no en memoria
Si no está presente, causa un fallo de página
Gunnar Wolf
Administración de memoria: Memoria virtual
Concepto
Paginación sobre demanda
Reemplazo de páginas
Asignación de marcos
Respuesta a un fallo de página
Figura: Pasos que atraviesa la respuesta a un fallo de página
Administración de memoria: Memoria virtual
Gunnar Wolf
Concepto
Paginación sobre demanda
Reemplazo de páginas
Asignación de marcos
Pasos para atender a un fallo de página
1 Vericar en PCB: ¾Esta página ya fue asignada al
proceso? (¾es válida?)
2 Si no es válida, se termina el proceso
3 Buscar un marco disponible
P.ej. en una tabla de asignación de marcos
4 Solicita el al disco la lectura de la página hacia el marco
especicado
Continúa ejecutando otros procesos
5 Cuando naliza la lectura, actualiza PCB y TLB para
indicar que la tabla está en memoria
6 Termina la suspensión del proceso.
Continúa con la instrucción que desencadenó el fallo.
El proceso continúa como si la página siempre hubiera
estado en memoria
Gunnar Wolf
Administración de memoria: Memoria virtual
Concepto
Paginación sobre demanda
Reemplazo de páginas
Asignación de marcos
Paginación puramente sobre demanda
Llevar este proceso al extremo: Sistema de paginación
puramente sobre demanda (Pure demand paging)
Al iniciar la ejecución de un proceso, lo hace sin ninguna
página en memoria
El registro de siguiente instrucción apunta a una
dirección que no ha sido cargada
De inmediato se produce un fallo de página
El sistema operativo responde cargando esta primer
página
Conforme avanza el ujo del programa, el proceso va
ocupando el espacio real que empleará
Gunnar Wolf
Administración de memoria: Memoria virtual
Concepto
Paginación sobre demanda
Reemplazo de páginas
Asignación de marcos
Efecto de la paginación sobre demanda
Al no cargarse todo el espacio de un proceso, puede
iniciar su ejecución más rápido
Al no requerir tener en la memoria física a los procesos
completos, puede haber más procesos en memoria de los
que cabrían antes
Aumentando el grado de multiprogramación
Gunnar Wolf
Administración de memoria: Memoria virtual
Concepto
Paginación sobre demanda
Reemplazo de páginas
Asignación de marcos
Midiendo el impacto en la ejecución
El impacto en la ejecución de un proceso puede ser muy
grande
Un acceso a disco es varios miles de veces más lento que
un acceso a memoria
Podemos calcular el tiempo de acceso efectivo (te) a
partir de la probabilidad de que en un proceso se presente
un fallo de página (0 ≤ p ≤ 1)
Conociendo el tiempo de acceso a memoria (ta) y el
tiempo que toma atender a un fallo de página (tf ):
te = (1 − p)ta + ptf
Gunnar Wolf
Administración de memoria: Memoria virtual
Concepto
Paginación sobre demanda
Reemplazo de páginas
Asignación de marcos
Resolviendo con valores actuales
ta ronda entre los 10 y 200ns
tf está cerca de los 8ms
Latencia del disco duro: 3ms
Tiempo de posicionamiento de cabeza: 5ms
Tiempo de transferencia: 0.05ms
Si sólo uno de cada mil accesos a memoria ocasiona un
fallo (p = 1
1000):
te = (1 − 1
1000) × 200ns + 1
1000 × 8, 000, 000ns
te = 199,8ns + 8000ns = 8199,8ns
Gunnar Wolf
Administración de memoria: Memoria virtual
Concepto
Paginación sobre demanda
Reemplazo de páginas
Asignación de marcos
Ahora sí: El impacto de la paginación sobre
demanda
Esto es, el tiempo efectivo de acceso a memoria es 40
veces más lento que si no empleáramos paginación sobre
demanda
Podríamos mantener la penalización por degradación por
debajo del 10 % del tiempo original
Pero para que te ≤ 220, tendríamos que reducir a
p ≤ 1
No olviden: No (necesariamente) es tiempo muerto
399,990
Multiprogramación: Mientras un proceso espera a que se
resuelva su fallo de página, otros pueden continuar
ejecutando
Gunnar Wolf
Administración de memoria: Memoria virtual
Concepto
Paginación sobre demanda
Reemplazo de páginas
Asignación de marcos
Ahora sí: El impacto de la paginación sobre
demanda
Esto es, el tiempo efectivo de acceso a memoria es 40
veces más lento que si no empleáramos paginación sobre
demanda
Podríamos mantener la penalización por degradación por
debajo del 10 % del tiempo original
Pero para que te ≤ 220, tendríamos que reducir a
p ≤ 1
No olviden: No (necesariamente) es tiempo muerto
399,990
Multiprogramación: Mientras un proceso espera a que se
resuelva su fallo de página, otros pueden continuar
ejecutando
Gunnar Wolf
Administración de memoria: Memoria virtual
Concepto
Paginación sobre demanda
Reemplazo de páginas
Asignación de marcos
Acomodo de las páginas en disco
El cálculo presentado asume que el acomodo de las
páginas en disco es óptimo
Si hay que agregar el espacio que una página ocupa en un
sistema de archivos, tf fácilmente aumenta
Navegar estructuras de directorio
Posible fragmenta
+
Comentarios de: Administración de memoria: Memoria virtual (0)
No hay comentarios