Memoria Virtual Hardware y Estructuras de Control Ejecución de un

Anuncio
Hardware y Estructuras de Control
• Las referencias de memoria se traducen a
direcciones físicas dinámicamente en tiempo de
ejecución
Memoria Virtual
– Un proceso puede ser intercambiado hacia dentro o
fuera de la memoria principal ocupando diferentes
regiones
Capítulo 8
• Un proceso se puede dividir en trozos que no
sean asignados de forma contigua en memoria
principal
– Todos los trozos de un proceso no necesitan estar
cargados en memoria principal durante la ejecución
2
Ejecución de un Programa
Ejecución de un Programa
• El sistema operativo trae a memoria principal
unos cuantos trozos del programa
• Conjunto Residente: porción del proceso que está
en memoria principal
• Se genera una interrupción cuando se necesita una
dirección que no está en memoria principal
• El sistema operativo pone al proceso en un estado
de bloqueado
• Se trae a memoria principal la parte del proceso
que contiene la dirección lógica
– El S.O. emite una petición de lectura al disco
– Otro proceso entra en ejecución (se despacha)
mientras la operación de E/S tiene lugar
– Cuando se completa la lectura del disco, se produce
una interrupción que hace que el S.O. ponga en estado
activo (ready) al proceso afectado
3
4
Ventajas de Dividir un Proceso
Tipos de Memoria
• Se puede mantener en memoria principal más
procesos
• Memoria Real
– Memoria principal
– Sólo se carga algunas partes de cada proceso
– Con tantos procesos en memoria principal, más
probable es que haya un proceso en estado de listo
(ready) en cualquier instante.
• Memoria Virtual
– Memoria en disco
– Permite la multiprogramación eficaz y libera al
usuario de la limitación en tamaño de la memoria
principal
• Un proceso puede ser mayor que toda la
memoria principal
5
Sobrepaginación (thrashing)
6
Principio de Localidad
• Sacar de memoria una parte de un proceso
justo antes de que se vuelva a necesitar
• El procesador invierte la mayor parte del
tiempo en intercambiar trozos de proceso en
vez de en ejecutar las instrucciones del usuario
• Las referencias al programa y las datos de un
proceso tienden a agruparse
• Sólo unas pocas partes de un proceso serán
necesaria en un intervalo corto de tiempo
• Es posible hacer suposiciones inteligentes sobre
qué partes se necesitarán en el futuro
• Esto sugiere que la memoria virtual puede ser
eficiente
7
8
Soporte Necesario para
Memoria Virtual
Paginación
• El hardware debe soportar paginación y
segmentación
• El sistema operativo debe ser capaz de gestionar
el movimiento de páginas y/o segmentos entre la
memoria secundaria y la memoria principal
• Cada proceso tiene su propia tabla de páginas
• Cada entrada en la tabla de páginas contiene el
número del marco en memoria principal de la
página correspondiente
• Se necesita un bit para indicar cuando la página
está en memoria principal o no
9
Bit de Modificación
en la Tabla de Páginas
10
Entradas en Tablas de Página
• Se necesita otro bit para indicar si se ha
modificado el contenido de la página desde que
se cargo en memoria principal
• Si no se ha realizado ningún cambio, la página
no tiene que ser escrita en el disco cuando haya
que sacarla de memoria (swap out)
11
12
Esquema de Dos Niveles para
Direcciones de 32 bits
14
Tablas de Páginas
Translation Lookaside Buffer
• La tabla de paginas completa puede ocupar
mucho espacio en memoria principal
• La tabla de páginas también se almacena en
memoria virtual
• Cuando un proceso se ejecuta, parte de su tabla
de páginas está en memoria principal
• Cada referencia a memoria virtual puede causar
dos accesos a memoria física
– una consulta en la tabla de páginas
– una para buscar el dato
• Para superar el problema se coloca una cache de
alta velocidad para entradas de tablas de página
– llamada TLB - Translation Lookaside Buffer
15
16
Translation Lookaside Buffer
Translation Lookaside Buffer
• Contiene las entradas de tablas de página que han
sido usadas más recientemente
• Funciona igual que una memoria cache
• Dada una dirección virtual, el procesador examina
la TLB
• Si se encuentra la entrada de la tabla de página
(hit), se lee el número del marco y se forma la
dirección real
• Si no se encuentra la entrada de la tabla de página
(miss), el número de la página se usa como índice
en la tabla de página del proceso
17
18
Translation Lookaside Buffer
• Primero se comprueba si la página está todavía en
memoria
– si no está en memoria se produce un fallo de página
• La TLB se actualiza para que incluya la nueva
entrada de página
19
20
Tamaño de Página
• Cuanto menor es el tamaño de página, menos volumen
de fragmentación interna
• Cuanto menor es el tamaño de página, más página se
necesitan por proceso
• Más páginas por proceso dan lugar a tablas de páginas
mayores
• Tablas de páginas mayores, mayor porción de la tabla de
páginas en memoria virtual
• La memoria secundaria está diseñada para transferir
grandes bloques de datos, desde este punto de vista es
mejor un tamaño de página grande
22
Tamaño de Página
• Tamaño de página pequeño, encontramos muchas
páginas en memoria principal.
• A medida que transcurre la ejecución, las páginas
que están en memoria contendrán las porciones
de proceso con las referencias más recientes.
Pocos fallos de página.
• Incrementar el tamaño de página contendrá
posiciones lejanas a cualquier referencia reciente.
Se incrementan los fallos de página.
23
24
Tamaño de Página
Ejemplos de Tamaño de Página
• Tamaños de página múltiples proporcional la
flexibilidad necesaria para un uso eficiente de la
TLB
• Para las instrucciones del programa se pueden
usar páginas grandes
• Para los threads se pueden usar páginas pequeñas
• La mayoría de los sistemas operativos sólo
soportan un tamaño de página
25
Segmentación
26
Tablas de Segmentación
• Pueden ser diferentes, tamaño dinámico
• Simplifica la gestión de estructuras de datos que
crecen
• Permite a los programas ser modificador y
recompilados independientemente
• Presta compartición de datos entre procesos
• Presta protección
• Correspondientes a segmentos en memoria
principal
• Cada entrada contiene la longitud del segmento
• Se necesita un bit para indicar si el segmento
sigue en memoria
• Se necesita otro bit para determinar si el
segmento ha sido modificado desde que se cargó
en memoria
27
28
Entradas de Tablas de Segmentación
Segmentación y Paginación combinada
•
•
•
•
La paginación es transparente al usuario
La paginación elimina la fragmentación externa
La segmentación es visible al programador
La segmentación permite estructuras de datos que
crecen, modularidad y da soporte a la compartición
y protección
• Cada segmento se divide en páginas de tamaño fijo
29
30
Segmentación y Paginación combinada
31
32
Política de Búsqueda
Política de Reemplazo
• Política de Búsqueda (fetch)
• Política de Ubicación
– Determina cuando se debe cargar en memoria una
página
– La paginación por demanda sólo trae páginas a
memoria principal cuando se hace referencias a
posiciones de la página
– Tiene sentido en sistemas segmentados no paginados y
en entornos multiprocesador
• Política de Reemplazo
– ¿Qué página debe ser reemplazada?
– La página eliminada debe ser aquella que tiene menos
probabilidad de ser referenciada en el futuro
– La mayoría de las políticas predicen el comportamiento
futuro basándose en el comportamiento pasado
• Hay muchos fallos de página cuando comienza un proceso
– La prepaginación trae más página de las requeridas
• Es más eficiente traer páginas que está contiguas en disco
33
Política de Reemplazo
Algoritmos de Reemplazo Básicos
• Bloqueo de Marco
–
–
–
–
–
34
• Política Óptima
Si un marco está bloqueado, no puede ser reemplazado
El kernel del sistema operativo
Las estructuras de control
Buffers de E/S
Existe un bit de bloqueo asociado a cada marco
– Selecciona para reemplazar la página que tardará más
tiempo en ser referenciada
– Es imposible tener un conocimiento perfecto de los
eventos futuros
35
36
Algoritmos de Reemplazo Básicos
Algoritmos de Reemplazo Básicos
• Menos Recientemente Utilizada (LRU)
• Primero en entrar, primero en salir
– Del inglés, Least Recently Used
– Reemplaza la página que ha sido referenciada hace más
tiempo
– Por el principio de localidad, ésta debe ser la página con
menos probabilidad de ser referenciada en el futuro
– Cada página puede ser etiquetada con la hora de la
última referencia. Esto supone una gran sobrecarga.
37
– Del inglés, First-in, first-out (FIFO)
– Trata los marcos de página asociados a un proceso
como una cola circular
– Las página se eliminan siguiendo el estilo round-robin
– La política de reemplazo más sencilla de implementar
– La página que lleva más tiempo en memoria es la que
se reemplaza
– Estas páginas pueden ser necesitadas muy pronto
38
Algoritmos de Reemplazo Básicos
• Política de Reloj (clock)
– Necesita un bit adicional, bit de uso
– Cuando la página se carga en memoria se pone el bit de
uso a 0
– Cuando la página se referencia, el bit de uso se pone a 1
– Cuando hay que reemplazar una página, la primera que
se encuentre con el bit de uso a 0 se reemplaza
– Durante la búsqueda de reemplazo, cada bit de uso que
esté a 1 se cambia a 0
39
40
Algoritmos de Reemplazo Básicos
• Buffer de páginas (page buffering)
– La página reemplazada pertenece a una de estas dos
listas
• lista de páginas libres, si la página no ha sido modificada
• lista de páginas modificadas
41
Tamaño del Conjunto Residente
42
Ubicación Variable, Ámbito global
• Ubicación fija
•
•
•
•
El más fácil de implementar
Adoptado por muchos sistemas operativos
Los S.O. mantienen listas de marcos libres
Cuando ocurre un fallo de página se añade un
marco libre al conjunto residente del proceso
• Si ha hay marcos libres, se reemplaza uno de
otro proceso
– se da al proceso un número fijo de página en las que
ejecutarse
– cuando ocurre un fallo de página, una de las páginas
de ese proceso se debe reemplazar
• Ubicación variable
– el número de páginas asignadas a un proceso varía
durante el tiempo de vida del proceso
43
44
Ubicación Variable, Ámbito Local
Política de Limpieza
• Cuando se añade un nuevo proceso, se le asigna
un número de marcos de página basado en el tipo
de aplicación, la petición del programa u otros
criterios
• Cuando ocurre un fallo de página, se selecciona
una página de entre el conjunto residente del
proceso que sufre la falta
• Asignación re-evaluable de una vez a otra
• Demanda de limpieza
– se escribe a disco una página cuando se selecciona
para ser reemplazada
• Prelimpieza
– las página se escriben por lotes
45
Política de Limpieza
46
Control de Carga
• La mejor aproximación usa un buffer de páginas
• Determina el numero de procesos que estarán
residentes en memoria principal
• Demasiado pocos, mayor probabilidad de que
todos estén bloqueados y mucho tiempo dedicado
al intercambio de procesos (swap)
• Demasiados procesos dan lugar a sobrepaginación
(thrashing)
– Las páginas reemplazadas están en dos listas
• Modificadas y no modificadas
– Las páginas de la lista de modificadas se escriben por
lotes periódicamente
– Las páginas de la lista de no modificadas son
recicladas si son referenciadas de nuevo o se pierden
si el marco se asigna a otra página
47
48
Suspensión de Proceso
Suspensión de Proceso
• Proceso con la menor prioridad
• Proceso que falla
• Proceso con el menor conjunto residente
– este proceso requiere el menor esfuerzo futuro de recarga
• Mayor proceso
– este proceso no tiene su conjunto de trabajo
(working set) en memoria principal, así que de
todas formas se bloqueará
– se obtiene la mayor cantidad de marcos libres
• Proceso con la mayor ventana de ejecución restante
• Último proceso activado
– este proceso es el menos probable que tenga su
conjunto de trabajo residente
49
Gestión de Memoria de UNIX y Solaris
50
Estructuras de Datos
• Sistema de Paginación
–
–
–
–
Tabla de páginas
Descriptor de Bloque de Disco
Tabla de datos de marco de página
Tabla de uso de swap
51
52
Estructuras de Datos
Gestión de Memoria de UNIX y Solaris
• Reemplazo de página
– refinamiento de la política de reloj (clock)
• Asignador de Memoria del Kernel
– la mayoría de los bloques son más pequeños que el
tamaño típico de página
53
Gestión de Memoria de Linux
54
Gestión de Memoria de Windows 2000
• Directorio de página
• Directorio central de página
• Tabla de página
• Paginación W2K
– Available
– Reserved
– Committed
55
(disponible)
(Reservada)
(Comprometida)
56
57
Descargar