memoria virtual capítulo 8. estructuras de hardware y de control todas las referencias a la memoria...

57
Memoria virtual Capítulo 8

Upload: melania-lima

Post on 14-Apr-2015

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Memoria virtual

Capítulo 8

Page 2: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Estructuras de hardware y de control

• Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas durante la ejecución: – Un proceso puede cargarse y descargarse de la memoria

principal de tal forma que ocupe regiones diferentes.

• Un proceso puede dividirse en varias partes y no es necesario que estas partes se encuentren contiguas en la memoria principal durante la ejecución: – No será necesario que todas las páginas o todos los

segmentos de un proceso estén en la memoria durante la ejecución.

Page 3: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Ejecución de un programa• El sistema operativo comienza trayendo sólo

unos pocos fragmentos del programa. • El conjunto residente es la parte de un

proceso que está realmente en la memoria principal.

• Si el procesador encuentra una dirección lógica que no está en la memoria principal, genera una interrupción que indica un fallo de acceso a la memoria.

• El sistema operativo pone al proceso interrumpido en estado Bloqueado.

Page 4: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Ejecución de un programa

• El sistema operativo necesita traer a la memoria principal el fragmento del proceso que contiene la dirección lógica que provocó el fallo de acceso: – El sistema operativo emite una solicitud de Lectura

de E/S al disco. – El sistema operativo puede expedir otro proceso

para que se ejecute mientras realiza la operación de E/S.

– Una vez que el fragmento deseado se ha traído a la memoria principal y se ha emitido la interrupción de E/S, se devuelve el control al sistema operativo, que coloca el proceso afectado en el estado de Listo.

Page 5: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Ventajas de dividir un proceso

• Se pueden mantener más procesos en la memoria principal: – Se cargan sólo algunos fragmentos de un

proceso particular. – Con tantos procesos en la memoria principal

es muy probable que uno de los procesos esté en estado Listo en un instante determinado.

• Es posible que un proceso sea más grande que toda la memoria principal.

Page 6: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Tipos de memoria

• Memoria real:– Memoria principal.

• Memoria virtual:– Memoria situada en el disco.– Permite una multiprogramación muy

efectiva y releva al usuario de las rígidas e innecesarias restricciones de la memoria principal.

Page 7: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Hiperpaginación

• El sistema operativo expulsa un fragmento de un proceso justo antes de ser usado.

• El procesador consume más tiempo intercambiando fragmentos que ejecutando instrucciones de usuario.

Page 8: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Principio de cercanía

• Las referencias a los datos y al programa dentro de un proceso tienden a agruparse.

• Durante cortos periodos de tiempo se necesitarán sólo unos pocos fragmentos de un proceso.

• Sería posible hacer predicciones inteligentes sobre qué fragmentos de un proceso se necesitarán en un futuro cercano.

• El principio de cercanía sugiere que los esquemas de memoria virtual pueden funcionar eficazmente.

Page 9: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Soportes de la memoria virtual

• Tiene que existir un soporte de hardware para la paginación y la segmentación.

• El sistema operativo debe incluir un software para gestionar el movimiento de páginas o segmentos entre memoria secundaria y memoria principal.

Page 10: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Paginación

• Cada proceso tiene su propia tabla de página.

• Cada entrada de la tabla de páginas contiene el número de marco de la página correspondiente en la memoria principal.

• Se necesita un bit para indicar si la página correspondiente está presente en la memoria principal o no lo está.

Page 11: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

El bit de modificación en la tabla de páginas

• Otro bit de control necesario en la entrada de la tabla de páginas es el bit de modificación para indicar si el contenido de la página se ha alterado desde que la página se cargó en la memoria principal.

• Si no ha habido cambios, no es necesario escribir la página cuando sea sustituida en el marco que ocupa actualmente.

Page 12: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Entradas de la tabla de páginas

Dirección virtual

Entrada de la tabla de páginas

(a) Sólo paginación

Número de página Desplazamiento

PP MM Otros bits de controlOtros bits de control Número de marcoNúmero de marco

Figura 8.2. Formatos típicos de gestión de memoria.

Page 13: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

N.º pág.

N.º marco

Figura 8.3. Traducción de direcciones en un sistema de paginación.

Despla-zamiento N.º marco

Despla-zamiento

Despla-zamiento

Dirección virtual

Registro

Tabla de páginas

N.º

pág

ina Marco

depágina

Puntero a tabla de páginas

Programa Mecanismo de paginación Memoria principal

Page 14: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Esquema de dos niveles para direcciones de 32 bits

4 Kbytes para laraíz de la tablade páginas

4 Mbytes para latabla de páginasde usuario

4 Gbytes para elespacio de direc-ciones de usuario

Figura 8.4. Tabla de páginas jerárquica de dos niveles [JACO98a].

Page 15: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Tablas de páginas

• La tabla de páginas completa puede ocupar una cantidad enorme de memoria principal.

• Para solucionar este problema, las tablas de páginas se almacenan en la memoria virtual.

• Cuando un proceso se está ejecutando, al menos una parte de su tabla de páginas se encuentra en la memoria principal.

Page 16: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Buffer de traducción adelantada

• Cada referencia a la memoria virtual puede generar dos accesos a la memoria:– Uno para obtener la entrada de la tabla de páginas

correspondiente.

– Otro para obtener el dato deseado.

• Para solucionar este problema, los esquemas de memoria virtual hacen uso de un cache especial para las entradas de la tabla de páginas:– Se trata de la buffer de traducción adelantada (TLB,

Translation Lookaside Buffer).

Page 17: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Buffer de traducción adelantada

• Contiene aquellas entradas de la tabla de páginas usadas hace menos tiempo.

• Funciona del mismo modo que una memoria cache.

Page 18: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Buffer de traducción adelantada

• Dada una dirección virtual, el procesador examinará primero la TLB.

• Si la entrada de la tabla de páginas buscada está presente (un “acierto en la TLB”), se obtiene el número de marco y se forma la dirección real.

• Si la entrada de la tabla de páginas no se encuentra (un “fallo en la TLB”), el procesador emplea el número de página como índice para buscar en la tabla de páginas del proceso y examinar la entrada correspondiente de la tabla de páginas.

Page 19: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Buffer de traducción adelantada

• Primero comprueba que la página esté en la memoria principal: – Si no está, se produce un fallo en el acceso

a la memoria, llamado fallo de página.

• El procesador actualiza la TLB para incluir esta nueva entrada de la tabla de páginas.

Page 20: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Volver a la instrucción que falló

Rutina de gestión de fallo de página

No

No

No

Comienzo

La CPU comprueba la TLB

Acceder a la tablade páginas

Actualizar TLB

La CPU generala dirección física

La CPU generala dirección física

El SO ordenaa la CPU leer

la página del disco

La CPU activa el hardware de E/S

La página se transfiere del disco

a memoria principal

Actualizar las tablasde páginas

Actualizar las tablasde páginas

¿Memoria llena?

Figura 8.8. Funcionamiento de la paginación con buffer de traducción adelantada (TLB) [FUTH87].

¿Está la entradade la tabla de página

en la TLB?

¿Está la página en memoria principal?

Page 21: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Dirección virtual Memoria principalMemoria secundaria

Buffer de traducción adelantada

Dirección real

Despla-zamiento

Despla-zamiento

Acierto de TLB

Fallo de TLB

Tabla de páginas

Despla-zamiento

Cargar página

Fallo de página

Nº. Pág.

N.º marco

Figura 8.7. Uso de un Buffer de Traducción Adelantada.

N.º pág.Despla-

zamiento

Page 22: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Tamaño de página

• Cuanto menor sea el tamaño de página, menor será la cantidad de fragmentación interna.

• Cuanto menor sea la página, mayor será el número de páginas que se necesitan por proceso.

• Un número mayor de páginas por proceso significa que las tablas de páginas serán mayores.

• Esto puede significar que una gran parte de las tablas de páginas de los procesos activos deben estar en la memoria virtual.

• La memoria secundaria está diseñada para transferir eficazmente los bloques de datos de mayor tamaño, de manera que es propicia para tamaños de página mayores.

Page 23: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Tamaño de página

• Si el tamaño de página es muy pequeño, estarán disponibles en la memoria principal un gran número de páginas para cada proceso.

• Después de un tiempo, todas las páginas de la memoria contendrán parte de las referencias más recientes del proceso. La tasa de fallos de página será menor.

• Cuando se incrementa el tamaño de la página, cada página individual contendrán posiciones cada vez más distantes de cualquier referencia reciente. La tasa de fallos será mayor.

Page 24: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Figura 8.11. Comportamiento típico de la paginación en un programa.

Ta s

a d

e f a

l lo s

de

pág

i na

Ta s

a d

e f a

l lo s

de

pág

i na

(a) Tamaño de página (b) Número de marcos de página asignados

P = Tamaño del proceso completoW = Tamaño del conjunto de trabajoN = Número total de páginas del proceso

Page 25: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Tamaño de página• Múltiples tamaños de página proporcionan

la flexibilidad necesaria para usar una TLB eficazmente.

• Las páginas grandes se pueden utilizar para traducir instrucciones de programa.

• Las páginas de pequeño tamaño se pueden emplear para las pilas de los hilos.

• La mayoría de los sistemas operativos favorecen el uso de un solo tipo de página.

Page 26: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Ejemplos de tamaños de páginas

Tabla 8.2. Ejemplos de tamaños de páginas.

Computadora Tamaño de página

Atlas 512 palabras de 48 bits

Honeywell-Multics 1.024 palabras de 36 bits

IBM 370/XA y 370/ESA 4 Kbytes

Familia VAX 512 bytes

IBM AS/400 512 bytes

DEC Alpha 8 Kbytes

MIPS de 4 Kbytes a 16 Mbytes

UltraSPARC de 8 Kbytes a 4 Mbytes

Pentium de 4 Kbytes a 4 Mbytes

Power Pc 4 Kbytes

Page 27: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Segmentación

• Los segmentos pueden ser de distintos tamaños, incluso de forma dinámica.

• Simplifica la gestión de estructuras de datos crecientes.

• Permite modificar y recopilar los programas independientemente.

• Se presta a la compartición entre procesos.

• Se presta a la protección.

Page 28: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Tablas de segmentos

• Segmento correspondiente de la memoria principal.

• Cada entrada de la tabla de segmentos contiene la longitud del segmento.

• Se necesita un bit para indicar si el segmento correspondiente está presente en la memoria principal.

• Otro bit de control necesario es un bit de modificación que indique si el contenido del segmento correspondiente ha sido modificado desde que se cargó por última vez en la memoria principal.

Page 29: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Entradas de las tablas de segmentos

Dirección virtual

Entrada del segmento de tabla

Número de segmento Desplazamiento

PP MM Otros bits de controlOtros bits de control LongitudLongitud Base de segmentoBase de segmento

Figura 8.2. Formatos típicos de gestión de memoria.

(b) Sólo segmentación

Page 30: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Paginación y segmentación combinadas

• La paginación es transparente al programador. • La paginación elimina la fragmentación externa. • La segmentación es visible para el programador. • La segmentación permite gestionar estructuras de

datos que pueden crecer, la modularidad y el soporte de la compartición y la protección.

• Cada segmento se divide en varias páginas de tamaño fijo.

Page 31: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Paginación y segmentación combinadas

Dirección virtual

Entrada de la tabla de segmentos

Nº. segmento

PP MM

LongitudLongitud Base de segmentoBase de segmentoOtros bits de controlOtros bits de control

Número de páginaNúmero de página Despla-zamientoDespla-

zamientoNúmero de segmentoNúmero de segmento

Otros bits de controlOtros bits de control Número de marcoNúmero de marco

Entrada de la tabla de páginas

Figura 8.2. Formatos típicos de gestión de memoria.

(c) Segmentación y paginación combinadas

P = Bit de presenciaM = Bit de modificación

Page 32: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Memoria principalDirección

Distribuidor

Proceso A

Proceso B

Proceso C

Ningún acceso permitido

Instrucción de salto (no permitida)

Referencia a datos(permitida)

Referencia a datos (no permitida)

Figura 8.14. Relaciones de protección entre segmentos.

Page 33: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Políticas de lectura

• Política de lectura:– Está relacionada con la decisión de cuándo se

debe cargar una página en la memoria principal. – Con la paginación por demanda, se trae una

página a la memoria principal sólo cuando se hace referencia a una posición en dicha página:

• Cuando un proceso se ejecute por primera vez, se producirán muchos fallos de página.

– Con la paginación previa, se cargan más páginas de las necesarias:

• Es más eficiente traer a la memoria un número de páginas contiguas.

Page 34: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Políticas de reemplazo

• Política de ubicación:– Qué página se va a reemplazar.– La página que se va a reemplazar tiene que

ser la que tenga una menor posibilidad de ser referenciada en un futuro cercano.

– La mayoría de las políticas intentan predecir el comportamiento futuro en función del comportamiento pasado.

Page 35: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Políticas de reemplazo• Bloqueo de marcos:

– Cuando un marco está bloqueado, la página cargada en ese marco no puede ser reemplazada.

– La mayoría del núcleo del sistema operativo está en marcos bloqueados.

– Estructuras de control.– Buffers de E/S.– El bloqueo se consigue asociando un bit de

bloqueo a cada marco.

Page 36: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Algoritmos básicos de reemplazo

• Política óptima:– Selecciona para reemplazar la página que

tiene que esperar una mayor cantidad de tiempo hasta que se produzca la referencia siguiente.

– Es imposible de implementar porque requiere que el sistema operativo tenga un conocimiento exacto de los sucesos futuros.

Page 37: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Algoritmos básicos de reemplazo

• Política de la usada menos recientemente (LRU):– Reemplaza la página de memoria que no ha

sido referenciada desde hace más tiempo. – Debido al principio de cercanía, ésta sería la

página con menor probabilidad de ser referenciada en un futuro cercano.

– Una solución sería etiquetar cada página con el momento de su última referencia.

Page 38: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Algoritmos básicos de reemplazo

• Política de primera en entrar primera en salir (FIFO):– Trata los marcos asignados a un proceso como un

buffer circular. – Las páginas se suprimen de la memoria según la

técnica de turno rotatorio (round-robin).– Es una de las políticas de reemplazo más sencillas de

implementar.– Se reemplaza la página que ha estado más tiempo en

la memoria. – Estas páginas pueden necesitarse de nuevo y en un

plazo de tiempo corto.

Page 39: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Algoritmos básicos de reemplazo

• Política del reloj:– Requiere asociar un bit adicional a cada marco,

denominado bit de uso. – Cuando se carga una página por primera vez en un marco

de memoria, el bit de uso de dicho marco se pone a cero. – Cuando se hace referencia a la página posteriormente, el

bit de uso se pone a 1. – Cuando llega el momento de reemplazar una página, el

primer marco encontrado con el bit de uso a 0 es reemplazado.

– Durante la búsqueda para realizar reemplazos cada bit de uso a 1 se cambia a 0.

Page 40: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Primer marco en el buffercircular de marcos que soncandidatos para el reemplazo

Página 9uso = 1

Página 19uso = 1

Página 191uso = 1

Página 1uso = 1

Página 45uso = 1

Página 13uso = 0

Página 67uso = 1

Página 33uso = 1

Figura 8.16. Ejemplo de funcionamiento de la política del reloj.

(a) Estado del buffer justo antes del reemplazo de página

Puntero al siguiente

marco

Página 556uso = 0

Página 222uso = 0

Page 41: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Figura 8.16. Ejemplo de funcionamiento de la política del reloj.

(b) Estado del buffer justo después del siguiente reemplazo de página

Página 9uso = 1

Página 19uso = 1

Página 1uso = 0

Página 45uso = 0

Página 191uso = 0

Página 727uso = 1

Página 13uso = 0

Página 67uso = 1

Página 33uso = 1

Página 222uso = 0

Page 42: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Algoritmos básicos de reemplazo

• Almacenamiento intermedio de páginas:– La pista de la página reemplazada se asigna

a una de las dos listas siguientes: • La lista de páginas libres, si la página no ha sido

modificada.

• La lista de páginas modificadas, si lo ha sido.

Page 43: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Tamaño del conjunto residente

• Asignación fija:– Otorga a cada proceso un número fijo de

páginas en las que ejecutar. – Cada vez que se produce un fallo de página

en la ejecución de un proceso, se debe reemplazar una de las páginas de dicho proceso.

• Asignación variable:– Permite que el número de marcos asignados a

un proceso cambie a lo largo de su vida.

Page 44: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Asignación variable y alcance global

• Es la combinación más sencilla de implementar.• Ha sido adoptada por un buen número de

sistemas operativos. • Normalmente el sistema operativo mantiene un

lista de marcos libres. • Cuando se produce un fallo de página, se añade

un marco libre al conjunto residente del proceso. • Cuando no hay marcos libres, el sistema

operativo debe elegir una página que esté en la memoria para reemplazar.

Page 45: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Asignación variable y alcance local

• Cuando se carga un nuevo proceso en la memoria, se le asigna cierto número de marcos en función del tipo de aplicación, las necesidades del programa u otros criterios.

• Cuando se produce un fallo de página, se selecciona la página a reemplazar de entre las del conjunto residente del proceso que sufre el fallo.

• Se vuelve a evaluar la asignación de vez en cuando.

Page 46: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Políticas de vaciado

• Vaciado por demanda:– Una página se escribirá en la memoria

secundaria sólo cuando haya sido elegida para reemplazarse.

• Vaciado previo:– Escribe las páginas modificadas por lotes.

Page 47: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Políticas de vaciado

• La mejor solución es incorporar almacenamiento intermedio de páginas:– Las páginas reemplazadas pueden situarse en dos

listas: • Modificadas y no modificadas.

– Las páginas de la lista de modificadas pueden escribirse periódicamente por lotes.

– Una página de la lista de no modificadas pueden reclamarse, si se le hace de nuevo referencia o perderse, cuando se asigna su marco a otra página.

Page 48: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Control de carga

• Determina el número de procesos que pueden estar en la memoria principal.

• Cuando hay pocos procesos residentes en la memoria, habrá muchas ocasiones en las que todos los procesos estén bloqueados y se gastará mucho tiempo en el intercambio.

• Si hay demasiados procesos residentes, el resultado será la hiperpaginación.

Page 49: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Suspensión de procesos

• Procesos con la prioridad más baja.

• Procesos con fallos de página:– Este proceso no tiene su conjunto de trabajo

en la memoria principal, por lo que quedará bloqueado de todas formas.

• Último proceso activado:– Este es el proceso con menos posibilidades

de tener su conjunto de trabajo residente.

Page 50: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Suspensión de procesos

• Proceso con el conjunto residente más pequeño: – Este es el proceso que necesita el menor

esfuerzo futuro para volver a cargar el conjunto residente.

• El proceso mayor:– Esta alternativa obtiene la mayor cantidad de

marcos libres.

• Procesos con la mayor ventana de ejecución restante.

Page 51: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Gestión de memoria en UNIX y Solaris

• Sistema de paginación:– Tabla de páginas.– Descriptor de bloques de disco.– Tabla de marcos de página.– Tabla de uso de intercambios.

Page 52: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Estructuras de datos

Número de marco de página EdadCopia en es-

crituraNúmero de marco de página Edad

Modifi-cación

Refe-rencia

ValidezProtec-

ción

Número de dispositivo de intercambio

Número de bloque de dispositivo

Tipo de almacenamiento

(a) Entrada de la tabla de páginas

(b) Descriptor de bloques de disco

Figura 8.22. Formatos de gestión de memoria en UNIX SVR4.

Page 53: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Estructuras de datos

Figura 8.22. Formatos de gestión de memoria en UNIX SVR4.

(c) Entrada de la tabla de marcos de página

(d) Entrada de la tabla de utilización del intercambio

Número de marco de página EdadDispositivo

lógicoEstado de la página

Contador de referencias

Número debloque

Puntero a marcode página

Contador de referencias

Página/número de unidad de

almacenamiento

Page 54: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Gestión de memoria en UNIX y Solaris

• Reemplazo de páginas:– Es un refinamiento de la política del reloj.

• Asignador de memoria del núcleo:– La mayor parte de estos bloques son

significativamente más pequeños que el tamaño de página en las máquinas normales.

Page 55: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Gestión de memoria en Linux

• Directorio de páginas.

• Directorio intermedio de páginas.

• Tabla de páginas.

Page 56: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Gestión de memoria en Windows 2000

• Paginación en W2K:– Disponible.– Reservada.– Confirmada.

Page 57: Memoria virtual Capítulo 8. Estructuras de hardware y de control Todas las referencias a la memoria se traducirán dinámicamente a direcciones físicas

Región de 64 Kilobytes para la asignación de punteros NULL (inaccesible)

Figura 8.25. Espacio de direcciones virtuales por defecto en Windows 2000.

Región de 2 Gigabytes para el espacio de direcciones de usuario(no reservado, utilizable)

Región de 64 Kilobytes para la asignación incorrecta de punteros (inaccesible)

Región de 2 Gigabytes para el sistema operativo(inaccesible)