sistemas operativos unidad v administración de la memoria

56
Sistemas Operativos Unidad V Administración de la Memoria

Upload: sancha-adriano

Post on 11-Apr-2015

116 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Sistemas Operativos Unidad V Administración de la Memoria

Sistemas Operativos

Unidad V

Administración de la Memoria

Page 2: Sistemas Operativos Unidad V Administración de la Memoria

Administración de la Memoria

Objetivos de la administración de memoria Modelo de memoria de un proceso Esquemas de memoria basados en

asignación contigua Intercambio Memoria virtual

Page 3: Sistemas Operativos Unidad V Administración de la Memoria

Objetivos de la administración de memoria El SO multiplexa los recursos entre los

procesos:Gestión de procesos: Reparto del procesador.Gestión de memoria: Reparto de memoria.

Cada proceso “cree” que tiene una máquina solo para él.

Page 4: Sistemas Operativos Unidad V Administración de la Memoria

Objetivos de la administración de memoria (2)

Los objetivos deseables en la administración de memoria son: Ofrecer a cada proceso un espacio lógico propio. Proporcionar protección entre los procesos. Permitir que los procesos compartan memoria. Dar soporte a las distintas regiones del proceso. Maximizar el rendimiento del sistema. Proporcionar a los procesos mapas de memoria

muy grandes.

Page 5: Sistemas Operativos Unidad V Administración de la Memoria

Objetivos de la administración de memoria (3) Ofrecer a cada proceso un espacio lógico propio.

No se conoce la posición de memoria donde un programa se ejecutará.

El código ejecutable genera referencias entre 0 y N. Ejemplo: programa que copia un vector

Archivo ejecutable

00000004 Cabecera……00960100 LOAD R1, #10000104 LOAD R2, #20000108 LOAD R3, /15000112 LOAD R4, [R1]0116 STORE R4, [R2]0120 INC R10124 INC R20128 DEC R30132 JNZ /120136 …………….. Sistema Operativo

S. O. Monoprogramación

0000 LOAD R1, #10000004 LOAD R2, #20000008 LOAD R3, /15000012 LOAD R4, [R1]0016 STORE R4, [R2]0020 INC R10024 INC R20028 DEC R30032 JNZ /120036 ……………..……

Ejecución

• Sistema operativo en direcciones más altas• Programa se carga en dirección 0• Se le pasa el control al programa

Page 6: Sistemas Operativos Unidad V Administración de la Memoria

Objetivos de la administración de memoria (4)

Reubicación Es un problema cuando el código tiene direcciones

absolutas. En un sistema multiprogramación el SO debe tener la

libertad de ubicar al programa donde quiera. Consiste en traducir las direcciones lógicas de los

programas ejecutables a direcciones físicas.

Page 7: Sistemas Operativos Unidad V Administración de la Memoria

Objetivos de la administración de memoria (5) La Reubicación crea espacios lógicos independientes para cada

proceso. Existen dos alternativas para la reubicación: (1) Reubicación por hardware y (2) Reubicación por software.

(1) Reubicación por Hardware• Hardware (MMU) esta encargado de la traducción• El SO se encarga de:

• Almacenar la función de traducción por proceso• Especificar al Hw la función de traducción del proceso

• El programa se carga en memoria sin modificar

(2) Reubicación por Software• Traducción de direcciones durante la carga del programa• Programa en memoria distinto del ejecutable• Desventajas:

• No permite mover un programa en tiempo de ejecución• No asegura protección

Page 8: Sistemas Operativos Unidad V Administración de la Memoria

Objetivos de la administración de memoria (6)

Proporcionar protección entre procesos En sistemas monoprogramación se protege el SO. En sistemas multiprogramación, además del SO,

también debe haber protección entre los procesos. La traducción debe crear espacios disjuntos. Es necesario validar todas las direcciones que genera

el programa. La detección debe realizarla el hardware del procesador

lanzando una excepción. El tratamiento lo hace el SO en respuesta a la excepción

lanzada por el hw.

Page 9: Sistemas Operativos Unidad V Administración de la Memoria

Objetivos de la administración de memoria (7) Permitir que los procesos

compartan memoria (memoria compartida). Las direcciones lógicas de dos o

más procesos se corresponden con la misma dirección física.

La memoria compartida está bajo el control del SO.

Los beneficios que se tienen son:

Procesos ejecutando un mismo programa comparten su código.

Mecanismos de comunicación entre procesos muy rápido.

Requiere asignación no contigua

Page 10: Sistemas Operativos Unidad V Administración de la Memoria

Objetivos de la administración de memoria (8)

Problemas al compartir memoria: Si una posición de la zona de

memoria tiene referencia a otra posición dentro de la misma zona de memoria:

En la zona de código podría darse este caso cuando se tiene una condición de bifurcación.

En la zona de datos podría darse el caso cuando se almacena una lista con punteros.

Page 11: Sistemas Operativos Unidad V Administración de la Memoria

Objetivos de la administración de memoria (9) Dar soporte a las distintas regiones del proceso

(soporte de regiones). El proceso presenta un mapa de memoria no homogéneo,

formado por: Conjunto de regiones con distintas características. Ejemplo: región de código no modificable.

El mapa del proceso es dinámico. Regiones cambian de tamaño (p. ej. La pila). Se crean y destruyen regiones. Existen zonas sin asignar (huecos).

La administración de memoria debe dar soporte a las siguientes características:

Detectar accesos no permitidos a una región. Detectar acceso a huecos.

El SO debe guardar una tabla de regiones para cada proceso.

Page 12: Sistemas Operativos Unidad V Administración de la Memoria

Objetivos de la administración de memoria (10) Maximizar el rendimiento del

sistema Reparto de memoria maximizando el

grado de multiprogramación. Se “desperdicia” memoria debido a:

“Restos” inutilizables (fragmentación). Tablas requeridas por el gestor de memoria.

Una menor fragmentación implica tablas muy grandes.

La solución es la Paginación. Otra estrategia para aumentar el grado

de multiprogramación es el uso de memoria virtual.

Page 13: Sistemas Operativos Unidad V Administración de la Memoria

Objetivos de la administración de memoria (11)

Proporcionar a los procesos mapas de memoria muy grandes.Resuelto gracias al uso de memoria virtual.Antes se usaban los overlays

Programa dividido en fases que se ejecutaban sucesivamente.

En cada momento solo hay una fase residente en memoria.

Cada fase realiza su labor y carga la siguiente. No es transparente para el programador.

Page 14: Sistemas Operativos Unidad V Administración de la Memoria

Modelo de memoria de un proceso

El mapa inicial de un proceso está muy vinculado con el archivo que contiene el programa ejecutable.

La generación de un archivo ejecutable puede dividirse en dos fases: Compilación

Resuelve referencias dentro de cada módulo fuente.

Genera un módulo objeto. Montaje (o enlace)

Resuelve referencias entre módulos objeto.

Resuelve referencias a símbolos de bibliotecas.

Genera el ejecutable incluyendo bibliotecas.

Page 15: Sistemas Operativos Unidad V Administración de la Memoria

Modelo de memoria de un proceso (2)

En la generación del archivo ejecutable intervienen las bibliotecas y pueden ser de dos tipos: Estáticas:

Se obtiene un ejecutable autocontenido. Ejecutables grandes. Código de biblioteca repetido en muchos ejecutables. Actualización de la biblioteca implica volver a montar.

Dinámicas: Carga y montaje de la biblioteca en tiempo de ejecución. El ejecutable contiene: (1) el nombre de la biblioteca y (2)

rutina de carga y montaje en tiempo de ejecución. Se carga en la primera referencia que se haga a ella.

Page 16: Sistemas Operativos Unidad V Administración de la Memoria

Modelo de memoria de un proceso (3)

Formato del ejecutable Como parte final del proceso de compilación y montaje, se genera un

archivo ejecutable que contiene el código máquina del programa. Distintos fabricantes han usado diferentes formatos de archivos (p. ej. ELF de Unix)

Page 17: Sistemas Operativos Unidad V Administración de la Memoria

Modelo de memoria de un proceso (4)

El mapa de memoria de un proceso tiene las siguientes características: No es algo homogéneo. Esta formado por un conjunto de distintas regiones o

segmentos. Región:

Zona contigua de memoria tratada como unidad al proteger o compartir.

Tiene asociada una determinada información (“objeto de memoria”). Cada región se caracteriza por:

Dirección de comienzo y tamaño inicial. Soporte: donde se almacena su contenido inicial. Protección: lectura (r), escritura (w) y ejecución (x). Uso compartido o privado. Tamaño fijo o variable.

Page 18: Sistemas Operativos Unidad V Administración de la Memoria

Modelo de memoria de un proceso (5)

Al crear el mapa de memoria desde el ejecutable las regiones de memoria se corresponderán básicamente con las secciones del ejecutable más la pila inicial del proceso.

Compartida, (r,x), T. Fijo, Soporte enejecutable

Privada, (r,w), T. Fijo, Soporte enejecutable

Privada, (r,w), T. Fijo, Sin Soporte

Privada, (r,w), T. Variable, Sin Soporte,Crece hacia direcciones más bajasPila inicial, argumentos del programa

Page 19: Sistemas Operativos Unidad V Administración de la Memoria

Modelo de memoria de un proceso (6)

Durante la ejecución de un proceso se crean nuevas regiones, así el mapa de memoria tiene un carácter dinámico. Algunas otras regiones del mapa de memoria son:

Región de Heap Soporte de memoria dinámica (malloc en C) Es: Privada, RW, Tam. Variable, Sin Soporte y crece hacia

direcciones más altas Archivo proyectado

Región asociada al archivo proyectado Tam. Variable, Soporte en Archivo Protección y carácter compartido o privado especificado en

proyección. Memoria compartida

Región asociada a la zona de memoria compartida. Compartida, Tam. Variable, Sin Soporte y Protección

especificada en proyección. Pilas de threads

Cada pila de thread corresponde con una región Mismas características de la pila de proceso

Carga de biblioteca dinámica Se crean regiones asociadas al código y datos de la

biblioteca.

Page 20: Sistemas Operativos Unidad V Administración de la Memoria

Modelo de memoria de un proceso (7)

Durante la vida de un proceso, su mapa de memoria va evolucionando y con él sus regiones. Existen cuatro operaciones genéricas sobre dichas regiones: Crear región

Se da de forma implícita al crear el mapa inicial, o por solicitud del programa (p. ej. Proyectar un archivo).

Eliminar región Se da implícitamente al terminar el proceso o por solicitud del

programa en tiempo de ejecución (p. ej. Desproyectar un archivo). Cambiar de tamaño la región

Se da implícitamente para la pila o por solicitud del heap. Duplicar la región

Operación requerida por el servicio fork()

Page 21: Sistemas Operativos Unidad V Administración de la Memoria

Esquemas de memoria basados en asignación contigua Un esquema simple de administración de memoria

consiste en asignar a cada proceso una zona contigua de memoria para que en ella resida su mapa de memoria.

Dentro de este esquema se da la gestión contigua basada en particiones dinámicas Cada vez que se crea un proceso el SO busca un hueco de

tamaño suficiente para el mapa. El SO reserva la parte del hueco necesaria para crear en ella el

mapa inicial del proceso Es necesario que el procesador tenga dos registros de propósito

especial para tratar las direcciones que generen los programas.

Page 22: Sistemas Operativos Unidad V Administración de la Memoria

Esquemas de memoria basados en asignación contigua (2) El hardware requerido típicamente son dos registros

en el procesador: Registro límite

Para comprobar que cada dirección que genere el proceso no es mayor que el valor almacenado. De ser así se genera una excepción.

Registro base Una vez comprobado el registro límite, el procesador le

sumará el valor de este registro a la dirección generada por el programa, obteniéndose con ello la dirección física.

Page 23: Sistemas Operativos Unidad V Administración de la Memoria

Esquemas de memoria basados en asignación contigua (3) Gestión del SO

Almacenar en el BCP los registros límite y base del proceso. Y carga dichos registros cuando se activa un proceso.

Mantiene información sobre el estado de ocupación de la memoria

Utiliza estructuras de datos que identifican huecos y zonas asignadas

Bajo este esquema se genera fragmentación externa: Se generan pequeños fragmentos libres entre zonas

asignadas. Posible solución : compactación. Sin embargo, este puede

ser un proceso muy costoso.

Page 24: Sistemas Operativos Unidad V Administración de la Memoria

Esquemas de memoria basados en asignación contigua (4) Políticas de asignación de espacio

Qué hueco usar para satisfacer una petición de memoria.

Posibles políticas: Mejor ajuste

Asignar el menor hueco con tamaño suficiente Requiere una lista ordenada por tamaño o buscar en toda la

lista Se generan nuevos espacios libres muy pequeños

Peor ajuste Asignar el mayor hueco con tamaño suficiente Requiere una lista ordenada por tamaño o buscar en toda la

lista. Primer ajuste

Asignar el primer hueco con tamaño suficiente. Suele ser la mejor política

Page 25: Sistemas Operativos Unidad V Administración de la Memoria

Esquemas de memoria basados en asignación contigua (5)

Valoración del esquema de asignación contigua Espacios lógicos independientes

Se logra mediante los registros límite y base Protección

El uso de los registros límite y base asegura que un proceso no pueda acceder a la memoria de otros procesos o del sistema operativo.

Compartir memoria. No es posible

Soporte de las regiones No existe Se reserva espacio para huecos

Maximizar rendimiento y mapas grandes Mal aprovechamiento de memoria por fragmentación externa No permite memoria virtual

Page 26: Sistemas Operativos Unidad V Administración de la Memoria

Intercambio

En su momento significó la manera de permitir que los sistemas de tiempo compartido tuvieran más procesos de los que caben en la memoria.

En un disco o partición de este (swap) se tiene un respaldo de la memoria, en lo que respecta a las imágenes de los procesos.

Cuando no caben en memoria todos los procesos activos, entonces algún proceso debe ser expulsado (swap out), pero en algún momento el proceso expulsado deberá ser reactivado (swap in).

Page 27: Sistemas Operativos Unidad V Administración de la Memoria

Intercambio (2)

Swap out Cuando un proceso es expulsado de la memoria su imagen es

copiada al swap. Los criterios de selección del proceso a expulsar pueden ser

diversos: Dependiendo de la prioridad del proceso. Preferiblemente un proceso bloqueado No expulsar si esta activo DMA sobre el mapa del proceso

No es necesario copiar todo el mapa al swap (ni código ni huecos).

Swap in Cuando existe espacio suficiente en memoria. Cuando un proceso necesita ser reactivado

Al cumplir cierto tiempo de estar expulsado En este caso antes del swap in se hace el swap out de otro.

Page 28: Sistemas Operativos Unidad V Administración de la Memoria

Intercambio (3)

La asignación de espacio en el dispositivo swap tiene dos alternativas Preasignación

Al crear el proceso ya se reserva espacio de swap suficiente para albergarlo.

Sin Preasignación Sólo se reserva espacio cuando se expulsa el proceso

Usado en sistemas tipo Unix Una solución más general es el uso de memoria

virtual. Aún cuando se utiliza conjuntamente con la técnica de intercambio (swaping)

Page 29: Sistemas Operativos Unidad V Administración de la Memoria

Memoria Virtual

En esta técnica el SO administra la memoria principal y la memoria secundaria para almacenar información perteneciente a los procesos.

Page 30: Sistemas Operativos Unidad V Administración de la Memoria

Memoria Virtual (2)

De forma general se puede decir que el SO transfiere bloques entre ambas memorias. De memoria principal a memoria secundaria por

expulsión. De memoria secundaria a memoria principal por

demanda. Los beneficios obtenidos son:

Aumento en el grado de multiprogramación Permite la ejecución de programas más grandes que

la memoria principal. Por otro lado, no es adecuada para sistemas de

tiempo real

Page 31: Sistemas Operativos Unidad V Administración de la Memoria

Memoria Virtual (3) (Paginación)

Paginación Surge como un intento para satisfacer los objetivos

de la administración de memoria sofisticando considerablemente el hardware del procesador y aumentando la cantidad de información de traducción por proceso.

La unidad básica de trabajo en este esquema es obviamente la página, la cual corresponde con una zona de memoria contigua de determinado tamaño (potencias de 2, típicamente 4kb).

El mapa de memoria de cada proceso esta dividido en páginas. A su vez, la memoria principal esta dividida en marcos de página (en un determinado momento contiene una página del proceso).

Page 32: Sistemas Operativos Unidad V Administración de la Memoria

Memoria Virtual (4) (Paginación)

Tablas de páginas (TP) Contiene la información

de dónde residen las páginas de un programa en ejecución.

Relacionan cada página con el marco que la contiene.

El MMU usa TP direcciones lógicas a direcciones físicas. El procesador tiene un

registro que almacena la dirección de la TP de un proceso.

Page 33: Sistemas Operativos Unidad V Administración de la Memoria

Memoria Virtual (5) (Paginación)

Ejemplo de traducción con tablas de páginas

Page 34: Sistemas Operativos Unidad V Administración de la Memoria

Memoria Virtual (6) (Paginación)

Fragmentación interna en paginación Seda debido a que cada proceso tiene un número entero de

marcos de página, lo que ocasiona que la memoria asignada sea mayor que la memoria requerida, por lo tanto puede desperdiciarse parte de un marco asignado.

Page 35: Sistemas Operativos Unidad V Administración de la Memoria

Contenido de un registro de la TP Número de marco asociado Información de protección: (R, W, X)

Si se hace una operación no permitida se lanza una excepción Bit de página válida/inválida Bit de página accedida Bit de página modificada Bit de desactivación de cache

Cuando la entrada corresponde con direcciones de E/S Tamaño de la página

Es un aspecto importante en el rendimiento de un sistema de paginación.

El tamaño óptimo es un compromiso entre diversos factores Tamaño pequeño: menor fragmentación y se ajusta mejor al conjunto de

trabajo Tamaño grande: tablas más pequeñas y mejor rendimiento del dispositivo

de E/S.

Memoria Virtual (7) (Paginación)

Page 36: Sistemas Operativos Unidad V Administración de la Memoria

Memoria Virtual (8) (Paginación)

Gestión del SO Mantiene una TP por cada proceso

En cada contexto notifica al MMU cuál debe usar a través del registro identificador del espacio de direccionamiento (RIED).

Mantiene una única TP para el propio SO Todos los procesos pueden compartir el SO. Cuando se ejecuta una llamada al sistema, invocada por un

proceso, puede acceder a su propio mapa y al del proceso. Mantiene una tabla de marcos

Permite conocer cuales marcos están libres y cuales ocupados Mantiene una tabla de regiones por proceso

Contiene las características de cada región especificando el rango de páginas que pertenecen a cada región.

Mucho mayor gasto en tablas que con asignación contigua Es el precio de mucha mayor funcionalidad

Page 37: Sistemas Operativos Unidad V Administración de la Memoria

Memoria Virtual (9) (Paginación)

Valoración de la paginación Espacios lógicos independientes

Se logra mediante TP al corresponder las páginas del mapa memoria del proceso con los marcos que tiene asignados.

Protección Se logra mediante TP al restringir la parte de memoria que puede ser

accedida por los procesos. Compartir memoria

Bajo el control del SO es posible que entradas de TP diferentes correspondan con un mismo marco.

Soporte de regiones Bits de protección Bits de validez

Maximizar rendimiento y mapas grandes A pesar de la fragmentación interna permite un buen aprovechamiento de la

memoria. Permite esquemas de memoria virtual

Page 38: Sistemas Operativos Unidad V Administración de la Memoria

Memoria Virtual (10) (Paginación)

Implementación de la TP Involucra dos problemas:

Eficiencia Cada acceso lógico requiere de dos accesos a memoria

principal (a la tabla de páginas + al dato o instrucción) La solución está en un cache de traducciones (TLB)

Memoria asociativa con información sobre las últimas páginas accedidas.

Puede ser gestionada por Hardware o por Software. Gasto de almacenamiento

Tablas muy grandes Ejemplo: páginas de 4K, dir. Lógica de 32 bits y 4 bytes

por entrada: Tamaño de TP 4MB/Proceso (220 * 4). Una soluciones posibles

Tablas multinivel Tablas invertidas

Page 39: Sistemas Operativos Unidad V Administración de la Memoria

Memoria Virtual (11) (Paginación)

Tabla de páginas multinivel (dos niveles) Es más flexible Ocupa el espacio en memoria requerido realmente Necesita tres accesos a memoria principal para un dato o instrucción.

Page 40: Sistemas Operativos Unidad V Administración de la Memoria

Memoria Virtual (12) (Paginación)

Ejemplo de traducción con TP de dos niveles

Page 41: Sistemas Operativos Unidad V Administración de la Memoria

Memoria Virtual (13) (Paginación)

Ventajas de tablas multinivel Si un proceso usa una parte

pequeña de su espacio lógico

Ahorro en espacio para almacenar TPs

Ejemplo: Proceso que usa 12 MB superiores y 4MB inferiores

2 niveles, páginas de 4K, dir. lógica de 32 bits (10 bits por nivel) y 4 bytes por entrada: 1 TP N1 + 4 TP N2 = 5 * 4KB = 20KB (frente a 4MB)

Ventajas adicionales: Permite compartir TPs

intermedias Sólo requiere que este en

memoria la TP de nivel Superior.

Page 42: Sistemas Operativos Unidad V Administración de la Memoria

Memoria Virtual (14) (Segmentación)

Segmentación Esquema por hw que intenta dar soporte a las regiones Es una generalización del registro base y límite

Una pareja por cada segmento Dirección lógica

Número de Segmento + Dirección en el Segmento MMU usa una tabla de segmentos (TS) El SO mantiene una TS por proceso

En cada contexto notifica al MMU cuál debe usar Cada registro en la TS contiene, entre otros:

Registros base y límite Protección: R, W, X

El segmento es la unidad de asignación y existe fragmentación externa

El SO mantiene información sobre el estado de la memoria Estructuras de datos que identifiquen huecos y zonas asignadas

Page 43: Sistemas Operativos Unidad V Administración de la Memoria

Memoria Virtual (15) (Segmentación)

Valoración de la segmentación: Espacios independientes

para procesos Mediante TS

Protección Mediante TS

Compartir memoria Compartir segmentos:

misma entrada diferente TS Soporte de regiones

Bits de protección Maximizar resultados y mapas grandes

Presenta fragmentación externa No facilita esquemas de memoria virtual debido a tamaño variable

de segmentos Esquema apenas usado

Esquema de traducción con segmentación

Page 44: Sistemas Operativos Unidad V Administración de la Memoria

Memoria Virtual (16) (Segmentación Paginada)

Segmentación Paginada Intenta unir lo mejor de los dos esquemas Una entrada en TS apunta a una TP para el

segmento Segmentación:

Soporte directo a segmentos Facilita operaciones sobre regiones

Para establecer protección solo se modifica una entrada de la TS

Para definir la compartición de segmentos una entrada de TS apunta a la misma TP del segmento

Paginación Asignación no contigua de segmento Fragmentación interna

Page 45: Sistemas Operativos Unidad V Administración de la Memoria

Memoria Virtual (17) (Segmentación Paginada)

Valoración de la segmentación paginada Espacios independientes

para procesos Mediante TS

Protección Mediante TS

Compartir memoria Compartir segmentos:

mismas entradas diferentes TS

Soporte de regiones Bits de protección

Maximizar rendimiento y mapas grandes Permite esquemas de memoria virtual

Comparado con la paginación Facilita al SO gestión de regiones pero requiere hw más

complejo

Esquema de traducción con Segmentación Paginada

Page 46: Sistemas Operativos Unidad V Administración de la Memoria

Memoria Virtual (18)

Paginación por demanda Segmentación pura no adecuada para memoria virtual

Tamaño de segmentos variable Paginación y segmentación paginada sí lo son:

Los bloque transferidos son páginas Memoria virtual + paginación = paginación por demanda.

Estrategia de implementación: uso de bit de validez. Si la página no reside se marca como no válida. En acceso: Excepción de fallo de página

El SO trae la página correspondiente de memoria secundaria El SO debe diferenciar entre una página no residente y página no

válida Prepaginación: traer páginas por anticipado (no por demanda)

En fallo de página se traen otras páginas que posiblemente necesite el proceso

Beneficiosa si se acierta en la predicción

Page 47: Sistemas Operativos Unidad V Administración de la Memoria

Memoria Virtual (19)

Tratamiento de fallo de página Tratamiento de la excepción

Si la dirección es inválida se aborta el proceso o se le manda una señal.

Si no hay ningún marco libre (consulta T. marcos) Selecciona una victima (Aplica un algoritmo de reemplazo) Si la página fue modificada, entonces, se guarda en memoria

secundaria Si hay marco libre

Se escribe la página sobre el marco Se marca la entrada de la página como válida El marco se establece como ocupado en TM sin no lo estaba

Un fallo de página puede implicar dos accesos a disco

Page 48: Sistemas Operativos Unidad V Administración de la Memoria

Memoria Virtual (20)

Políticas de administración de la memoria virtual Política de reemplazo

¿Qué página reemplazar si hay fallo y no hay marco libre? Reemplazo local

Solo se usan marcos asignados al proceso que causa el fallo Reemplazo global

Se utiliza cualquier marco

Política de asignación de espacio a los procesos ¿Cómo se reparten los marcos entre los proceso? Asignación fija o asignación dinámica

Page 49: Sistemas Operativos Unidad V Administración de la Memoria

Memoria Virtual (21)

Algoritmos de reemplazoObjetivo: minimizar la tasa de fallos de páginaCada algoritmo tiene su versión local y globalAlgoritmos más comunes:

Óptimo FIFO Reloj LRU

Page 50: Sistemas Operativos Unidad V Administración de la Memoria

Memoria Virtual (22)

Algoritmo óptimo Criterio: Página residente que tardará más en accederse. Irrealizable Interés para estudios analíticos y comparativos. Versiones local y global

Algoritmo FIFO Criterio: página que lleva más tiempo residente Fácil implementáción

Páginas residentes en orden FIFO (se expulsa la primera) No requiere el bit de página accedida

No es una buena estrategia Página que lleva mucho tiempo residente puede seguir

accediéndose frecuentemente. Su criterio no se basa en el uso de la página

Anomalía de Belady: (entre más marcos más fallas)

Page 51: Sistemas Operativos Unidad V Administración de la Memoria

Memoria Virtual (23)

Algoritmo del reloj FIFO + uso del bit de referencia de página accedida (Ref). Criterio:

Si página elegida por FIFO no tiene activo Ref Es la página expulsada

Si la página si tiene activo Ref se le da una segunda oportunidad Se desactiva Ref Se pone la página al final del FIFO Se aplica el criterio a la siguiente página

Se puede implementar orden FIFO como lista circular con una referencia a la primera página de la lista

Se visualiza como un reloj donde la referencia a la primera página es la aguja del reloj.

Page 52: Sistemas Operativos Unidad V Administración de la Memoria

Memoria Virtual (24)

Algoritmo LRU Criterio: Página residente menos recientemente

usada. Por proximidad de referencias

Pasado reciente condiciona futuro próximo Sutileza

En su versión global: menos recientemente usada en el tiempo lógico de cada proceso.

Difícil implementación estricta (hay aproximaciones) Necesitaría de una MMU específica y en general hardware

de propósito especial

Page 53: Sistemas Operativos Unidad V Administración de la Memoria

Memoria Virtual (25)

Buffering de páginas El peor caso en tratamiento de fallas es 2 accesos a dispositivo. La alternativa viable es mantener una reserva de marcos libres

para que en un fallo de página siempre se usa un marco libre. La estrategia es:

Si el número de marcos libres < umbral Activar demonio de paginación que aplique repetidamente un algoritmo

de reemplazo Páginas no modificadas pasan a la lista de marcos libres Páginas modificadas pasan a la lista de marcos modificados

(cuando se escriban a disco pasan a lista de libres). Si se referencia una página mientras esta en listas:

Fallo de página la recupera directamente de la lista Provoca un mejor comportamiento de algoritmos “malos”

Page 54: Sistemas Operativos Unidad V Administración de la Memoria

Memoria Virtual (26)

Estrategia de asignación dinámica El número de marcos varia dependiendo del

comportamiento del proceso y posiblemente de los otros procesos.

Asignación dinámica con reemplazo local El proceso va aumentando o disminuyendo su conjunto

residente dependiendo de su comportamiento. Comportamiento relativamente predecible.

Asignación dinámica con reemplazo global Los procesos se quitan las páginas entre ellos Comportamiento difícilmente predecible

Page 55: Sistemas Operativos Unidad V Administración de la Memoria

Memoria Virtual (27)

Hiperpaginación Tasa excesiva de fallos de página de un proceso o en el sistema Con asignación fija se da hiperpaginación en el proceso

Cuando el número de marcos asignados no es suficiente Provoca un incremento en el tiempo de ejecución del proceso.

Con asignación variable se da hiperpaginación en el sistema Cuando el número de marcos en el sistema no son suficientes para

albergar el conjunto de trabajo de todos los procesos. La utilización del procesador cae

drásticamente puesto que se incrementa el tiempo que se dedica al tratamiento de fallos de página.

Cuando esto ocurre se deben suspender uno o varios procesos y liberar sus páginas.

Page 56: Sistemas Operativos Unidad V Administración de la Memoria

Memoria Virtual (28)

Solución a la hiperpaginación Se debe tener un control de carga para:

disminuir el grado de multiprogramación Suspender 1 o más procesos liberando sus páginas.

Algunas políticas del control de carga son: Estrategia del conjunto de trabajo

Intenta conocer el conjunto de páginas usadas por el proceso en las últimas N referencias.

Si el trabajo decrece se liberan macros Si el trabajo crece se asignan macros

Si no hay disponibles: suspender proceso(s). Se reactivan cuando hay marcos suficientes

Implementación estricta difícil. Estrategia basada en frecuencia de fallos

Si la tasa es menor a un cierto límite inferior se liberan marcos aplicando un algoritmo de reemplazo

Si la tasa es mayor a un cierto límite superior se asignan nuevos marcos, si no los hay se suspende un proceso