sistemas operativos unidad v administración de la memoria
TRANSCRIPT
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
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.
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.
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
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.
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
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.
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
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.
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.
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.
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.
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.
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.
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)
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.
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
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.
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()
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.
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.
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.
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
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
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).
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.
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)
Memoria Virtual
En esta técnica el SO administra la memoria principal y la memoria secundaria para almacenar información perteneciente a los procesos.
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
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).
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.
Memoria Virtual (5) (Paginación)
Ejemplo de traducción con tablas de páginas
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.
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)
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
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
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
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.
Memoria Virtual (12) (Paginación)
Ejemplo de traducción con TP de dos niveles
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.
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
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
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
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
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
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
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
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
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)
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.
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
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”
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
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.
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