Gesti n de memoria
Download
1 / 60

- PowerPoint PPT Presentation


  • 151 Views
  • Uploaded on

Gestión de Memoria. Sebastián Sánchez Prieto. Objetivo. Mostrar la evolución de los distintos esquemas de gestión de memoria Máquina desnuda Monitor monolítico o residente Asignación de memoria particionada contigua Asignación de memoria particionada no contigua Memoria virtual.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '' - trina


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Gesti n de memoria

Gestión de Memoria

Sebastián Sánchez Prieto


Objetivo
Objetivo

  • Mostrar la evolución de los distintos esquemas de gestión de memoria

    • Máquina desnuda

    • Monitor monolítico o residente

    • Asignación de memoria particionada contigua

    • Asignación de memoria particionada no contigua

    • Memoria virtual


M quina desnuda
Máquina desnuda

  • Es la manera más sencilla de gestionar la memoria: no existe ningún gestor

  • El usuario controla toda la memoria

  • El sistema no porporciona ningún servicio

Memoria

Usuario


Monitor monol tico o residente
Monitor monolítico o residente

  • Protección:

MEMORIA

MONITOR

Dirección límite

CPU

Dirección>Límite

No

Error de direccionamiento


Memoria particionada contigua
Memoria particionada contigua

  • Se asigna una partición de memoria a cada proceso

  • Protección: registros límite o base-límite

  • Fragmentación externa: compactación

MFT

MVT

Sistema multiprogramado con

tamaño y número de particiones

fijo

Sistema multiprogramado con

tamaño y número de particiones

variable

Fragmentación interna y externa

Fragmentación externa

Desventaja en la asignación

dinámica de memoria

Ventaja en la asignación dinámica

de memoria

Problema: intercambio de

trabajos con E/S pendiente

Requiere algoritmos de gestión de

memoria más complejos


Registros l mite

<=

>=

Registros límite

  • No soporta reubicación dinámica

MEMORIA

Límite

inferior

Límite

inferior

CPU

Programa X

No

No

Error de direccionamiento


Registros base l mite
Registros base-límite

  • Soporta reubicación dinámica

MEMORIA

Límite

Base

CPU

Programa X

<

+

Límite

No

Error de direccionamiento


Tabla de descripci n de particiones
Tabla de descripción de particiones

0K

100K

400K

500K

750K

900K

1000K

Sistema operativo

Pi

Pj

Pk

Número Base Tamaño Estado

de la de la de la de la

partición partición partición partición

0K 100K ASIGNADA

100K 300K LIBRE

400K 100K ASIGNADA

500K 250K ASIGNADA

700K 150K ASIGNADA

900K 100K LIBRE

0

1

2

3

4

5


Memoria particionada no contigua
Memoria particionada no contigua

  • Esquemas ya vistos:

    • Segmentación

    • Paginación

    • Segmentación paginada

    • Paginación segmentada


Memoria virtual recordatorio
Memoria virtual: recordatorio

  • Problema: ejecutar programas de tamaño mayor que la memoria física disponible

    • Mayor grado de multiprogramación

    • Transparencia

  • Soluciones

    • Overlays: Control directo por parte del programador

    • Memoria virtual: Control realizado por el S.O.

  • La memoria virtual (MV) se basa en el principio de localidad de las referencias.

    • Mantener en memoria principal sólo la información que se necesite en cada momento

    • Reducción de la E/S

  • Actúa como una caché de objetos

    • Archivos, swap, dispositivos


Memoria virtual recordatorio1
Memoria virtual: recordatorio

  • Implementación: basada tanto en mecanismos de paginación o segmentación

    • Problemática:

      • Detectar si la información referenciada está en memoria principal

      • Si no lo está, localización en disco

      • Políticas de ubicación y asignación de páginas

  • Habitualmente se usa paginación:

    • Bloques de tamaño fijo, las transferencias desde y hacia el disco son más simples

    • Políticas de ubicación son más simples: todos los bloques son iguales

    • Soporte Hardware requerido:

      • Tablas de páginas

      • Bits de validez, referencia y modificación

      • Instrucciones interrumpibles

      • Almacenamiento secundario


Paginaci n resumen

Lapáginaestá

enmemoriaauxiliar

S. O.

3

Programa

Memoria secundaria

Referencia

2

1

Excepción

LOAD M

0

6

Memoria principal

Reiniciar

la instr.

Tabla de

páginas

5

Cargar la

página que

falla

Marco libre

4

Actualizar la

tabla de páginas

Paginación: resumen


Hiperpaginaci n thrashing
Hiperpaginación (Thrashing)

  • Hiperpaginación: Un proceso genera fallos de página frecuentemente y el sistema pasa la mayor parte del tiempo paginando

Thrashing

Utilización

de la CPU

Grado de multiprogramación


Hiperpaginaci n thrashing1
Hiperpaginación (Thrashing)

  • Posible causa de la hiperpaginación: Un proceso necesita más marcos, su tasa de fallos de página aumenta y se produce la siguiente reacción en cadena:

    • Disminuye el uso de la CPU

    • El S.O. decide aumentar el grado de multiprogramación

    • La tasa de fallos de página se incrementa más

  • Soluciones:

    • Reducir la multiprogramación o emplear un algoritmo de reemplazo local o por prioridades

    • Prevenir la hiperpaginación


Modelo del conjunto de trabajo
Modelo del conjunto de trabajo

  • Se basa en la localidad

  • Formado por las páginas recientemente accedidas

  • Las páginas en uso se encuentran en el CdT

  • El conjunto de trabajo varía con el tiempo

Número de páginas del almacenamiento

primario asignadas al proceso

Tiempo


C mo determinar el cdt
¿Cómo determinar el CdT?

  • El verdadero CdT lo forman las páginas que deben estar en el almacenamiento primario para la ejecución eficaz del proceso

  • W = tamaño de la ventana del CdT

  • ¿Cómo afecta el tamaño de W?

w

Tiempo de ejecución

de un proceso

t-w

t

Las páginas referenciadas por el proceso durante

este intervalo constituye el conjunto de trabajos

W(t,w), del proceso


Frecuencia de fallos de p gina
Frecuencia de fallos de página

  • La estrategia de la PFF es un enfoque más directo para evitar el vapuleo

  • Se establece un límite superior e inferior para la PFF y así evitar el thrashing

Incrementar el

número de marcos

límite superior

Frecuencia

de fallos

de página

límite inferior

Decrementar el

número de marcos

Número de marcos


Memoria virtual algoritmos
Memoria virtual: algoritmos

  • Política de asignación: ¿Qué cantidad de memoria real se asigna a un proceso activo?

  • Política de ubicación: ¿Dónde puede ubicarse un bloque en memoria principal?

  • Política de búsqueda: ¿Cuándo y qué bloques traer del almacenamiento secundario a MP?

    • Paginación anticipada

    • Paginación por demanda

  • Política de reemplazo: ¿Qué bloque debería sustituirse al traer a memoria principal un nuevo bloque si no hay memoria libre?


Pol ticas de asignaci n
Políticas de asignación

  • El mínimo número de marcos que debe asignarse a un proceso está definido por la arquitectura

  • Ámbito del reemplazo de páginas

  • Tipos de algoritmos de asignación:

    • Asignación equitativa

    • Asignación proporcional

    • Asignación prioritaria

Ventajas

Las páginas de un proceso en memoria

dependen sólo de su comportamiento

Mejor aprovechamiento de la memoria

Reemplazo local

Reemplazo global


Pol ticas de ubicaci n
Políticas de ubicación

  • Métodos utilizados para contabilizar la memoria utilizada y libre:

    • Mapa de bits

    • Listas

  • Políticas de ubicación:

    • En paginación:

      • “Indiferente”

    • En segmentación

First fit: el primero que sirva

Next fit: el siguiente que sirva

Best fit: el que mejor se adapte

Worst fit: el que peor se adapte

Sistema Buddy


Sistema buddy
Sistema Buddy

Bloques libres

Inicial

P1 pide 70

P2 pide 35

P3 pide 80

Devuelve P1

P4 pide 60

Devuelve P2

Devuelve P4

Devuelve P3

1

3

3

3

4

3

4

3

1

1024 Kb

P1

512

128

256

P1

P2

64

512

256

P1

64

P3

128

512

P2

128

P2

64

128

512

P3

128

P2

P3

128

512

P4

128

64

P4

P3

128

512

256

P3

128

512

1024 Kb


Paginaci n por demanda
Paginación por demanda

  • El camino que toma un programa cuando se está ejecutando no es predecible

    • Se cargan las páginas a medida que se necesitan

  • Ventajas:

    • Las páginas traídas son las que realmente se necesitan

    • La sobrecarga que implica la decisión de qué páginas traer al almacenamiento principal es mínima


Paginaci n anticipada prepaginaci n
Paginación anticipada (prepaginación)

  • Trata de evitar los retardos por fallos de página

    • Se cargan un cierto número de páginas en base a una predicción

  • Ventajas:

    • Si la predicción es buena, el tiempo de ejecución de los procesos se reduce considerablemente

    • Con la reducción de costes del hardware, las consecuencias de una mala predicción son menos graves


Reemplazo de p ginas
Reemplazo de páginas

  • Es necesario cuando se produce un fallo de página y está toda la memoria llena

  • Tasa de fallos  uno por cada 106 – 2 x 107 accesos

  • Si hay un fallo de página (miss) hay que:

    • Encontrar la página demandada en memoria auxiliar

    • Encontrar un marco libre o liberarlo usando un algoritmo de reemplazo de páginas

    • Cargar la página en memoria principal (page in)

    • Transferir el control al proceso de usuario


Algoritmos de reemplazo de p ginas
Algoritmos de reemplazo de páginas

  • Se pretende utilizar el algoritmo que seleccione páginas que causen la frecuencia de fallos más baja

  • Criterios para valorar la calidad de los algoritmos de sustitución:

    • Baja sobrecarga

    • Sin ajustes (“No tuning”)

    • Aproximación al LRU (menos usada recientemente)


Cadenas de referencia
Cadenas de referencia

  • Para evaluar la calidad de los algoritmos de sustitución se consideran:

    • Cadenas de referencia: listas de referencias a páginas

    • Número de marcos de página de que se dispone

  • Obtención de las cadenas de referencia:

    • Artificialmente, de forma pseudoaleatoria

    • Grabando una traza de ejecución


Cadenas de referencia1
Cadenas de referencia

  • Ejemplo: 0100, 0432, 0101, 0612, 0102, 0103, 0104, 0101, 0611, 0102, 0103, 0104 0101, 0610, 0102, 0103, 0104, 0101, 0609, 0102, 0105

    • Con páginas de 100h palabras

    • Cadena de referencias:

      • sólo nos interesa el número de página

      • si se referencia una página p, las referencias inmediatamente

      • sucesivas a esa página nunca causarán fallo de página

      • 1, 4, 1, 6, 1, 6, 1, 6, 1, 6, 1

    • Con tres marcos habrá 3 fallos y con 1 marco 11 fallos

      • si el número de marcos aumenta, en general, el número de fallos de página disminuye


Algoritmos de reemplazo de p ginas1
Algoritmos de reemplazo de páginas

  • Existen diferentes algoritmos, entre ellos:

    • Algoritmo óptimo

    • Algoritmo FIFO

    • Algoritmo LRU

    • Algoritmos de aproximación al LRU


Algoritmo ptimo
Algoritmo óptimo

  • Se reemplaza la página que va a tardar más tiempo en ser usada

  • La tasa de fallos es la más baja posible

  • Algoritmo imposible de realizar

    • Criterio comparativo


Algoritmo ptimo1

7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0

Marcos de página

2

2

2

7

7

7

7

2

2

2

2

2

2

2

2

2

2

0

0

0

0

0

0

0

4

0

4

4

0

4

0

0

0

0

3

3

1

1

1

1

3

1

3

3

3

3

3

3

1

1

7

1

0

4

3

8 fallos de página

Algoritmo óptimo

  • Ejemplo: Cadena de referencia


Algoritmo fifo

7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0

Marcos de página

0

4

0

0

7

7

7

2

7

2

2

2

2

4

4

4

0

0

0

2

1

0

0

0

0

3

0

3

3

3

2

2

2

2

2

1

1

0

3

3

2

3

1

1

1

1

1

0

0

0

3

3

3

2

1

0

7

0

2

3

4

2

3

12 fallos de página

Algoritmo FIFO

  • Sustituye la página que lleva más tiempo en memoria

  • Ejemplo: Cadena de referencia


Algoritmo fifo1
Algoritmo FIFO 2 1 2 0

  • Algoritmo sencillo de entender e implementar

  • Inconvenientes:

    • Rendimiento del algoritmo pobre. Páginas frecuentemente usadas pueden ser sustituidas

    • Se puede producir la Anomalía de Belady: aumento del número de fallos de página al aumentar el número de marcos


Anomal a de belady

1 2 3 4 1 2 5 2 1 2 01 2 3 4 5

4

5

5

5

1

1

1

4

5

1

5

5

4

1

1

2

2

2

2

1

1

1

1

1

3

3

3

3

3

3

3

2

2

2

2

2

4

2

4

1

4

2

3

1

2

Con 3 marcos, 9 fallos de página

4

5

5

5

1

1

1

4

1

4

4

5

5

5

1

2

2

2

2

1

1

1

1

3

1

3

3

1

5

4

4

1

1

1

1

1

1

5

5

5

5

5

2

2

2

2

2

2

1

2

1

1

1

3

2

4

3

3

3

3

2

2

2

2

2

4

3

3

3

3

3

3

3

2

2

2

2

4

4

4

4

4

4

4

3

3

3

4

1

1

2

3

2

4

5

1

1

2

3

Con 4 marcos, 10 fallos de página

Con 3 marcos, 9 fallos de págna

Anomalía de Belady

  • Ejemplo: Con 3 y 4 marcos de página

1 2 3 4 1 2 5 1 2 3 4 5


Algoritmo lru least recently used
Algoritmo LRU ( 2 1 2 0Least Recently Used)

  • Algoritmo de aproximación al reemplazo óptimo

  • Basado en utilizar el pasado reciente como una predicción del futuro más próximo

  • Sustituye la página menos usada en el pasado inmediato

  • Carece de la anomalía de Belady

  • La implementación requiere de hardware adicional:

    • Campo en las entradas de la tabla de páginas

    • Pila de las páginas en memoria


Algoritmo lru least recently used1

Cadena de referencia 2 1 2 0

7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0

Marcos de página

4

0

0

1

7

7

7

2

7

2

2

2

4

2

4

4

0

0

1

1

3

3

3

0

0

0

0

0

0

0

0

0

3

3

3

3

0

3

2

2

2

2

1

1

1

1

3

3

3

2

2

2

2

7

1

2

3

0

4

0

3

11 fallos de página

Algoritmo LRU (Least Recently Used)

  • ¿Podría comportarse erróneamente el algoritmo con un bucle que ocupa varias páginas?

  • Ejemplo:


Algoritmos de aproximaci n al lru
Algoritmos de aproximación al LRU 2 1 2 0

  • Existen diferentes algoritmos, entre ellos:

    • Algoritmo del reloj global

    • Algoritmo FIFO con segunda oportunidad

    • Algoritmo NFU


Algoritmo del reloj global

Páginas 2 1 2 0

9

34

20

2

8

5

16

1

7

10

Algoritmo del reloj global

  • Se colocan todas las páginas que pueden ser sustituidas en una lista circular

  • Un proceso de sistema borra los bits de referencia cada cierto tiempo utilizando un puntero giratorio

  • Si en la siguiente vuelta el bit sigue desactivado, la página en cuestión es una buena candidata a ser sustituida


Algoritmo fifo con segunda oportunidad
Algoritmo FIFO con segunda oportunidad 2 1 2 0

  • Combina sencillez y buen rendimiento

  • Emplea un bit de referencia asociado a cada página

  • Pasos del algoritmo:

    • Se elige una página con criterio FIFO y se examina su bit de referencia

      • Si el bit de referencia está activo, se desactiva y se trata la página como si se acabara de llegar a memoria. Volver a 1

      • Si el bit de referencia está desactivado, se sustituye la página

  • Generalmente se implementa mediante una cola FIFO circular con las páginas cargadas


Algoritmo fifo con segunda oportunidad1

R 2 1 2 0

0

0

1

R

0

1

1

R

1

0

0

R

0

0

0

7

7

7

7

2

0

0

0

0

0

1

1

1

1

1

Algoritmo FIFO con segunda oportunidad

  • Ejemplo: Cadena de referencia

7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0

Marcos de página

3

3

2

4

4

4

4

3

3

0

7

7

7

7

2

2

2

2

1

1

0

0

2

2

2

2

1

0

0

0

0

0

0

0

3

3

3

3

3

0

2

2

1

1

1

1

0

0

3

1

2

0

3

2

7

4

R

1

1

1


Algoritmo fifo con segunda oportunidad2

7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0

Marcos de página

3

3

2

4

4

4

4

3

3

0

7

7

7

7

2

2

2

2

1

1

0

0

2

2

2

2

1

0

0

0

0

0

0

0

3

3

3

3

3

0

2

2

1

1

1

1

0

0

3

1

2

0

3

2

7

4

R

1

1

1

12 fallos de página

0

1

2

Algoritmo FIFO con segunda oportunidad

  • Ejemplo: Cadena de referencia


Algoritmo nfu not frequently used
Algoritmo NFU 2 1 2 0(Not Frequently Used)

  • Algoritmo que simula por software el algoritmo LRU

  • Utiliza un contador asociado a cada página que se incrementa en cada interrupción de reloj de acuerdo con el valor del bit de referencia

  • En cada pulso de reloj se borra el valor del bit de referencia

  • Si hay un fallo de página se elige la página con el valor mínimo del contador para su sustitución


Algoritmo nfu not frequently used1

Cadena de referencia 2 1 2 0

7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0

3

3

3

3

7

7

7

2

7

2

2

3

3

3

3

3

3

3

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

2

2

1

1

1

1

1

4

2

2

2

2

2

1

2

1

7

1

4

2

1ª interrupción de reloj

2ª interrupción de reloj

3ª interrupción de reloj

4ª interrupción de reloj

0 1 2 3 4 5 6 7

Interrupción

R

1

1

0

0

0

0

0

1

C

0

0

0

0

0

0

0

0

R

R

1

0

0

0

1

0

0

1

0

0

0

0

0

0

0

0

R

0

0

0

0

0

0

0

0

C

C

C

2

1

1

1

0

1

0

1

0

0

0

0

0

0

1

1

1

1

0

0

0

0

0

1

Algoritmo NFU(Not Frequently Used)

  • Ejemplo:

0 1 2 3 4 5 6 7


Algoritmo nfu not frequently used2

7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0

3

3

3

3

7

7

7

7

2

2

2

3

3

3

3

3

3

3

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

2

2

1

1

1

1

1

4

2

2

2

2

2

1

2

1

7

1

4

2

1ª interrupción de reloj

2ª interrupción de reloj

3ª interrupción de reloj

4ª interrupción de reloj

9 fallos de página

0 1 2 3 4 5 6 7

1

0

1

0

0

0

0

1

1

0

1

0

0

0

R

4

1

1

0

3

1

0

0

0

2

1

C

Algoritmo NFU(Not Frequently Used)

  • Ejemplo:

Cadena de referencia

Estado final


Algoritmo nfu not frequently used3
Algoritmo NFU ( 2 1 2 0Not Frequently Used)

  • Problema: ¿qué sucede si una página se usó mucho en la fase inicial de un proceso y luego no se vuelve a utilizar?

  • Solución: mecanismos que permitan envejecimiento de los contadores

    • Desplazar los contadores 1 bit a la derecha antes de añadir el bit de referencia

    • Añadir el bit de referencia al bit del extremo izquierdo del contador


Caso de estudio mach 3 0
Caso de estudio: Mach 3.0 2 1 2 0

  • Posee un algoritmo FIFO con segunda oportunidad

  • Utiliza tres colas de páginas:

    • Cola de páginas libres

    • Cola de páginas activas

    • Colas de páginas inactivas

  • Un demonio denominado “pageout” mueve páginas:

    • Desde la cola de páginas activas a la cola de páginas inactivas

    • Desde la cola de páginas inactivas a la de páginas libres


Caso de estudio mach 3 01

Cola libre 2 1 2 0

Localización

Pageout Scan

Pageout Scan

Cola activa

Cola inactiva

Referencia

Caso de estudio: Mach 3.0

  • Las colas activa e inactiva son FIFO

  • Las páginas que están en la cola inactiva y son referenciadas, se pasan a la cola activa


Caso de estudio mach 3 02
Caso de estudio: Mach 3.0 2 1 2 0

  • Código base de “pageout”:

    if (free_queue_pages < vm_page_free_min)

    {

    while ((free_queue_pages < vm_page_free_target) &&

    (Inactive_queue))

    {

    move pages from inactive queue to free queue

    }

    if (inactive_queue_pages < vm_page_inactive_target)

    {

    move pages from active queue to inactive queue

    }

    }

    else sleep


Caso de estudio linux

#Página 2 1 2 0

#Página

#Página

Caso de estudio: Linux

  • Niveles de tablas en Linux

Nivel 1Nivel2Nivel3Desplazamiento

Página

física

Tabla de

páginas

Tabla de

páginas

Tabla de

páginas

PGD


Caso de estudio linux1
Caso de estudio: Linux 2 1 2 0

Memoria virtual

del proceso

vm_area_struct

task_struct

vm_end

vm_start

vm_flags

mm

vm_inode

vm_ops

Datos

mm_struct

open ( )

vm_next

close ( )

count

vm_area_struct

pgd

vm_end

swapout ()

vm_start

swapin ( )

mmap

vm_flags

vm_inode

Código

Operaciones de

memoria virtual

vm_ops

vm_next


Caso de estudio linux2
Caso de estudio: Linux 2 1 2 0

Memoria física

free_area

mem_map_t

mem_map_t

Libre

Libre

Libre

Libre

Libre

Marco 0

4

count

age

map_nr= 4

map

count

age

map_nr= 70

Marco 1

3

Marco 2

2

Marco 3

Marco 4

1

Marco 5

mem_map_t

0

Marco 6

count

age

map_nr= 0

Marco 7

Marco 8


Caso de estudio linux3
Caso de estudio: Linux 2 1 2 0

Apertura y proyección del programa sobre

las áreas de memoria virtual del proceso

Fallo de página

No

Paginación

bajo

demanda

¿Dirección legal?

Acceso ilegal.

Enviar señal

SIGSEV al

proceso

No

¿Acceso legal?

Fallo de página legal

Traer página

desde el

área de

intercambio

Traer página

desde el

archivo en

disco

No

¿Entrada vacía en la TP?


Caso de estudio linux4
Caso de estudio: Linux 2 1 2 0

  • Gestión del área de intercambio:

    • Un demonio de intercambio (kswapd) se encarga de mantener suficientes marcos libres

    • kswapd se ejecuta como un hilo del núcleo activándose en el arranque del sistema

    • kswapd cada segundo comprueba si el número de marcos libres es demasiado bajo. Si es así, busca marcos que puedan ser descartados o sustituidos

    • Algoritmo implementado en el demonio: algoritmo de aproximación al LRU con envejecimiento


Caso de estudio linux5
Caso de estudio: Linux 2 1 2 0

  • Técnica de envejecimiento de páginas:

    • Al asignar un marco de página se le asocia por defecto edad 3

    • Las páginas rejuvenecen al acceder a ellas (edad+3 hasta un máximo de 20)

    • Cada vez que se ejecuta kswapd envejece las páginas en 1 si no se usan

    • Las páginas víctimas para los intercambios se eligen de entre las páginas viejas (edad 0) y modificadas

    • En función de la operación vm_ops->swapout de la región de memoria (vm_area_struct), la página víctima se lleva a disco.


Caso de estudio linux6
Caso de estudio: Linux 2 1 2 0

  • Si una página modificada se lleva a disco:

    • su entrada en la tabla de páginas se marca como inválida

    • se incluye la información para su recuperación posterior y

    • se libera, añadiéndola en la free_area

  • Las páginas no modificadas no se sustituyen:

    • se descarta su contenido

    • se marcan como libres, añadiéndolas en la free_area

  • Si se recuperan suficientes páginas del proceso seleccionado, el demonio dormirá de nuevo

  • Si no se liberan suficientes páginas del proceso actual, se continúa con el siguiente proceso

  • El demonio empezará en la página siguiente en una nueva activación


Caso de estudio linux7

Memoria física 2 1 2 0

Marco 0

Marco 1

Marco 2

Marco 3

Marco 4

Marco 5

Página 3

Página 0

Página 1

Página 1

Página 2

Caso de estudio: Linux

Tabla de páginas A

Proceso A

BV BR BM

Página 0

Página 1

Página 2

Página 3

1

2

0

1 0

1 1

0 0

1 0

Tabla de páginas B

Proceso B

BV BR BM

Página 0

Página 1

Página 2

0 0

1 0

3

1 0

4


Caso de estudio linux8
Caso de estudio: Linux 2 1 2 0

kswapd

Edad de los marcos de página

0 1 2 3 4

Tabla de páginas A

Proceso A

7

0

3

0

9

BV BR BM

Página 0

Página 1

Página 2

Página 3

1

x

0

1 0

Memoria física

free_area

0 1

Página 3

2

1

0

0 0

Página 0

1 0

2 4

Página 1

Tabla de páginas B

Proceso B

Página 1

BV BR BM

Página 0

Página 1

Página 2

0 0

swap

1 0

3

1

x

0 0


Caso de estudio w2k

Páginas nuevas Páginas antiguas 2 1 2 0

Caso de estudio: W2K

  • El gestor de memoria virtual de WNT utiliza un algoritmo de reemplazo de páginas local tipo FIFO

  • La política de reemplazo sustituye la página más antigua del conjunto de páginas del proceso que causó el fallo

  • Conjunto de trabajo (WS): número de páginas que el proceso tiene garantizadas en memoria mientras se está ejecutando

Conjunto

de

trabajo


Caso de estudio w2k1
Caso de estudio: W2K 2 1 2 0

  • Al crearse un proceso se le asigna un tamaño mínimo del WS

  • El gestor varía el tamaño de los WS de los procesos según los requirimientos de memoria:

    • Incrementa la memoria libre del sistema (recorte automático del WS) de un proceso si su tamaño es mayor que el mínimo

    • Incrementa el tamaño del WS hasta un máximo si el proceso genera fallos de página y la memoria no está demasiado llena

    • Si el proceso requiere más páginas, se eliminan páginas de su WS empleando el algoritmo FIFO


Caso de estudio w2k2
Caso de estudio: W2K 2 1 2 0

  • Las páginas eliminadas del WS pueden volver a él rápidamente sin realizar lectura del disco

  • Permanecen en memoria en uno de estos estados:

    • Standby: el proceso utiliza el marco de página pero ha sido eliminado del WS

    • Modificado: = Standby pero el proceso ha escrito en la página sin actualización de disco

lista de páginas

en standby o

modificadas

Conjunto de trabajo


Caso de estudio w2k3
Caso de estudio: W2K 2 1 2 0

Fallo de

página

cero

Lectura de página del disco o núcleo

Lista de

marcos

Standby

Lista

de

marcos

libres

Lista

de

marcos

Cero

WS

de

procesos

Fallos

de

página

“soft”

Escritor

de marcos

modific.

Hilo

de marco

Cero

Lista de

marcos

Modific.

Sustitución

en el WS

Lista de marcos

erróneos

Finaliza el proceso