Apunte05 s.o. Contigua

54
1 UNIVERSIDAD TÉCNICA FEDERICOSANTA MARÍA Departamento de Informática Capítulo V: Gestión de la Memoria Visión del programa, métodos de memoria contigua y memoria no contigua, memoria virtual UNIVERSIDAD TÉCNICA FEDERICOSANTA MARÍA Departamento de Informática 5.1 Conceptos Básicos Raúl Monge Departamento de Informática 3 Gestión de la Memoria Buena utilización de los recursos del sistema requiere de multiprogramación Existen múltiples procesos Deben compartir la memoria Se requiere de soporte especial de hardware: Lograr un buen rendimiento Mayor seguridad en el acceso a memoria

Transcript of Apunte05 s.o. Contigua

Page 1: Apunte05 s.o. Contigua

1

UNIVERSIDAD TÉCNICA FEDERICOSANTA MARÍADepartamento de Informática

Capítulo V:Gestión de la Memoria

Visión del programa, métodos de memoria contigua y memoria no

contigua, memoria virtual

UNIVERSIDAD TÉCNICA FEDERICOSANTA MARÍADepartamento de Informática

5.1 Conceptos Básicos

Raúl Monge Departamento de Informática 3

Gestión de la Memoria

• Buena utilización de los recursos del sistema requiere de multiprogramación� Existen múltiples procesos� Deben compartir la memoria

• Se requiere de soporte especial de hardware:� Lograr un buen rendimiento� Mayor seguridad en el acceso a memoria

Page 2: Apunte05 s.o. Contigua

2

Raúl Monge Departamento de Informática 4

La Memoria• La memoria es un arreglo de palabras o

bytes, identificados por su dirección• Ejecución de una instrucción de máquina

requiere:� Búsqueda de la instrucción (siempre)� Búsqueda de operandos (no siempre)� Almacenamiento de resultados (no siempre)

• La unidad de memoria sólo ve un flujo de referencias a direcciones físicas de la memoria (no sabe cómo se generan y qué representan)

Raúl Monge Departamento de Informática 5

Ligado de Direcciones� Tiempo de Compilación. Es posible si se conoce a

priori la dirección absoluta donde residirá el programa.

� Tiempo de Enlace. Permite resolver direcciones entre diferentes módulos. Módulos deben poseer código reubicables.

� Tiempo de Carga. Se ajustan direcciones de acuerdo a la zona de memoria donde se cargará.

� Tiempo de Ejecución. Se se permite el movimiento de segmentos de memoria, se requiere de este tipo de ligado, que requiere de soporte de hardware especial.

Raúl Monge Departamento de Informática 6

Proceso de Generación de un Ejecutable

ProgramaFuente

ProgramaFuente

Compi-lador

oEnsam-blador

Compi-lador

oEnsam-blador

ObjetoObjeto

ObjetoObjeto

Editorde

Enlaces

Editorde

Enlaces

Módulode CargaMódulode Carga

Tiempo de Compilación Tiempo de Enlace

Page 3: Apunte05 s.o. Contigua

3

Raúl Monge Departamento de Informática 7

Proceso de Carga

ProgramaEjecutableProgramaEjecutable CargadorCargador

Bibliotecadel SistemaBiblioteca

del Sistema

Imagende memoria

Imagende memoria

Tiempo de Carga Tiempo de Ejecución

Bibliotecade CargaDinámica

Bibliotecade CargaDinámica

Raúl Monge Departamento de Informática 8

Direcciones Lógicas y Físicas• Dirección lógica (tb. dirección virtual) es el

tipo de referencias que usa un programa.• Dirección física es el tipo de referencias

que usa la unidad de memoria.

traduccióntraducciónDirección

lógicaDirección

lógicaDirección

físicaDirección

física

Raúl Monge Departamento de Informática 9

Esquema de la Memoria

BusBus

MMU

Contro-lador

E/SE/S

MemoriaPrincipal

CPU

Page 4: Apunte05 s.o. Contigua

4

Raúl Monge Departamento de Informática 10

MMU Simple

dirdir

basebase

++Dirección Lógica

Registro de Reubicación

base

dir

CPUMemoria

MMU

DirecciónFísica

Raúl Monge Departamento de Informática 11

Optimización del Uso de Memoria� Problema: Para que un programa pueda

ejecutarse debe ser cargado en forma completa en memoria.

� Objetivo: Mejorar el uso de la memoria (e.g. Espacio lógico sea menor que el físico)

� Métodos básicos:� Overlays (sobreposiciones)� Carga dinámica� Enlace dinámico

Raúl Monge Departamento de Informática 12

a) Overlays• Si no hay suficiente memoria, programa

puede ser estructurado en trozos independientes, tal que ellos no requieren estar simultáneamente en memoria.

• Evaluación de la técnica de overlay� permite ejecutar un programa con un espacio de

memoria física menor que el espacio de memoria lógica.

� No requiere soporte del Sistema Operativo� Es difícil organizar un programa, por lo que su uso

es limitado.

Page 5: Apunte05 s.o. Contigua

5

Raúl Monge Departamento de Informática 13

Ejemplo de Overlay

Manejo de sobreposiciones

Paso 1

Tabla de Símbolos

Código común

Espacio de Direccionesdel Programa

Paso 1 Paso 2Paso 2

Raúl Monge Departamento de Informática 14

b) Carga Dinámica• Un módulo (o rutina) no se carga hasta que sea

llamada por el programa (e.g. DLL en Windows)� Módulos se mantienen en disco en formato reubicable� Ligado a este tipo de módulo requiere chequear en una

llamada si éste se encuentra cargado en memoria.� Si no está cargado, editor de enlace debe invocarse para

cargarlo, actualizando tablas de direcciones.

• Mejor desempeño al no cargar módulos no referenciados.

• No requiere soporte especial del SO, que puede apoyar con funciones especiales carga dinámica.

Raúl Monge Departamento de Informática 15

c) Enlace Dinámico

• Sistemas tradicionales sólo proveen enlace estático a funciones de biblioteca.

• Bibliotecas compartidas permiten que el enlace se postergue hasta después de la carga.

• Permite ahorrar espacio de disco y memoria.• Se requiere enlazar estáticamente sólo un stub por función

� Stub verifica si la función está cargada en memoria� Si no la está debe cargarla, pudiendo reemplazar en la tabla

dirección del stub por la de la función, habilitando accesos directos.

• Facilita mantención de bibliotecas• Requiere soporte del SO para compartir memoria entre

diferentes procesos.

Page 6: Apunte05 s.o. Contigua

6

UNIVERSIDAD TÉCNICA FEDERICOSANTA MARÍADepartamento de Informática

5.2 Gestión de la Memoriacon Asignación Contigua

Raúl Monge Departamento de Informática 17

a) Máquina Desnuda� Características:

� El usuario tiene control total sobre todo el espacio de direcciones (y los recursos) del sistema

� No existe sistema operativo� No se requiere hardware especial� Muy flexible y simple

� Limitación: No existen servicios� Aplicación: Se usa sólo en sistemas

dedicados

Raúl Monge Departamento de Informática 18

b) Monitor Residente• El espacio de memoria se divide en dos

partes:� Espacio del Sistema Operativo (núcleo)� Espacio de Usuarios

• Ubicación del vector de interrupcionesdetermina posición del Sistema Operativo

• Se requiere hardware especial si se quiere proteger al Sistema Operativo

� Reubicación de programas es bien soportada con traducción dinámicas de direcciones.

Page 7: Apunte05 s.o. Contigua

7

Raúl Monge Departamento de Informática 19

Esquema Simple de Monitor Residente

SistemaOperativo

Usuario1

Libre

Usuario2 ¡No se soportamultiprogramación!

UNIVERSIDAD TÉCNICA FEDERICOSANTA MARÍADepartamento de Informática

c) Multiprogramación con Particiones

Raúl Monge Departamento de Informática 21

Reubicación Dinámica con Protección

dirdir

basebase

++Dirección Lógica

Registro de Reubicación

base

dir

Memoria

MMU

DirecciónFísica

limlimRegistro Límite

< NO TRAP

Page 8: Apunte05 s.o. Contigua

8

Raúl Monge Departamento de Informática 22

Observaciones• Registro Base y Registro Límite son parte del

contexto de un proceso.• Estos registros sólo pueden ser modificados

en modo supervisor.• Este soporte es adecuado para manejar

múltiples particiones de la memoria para soportar multiprogramación

• El sistema operativo también puede cambiar su tamaño, sin afectar a los programas usuarios

Raúl Monge Departamento de Informática 23

c1) Particiones Fijas (o Estáticas)� El espacio usuario se divide en particiones de tamaño

fijo � En cada partición puede cargarse un proceso (i.e. el

grado de multiprogramación está a priori acotado al número de particiones).

� Cambiar el tamaño de las particiones requiere detener y arrancar nuevamente el sistema.

� La disponibilidad de particiones libres permite admitir un nuevo trabajo que calce en la partición (planificación de largo plazo).

� Se pueden aplicar técnicas de overlays, pero son transparentes al sistema operativo

Raúl Monge Departamento de Informática 24

Ejemplo de Particiones Estáticas

Monitor

2K

6K

12K

2K1K2K

4K3K5K

8K11K7K

IBM OS/360 con MFT(Procesamiento Batch)

Page 9: Apunte05 s.o. Contigua

9

Raúl Monge Departamento de Informática 25

Planificación de Trabajos con Particiones Estáticas• best--fit-only. Particiones de

diferentes tamaño con una cola para cada partición.� Trabajos se colocan en la cola de la

partición que mejor calzan• best-avalaible-fit. Particiones de

diferentes tamaño con cola única.� Trabajos se planifican considerando la

partición disponible donde mejor calzan

Raúl Monge Departamento de Informática 26

Fragmentación Interna y Externa• Si el proceso no ocupa toda la memoria

asignada en la partición, se produce fragmentación interna.

• Si existen particiones libres donde no calza ningún trabajo en espera, se produce fragmentación externa.

• Problemas:� Fragmentación interna y externa causan uso poco

eficiente de la memoria.� Difícil determinar a priori el tamaño de los

procesos

Raúl Monge Departamento de Informática 27

c2) Particiones Variables(o Dinámicas)

• Objetivo: minimizar fragmentación interna y externa

• SO mantiene tablas con particiones asignadas y libres.

• Particiones para los procesos se crean dinámicamente bajo demanda (cuando se carga el trabajo en una partición libre de tamaño adecuado)

• Usa el mismo hardware que particiones fijas, pero otro SO.

Page 10: Apunte05 s.o. Contigua

10

Raúl Monge Departamento de Informática 28

Ejemplo(MVT de IBM OS/360)

40

0

100

P1

P2

P3200

230

256

S.O.

40

0

100

P1

P3200

230

256

S.O.

40

0

100

P1

P4

P3200

230

256

170

S.O.

40

0

100

P4

P3200

230

256

170

S.O.

40

0

100

P5

P4

P3200

230

256

170

90

S.O.

LlegaP4Sale

P2

SaleP1

LlegaP5

Secuencia de Trabajos: P1 (60K), P2 (100K), P3 (30K), P4 (70K), P5 (50K)

Raúl Monge Departamento de Informática 29

Observaciones

� Nótese que después de un tiempo de trabajo se produce una dispersión de la memoria libre y ocupada.

� Bloques libres podrían fundirse en un solo bloque

Raúl Monge Departamento de Informática 30

Planificación de Trabajos con Particiones Dinámicas

• First-Fit: Cargar en la primera partición libre de tamaño suficiente (sencillo y rápido)

• Best-Fit: Cargar en la partición libre que mejor calza (produce fragmentos libres pequeños)

• Worst-Fit: Cargar en el fragmento libre mayor donde calza (produce grandes fragmentos libres)

Page 11: Apunte05 s.o. Contigua

11

Raúl Monge Departamento de Informática 31

Cuantificación de la Fragmentación Externa

• En general, en estado estacionario, si existen N particiones asignadas, entonces también existirán N particiones libres con tamaño promedio igual a la mitad de un programa.

� Por lo tanto, 1/3 de la memoria se desperdicia.

� Esta propiedad se conoce como la regla del 50%

Raúl Monge Departamento de Informática 32

Problemas con Particiones Dinámicas� La práctica demuestra que first-fit y best-fit

ofrecen los mejores rendimientos, sin embargo:� Se pueden producir fragmentos libres muy

pequeños� Solución: fundirla con la partición ocupada anterior

o usar bloques de tamaño fijo (produce fragm. interna).

� Se generan una serie de fragmentos de memoria libre entre cada par de particiones ocupadas consecutivas, cuyo tamaño no acepta otro trabajo.� Solución: Compactación

Raúl Monge Departamento de Informática 33

Resumen sobre Fragmentación

Tipo de Partición Fragmentación interna Fragmentación externaEstática SI SI

Dinámica NO SI (pero se puede compactar)

Page 12: Apunte05 s.o. Contigua

12

Raúl Monge Departamento de Informática 34

Compactación

� Consiste en unir todos los bloques libres de memoria en una sola partición.

� Se requiere soporte de reubicación dinámica de programas:� mover los bloques y� ajustar registros base y límite

Raúl Monge Departamento de Informática 35

¿Cuándo compactar?

• Criterios:♦ Periódicamente♦ Σ(espacio libre) > tamaño próximo trabajo

• Se debe considerar que la compactación tiene un costo:

♦ ¿Cuánto cuesta mover bloques de la memoria?

Raúl Monge Departamento de Informática 36

Ejemplo de Compactación

Compactar

300

0

500

P1

P2

P4

1000

1200

1500

S.O.

600

P3

1900

2100

300

0

500

P1

P2

P4800

1200

S.O.

600P3

2100

300

0

500

P1

P2

P4

1000

1200

S.O.

600

P3

2100

300

0

500

1500

600

P1

P2

P4

S.O.

P31900

2100

Mueve 600K Mueve 400K Mueve 200K

Page 13: Apunte05 s.o. Contigua

13

Raúl Monge Departamento de Informática 37

Comentarios sobre Compactación

• Optimizar la compactación requiere de algoritmos más inteligentes

• Se puede combinar swapping con particiones dinámicas para generar espacios libres.

• Sin embargo, la fragmentación externa en particiones dinámicas puede ser reducida, pero no eliminada.

• En la gestión del espacio de memoria de disco surgen problemas de fragmentación similares a los definidos en particiones dinámicas.

UNIVERSIDAD TÉCNICA FEDERICOSANTA MARÍADepartamento de Informática

d) Swapping

Raúl Monge Departamento de Informática 39

Concepto de Swapping

• Un proceso para que se pueda ejecutar debe estar cargado en memoria principal.

• Un proceso puede ser temporalmente sacado de la memoria (swap-out), para después volverlo a traer a la memoria (swap-in), y para continuar su ejecución.

• Para sacar un proceso se requiere de un dispositivo rápido de respaldo en memoria secundaria (típicamente un disco), donde se mantienen imágenes de memoria de los procesos.

Page 14: Apunte05 s.o. Contigua

14

Raúl Monge Departamento de Informática 40

Ejemplo de Swapping

SistemaOperativo

Espacio deUsuarios

ProcesoP2

2) Swap-in

ProcesoP1

1) Swap-out

ProcesoP1

ProcesoP2

Raúl Monge Departamento de Informática 41

Ejemplo de Cálculo• Supongamos disco con:

� 8 [ms] de tiempo de búsqueda� 8 [Mbps] de tasa de transferencia

• Procesos de 1 [MB]• Swap-in o swap-out demora 1008 [ms] c/u• Significa que si se tiene un solo proceso en

memoria, existiría 2,016 [s] sin asignar la CPU

• Por lo tanto, el cuanto de tiempo debiera ser mucho mayor que 2 [s]

Raúl Monge Departamento de Informática 42

Aplicaciones de Swapping• Primeros sistemas interactivos (Q-32) usaban

swapping con un solo proceso en memoria• Llegada de un proceso más prioritario

requiere crear espacio de memoria, sacando alguno de más baja prioridad de memoria si no hay espacio.

• Se puede usar para reducir carga sobre el sistema (ver planificación de mediano plazo)

Page 15: Apunte05 s.o. Contigua

15

Raúl Monge Departamento de Informática 43

Problemas con Swapping• Mecanismo de traducción de direcciones

lógica determina si es posible traer el proceso a otra zona de memoria (requiere reubicación dinámica)

• Usualmente no se pueden sacar procesos que tienen solicitudes pendientes:�Swap-out sólo si el proceso está inactivo�Usar buffering en el SO

• Latencia de swapping se puede amortiguar si se mantienen en memoria varios procesos (e.g. particiones dinámicas)

UNIVERSIDAD TÉCNICA FEDERICOSANTA MARÍADepartamento de Informática

5.3 Gestión de la Memoriacon Asignación No Contigua

Raúl Monge Departamento de Informática 45

Motivación� Los esquemas anteriores sufren de

fragmentación, principalmente porque requieren de asignación contigua, haciendo un mal uso de la memoria

� Una alternativa sería:� Dividir el espacio de memoria de un programa en

varias partes más pequeñas� Permitir que estas partes se carguen en cualquier

parte libre de la memoria (no contigüidad física)� Usar un mecanismo de traducción que mantenga

la contigüidad lógica del programa

Page 16: Apunte05 s.o. Contigua

16

UNIVERSIDAD TÉCNICA FEDERICOSANTA MARÍADepartamento de Informática

a) Paginación

Raúl Monge Departamento de Informática 47

Concepto de Paginación• Programas se dividen en unidades pequeñas de

memoria de tamaño fijo, denominadas páginas(tamaño es normalmente una potencia de 2).

• La memoria física se divide en unidades del mismo tamaño, denominadas marcos de página (page frames).

• Cualquier página puede ser cargada en cualquier marco de página libre (no necesariamente contiguo).

• A los programas se les puede asignar memoria bajo demanda

Raúl Monge Departamento de Informática 48

Asociación entre Página y Marco

44

33

22

11

00

Programa

0

1

23

4012345678

Memoria Principal

01234

42670

Página Marco

Page 17: Apunte05 s.o. Contigua

17

Raúl Monge Departamento de Informática 49

Mecanismo de Traducción• Se requiere de una tabla de páginas (PT)

para cada proceso, donde se pueda asociar a cada página con el marco correspondiente.

• Se requiere hardware especial (MMU) para establecer eficientemente en tiempo de ejecución una asociación entre página y marco.

• Sistema Operativo debe también mantener información sobre marcos libres (Tabla de Marcos)

Raúl Monge Departamento de Informática 50

Estructura de Direcciones

p d

Dirección Lógica (DL)

f d

Dirección Física

TraducciónTraducción

p : # de páginad : offsetf : # de marco

Si P es tamaño de páginaentonces:

p = DL div Pd = DL mod P

Raúl Monge Departamento de Informática 51

Ejemplo de Direcciones

p d

Dirección Lógica

Supongamos:tamaño de dirección lógica: m bitstamaño de página: P = 2n bits

n bitsm-n bits Tamaño típico de P:512 B a 8 KB

Page 18: Apunte05 s.o. Contigua

18

Raúl Monge Departamento de Informática 52

Implementación Básica delMecanismo de Traducción

b +

Dirección FísicaDirección Lógica

dRegistro PTBRf*P

Memoria Principal

p d f d

PT

f

pb

Raúl Monge Departamento de Informática 53

Observaciones

• El usuario ve un espacio contiguo de direcciones lógicas.• Sólo para el S.O. es visible la dispersión del espacio de

direcciones físicas en la memoria que tiene cada proceso.• Tabla de Páginas (PT) es sólo manipulada por el S.O.

(queda en el espacio físico del núcleo).• Normalmente se usa un registro límite PTLR cuyo

contenido se compara con p.• En el cambio de contexto se debe cambiar registro base

(PTBR) y límite (PTLR), de manera de apuntar a tabla de páginas del nuevo proceso.

• La manipulación los registros especiales debe ser con instrucciones privilegiadas.

Raúl Monge Departamento de Informática 54

Planificación de Trabajos

• Si el trabajo requiere N páginas y existen al menos N marcos libres, entonces admitirlo.

• Crear el proceso asignándole N marcos de páginas y definiendo la PT para el proceso.

• Agregar en la PCB referencia a la PT.

Page 19: Apunte05 s.o. Contigua

19

Raúl Monge Departamento de Informática 55

Fragmentación y Tamaño de Página• Se elimina fragmentación externa, evitándose

la compactación.• Se introduce una fragmentación interna

mínima�Promedio ≈ ½ [página/programa]�Peor caso es P-1 bytes.

• Se debe buscar compromiso de tamaño página (overhead de PT vs. fragmentación interna).

• Transferencia de disco es más eficiente para páginas más grandes.

Raúl Monge Departamento de Informática 56

Tiempo de Acceso Efectivo

• Acceso efectivo a memoria requiere de dos acceso a la memoria física(entrada a PT + dirección objetivo)

• Significa que el tiempo de acceso efectivo aumenta al doble (algo intolerable).

• Se requiere idear algún mecanismo de optimización.

Raúl Monge Departamento de Informática 57

Memoria Asociativa• También conocido como TLB (Translation Look-

aside Buffer), implementada en hardware• Se direcciona por contenido (clave de acceso).• Cada entrada contiene una clave (búsqueda) y

un dato (corresponde a la salida si se encuentra la clave, i.e. si hay éxito)

• TLB se direcciona por el número de página (p), y si existe éxito se obtiene directamente el número de marco (f), sin recurrir a la memoria principal.

Page 20: Apunte05 s.o. Contigua

20

Raúl Monge Departamento de Informática 58

Características de la TLB

• TLB es parte del procesador (MMU)• El tiempo de acceso es menor que la memoria

principal• TLB mantiene automáticamente como entradas las

últimas referencias• El tamaño típico de un TLB es de 8 a 2048 registros• Una tasa de éxito típica es del orden de 80% al

98%• TLB debe ser borrada en un cambio de contexto

Raúl Monge Departamento de Informática 59

Implementación con TLB

Dirección FísicaDirección Lógica

df*P

Memoria Principal

p d f d

b

Registro PTBR+

PT

f

pb

TLB

p f

Sin Éxito

Éxito

Raúl Monge Departamento de Informática 60

Tiempo de Acceso Efectivo con TLB

Supongamos:

Tef : Tiempo de acceso efectivo a memoriaTmp : tiempo de acceso a la memoria principalTma : tiempo de acceso a la TLBh : probabilidad de éxito

(encontrar referencia en TLB)entonces:

Tef = h* (Tma + Tmp) + (1-h)* (2*Tmp)

Page 21: Apunte05 s.o. Contigua

21

Raúl Monge Departamento de Informática 61

Ejemplo

Procesador Intel i486 tiene un TLB de 32 entradas

Supongamos:

Tmp: 100 [ns] Tma = 20 [ns] h = 90%

Entonces:

Tef = 0,9*120 + 0,1*200 = 128 [ns] (28% de aumento)

Raúl Monge Departamento de Informática 62

Memoria Cache

� Procesadores modernos son capaces de mantener copias de las páginas más usadas en la memoria Cache

� Memoria cache es más rápida que la principal� Cuando se referencia a una página, se verifica

primero si ella está en la cache.�Si lo está, se accede directamente, sin ir a MP�Si no lo está, se accede normalmente a la memoria y

se copia esta página a la memoria cache para futuros accesos.

� Si accesos tienden a concentrarse en ciertas zonas de la memoria, se mejora el desempeño

Raúl Monge Departamento de Informática 63

Cálculo del Tiempo de Acceso Efectivo con Memoria Cache� Se debe considerar tasa de éxito de encontrar

la página en memoria cache.� Se debe considerar que parte de tabla de

páginas (no la TLB) también puede estar en la memoria cache.

� Si existe TLB, se debe considerar primero tasa de éxito en la TLB y luego tasa de éxito en la memoria cache, tanto en el acceso a la tabla de página como a la página objetivo.

Page 22: Apunte05 s.o. Contigua

22

Raúl Monge Departamento de Informática 64

Activación de la Traducción• El SO puede activar o desactivar el modo de

traducción dinámica de direcciones.�Modo desactivado usa directamente direcciones

físicas• Procesos normalmente corren con traducción

activada (sólo ven su espacio lógico de direcciones)

• El núcleo normalmente ejecuta código con la traducción desactivada�Le permite manipular el espacio de direcciones de

cualquier proceso

Raúl Monge Departamento de Informática 65

Protecciones� En la tabla de páginas es posible agregar

otros atributos (además de f) a cada registro de página.

� Existen básicamente los siguientes atributos de protección:� Modo de acceso� Verificación de presencia de la página en memoria

� Una violación de la protección genera una interrupción (trampa), que es atrapada por el SO.

Raúl Monge Departamento de Informática 66

Protección de Modo de Acceso� Típicamente existen tres modos de accesos:

� Lectura� Escritura� Ejecución

� Modo de acceso es validado en el momento del direccionamiento

� Acceso indebido genera una interrupción (trampa al S.O.)

Page 23: Apunte05 s.o. Contigua

23

Raúl Monge Departamento de Informática 67

Bit de Validación� Permite verificar presencia de página en

Memoria Principal:�1 (validado): la página asociada si está en el

espacio de direcciones lógica, y es por lo tanto legal.

�0 (invalidado): la página asociada no está en el espacio de direcciones lógica del proceso, es ilegal.

� Acceso ilegal a una página genera una trampa

� Permite dejar sin cargar algunas páginas de un programa

Raúl Monge Departamento de Informática 68

Compartición de Páginas

• Paginación facilita compartición de código entre programas.

• Código debe ser reentrante (sólo se lee y ejecuta, pero no se altera)

• Cuando existen varios usuarios ejecutando el mismo programa, se requiere sólo una copia del código

• Se implementa mapeando diferentes direcciones lógicas en una misma dirección física

Raúl Monge Departamento de Informática 69

Ejemplo de Compartición de Páginas

Ed1Ed2Ed3Data3

3467

Proceso P3

PT3

Ed1Ed2Ed3Data2

3462

Proceso P2

PT2

Ed1Ed2Ed3Data1

3461

Proceso P1

PT1Data1Data2Ed1Ed2

Ed3Data 3

0

1234

5

67

8

Page 24: Apunte05 s.o. Contigua

24

Raúl Monge Departamento de Informática 70

Problema con Tamaño de Tabla de Páginas

� Computadores modernos soportan espacios lógicos de direcciones de 232 a 264 bits

� Tales direcciones requieren tablas de páginas demasiado grandes

� Se hace inmanejable mantener tales tablas en memoria contigua.

Raúl Monge Departamento de Informática 71

Ejemplo de Tamaño de Tabla de Página

� Supongamos:� Dirección de 32 bits� Páginas de 4 KB� 32 bits para una entrada en la tabla

� Entonces:� Tabla puede tener hasta 232/212 = 220

entradas� Requiere 4 MB de memoria para la PT

Raúl Monge Departamento de Informática 72

Paginación Multinivel

� Tabla de páginas se divide en páginas� En el ejemplo anterior, una página

puede tener hasta 220 entradas� Una posible estructura de una dirección

con paginación de dos niveles es:

p1 d

Dirección Lógica

p2

10 bits 10 bits 12 bits

Número de página Offset

Page 25: Apunte05 s.o. Contigua

25

Raúl Monge Departamento de Informática 73

Ejemplo de 2 Niveles

Páginade PT

f

p2

PTExterna

b2

p1

b

d

Memoria Principal

Dirección Lógicap1 p2 d

b2

Raúl Monge Departamento de Informática 74

Comentarios sobre Paginación Multinivel� Dos niveles son adecuado hasta 32 bits� Muchas arquitecturas de 32 bits usan más

niveles� SPARC de 32 bits: 4 niveles� Motorola 68030 de 32 bits: 3 niveles.

� Direcciones de 64 bits requieren más de 2 niveles

� Existencias de más niveles degrada el tiempo de acceso efectivo.� Requiere integrarlos con técnicas caching y TLB

Raúl Monge Departamento de Informática 75

Tabla de Páginas Invertida� Una crítica al método anterior es que una PT puede

consistir de millones de entrada, existiendo una por proceso.

� Tal situación consume mucha memoria.� Una solución es una tabla de páginas invertida

con una entrada por cada página real (marco), que es común a todos los procesos.� Dirección lógica es 3-tupla: <pid, p, d>� Cada entrada en la tabla tiene el par: <pid, p>� Posición relativa en la tabla permite determinar f

Page 26: Apunte05 s.o. Contigua

26

Raúl Monge Departamento de Informática 76

Esquema de Traducción Dinámica con Tabla Invertida

Dirección Lógicapid p d

pid p

búsqueda

Dirección Física

df*P

Memoria Principal

f d

Raúl Monge Departamento de Informática 77

Comentarios sobre Tablas Invertidas de Páginas

� Una Entrada no encontrada en la tabla significa dirección ilegal.

� Usado en máquinas IBM (IBM System/38, IBM RISC 6000, IBM RT)

� Reduce espacio de memoria ocupado por tablas.� Sin embargo, se aumenta tiempo de búsqueda

� Se usan tabla de hash y memoria asociativa� No es un esquema popular (es difícil compartir

memoria)

UNIVERSIDAD TÉCNICA FEDERICOSANTA MARÍADepartamento de Informática

b) Segmentación

Page 27: Apunte05 s.o. Contigua

27

Raúl Monge Departamento de Informática 79

Segmentos

� Un programa se divide normalmente en segmentos lógicos:� Código� Datos� Stack� Heap� Bibliotecas� Tabla de símbolos� etc.

� Segmentación permite tener una visión lógica del programa que se ha segmentado

Raúl Monge Departamento de Informática 80

Ejemplo de Visión Lógica del Usuario

Código

S0

Stack

S2

DatosGlobales

S1

Heap

S3

Biblioteca

S4

Raúl Monge Departamento de Informática 81

Características de la Segmentación

� Memoria se divide en segmentos, donde se cargan unidades lógicas de un programa

� Un programa es un conjunto de segmentos, donde cada uno pueden tener tamaño diferente.

� Un dirección lógica es un par <s, d> , donde s es el segmento y d el desplazamiento.

� Segmentos no requieren localizarse en forma contigua.

� Se requiere una tabla de segmentos para para mantener contigüidad del espacio lógica.

Page 28: Apunte05 s.o. Contigua

28

Raúl Monge Departamento de Informática 82

Implementación Básica delMecanismo de Traducción

+

Dirección FísicaDirección Lógica

d

Registro STBR

Memoria Principal

s d s´+ d

ST

sb

+

lim

b

d<lim NO Trap

Raúl Monge Departamento de Informática 83

Ejemplo de Segmentación

Código

S0

Stack

S2

DatosGlobales

S1

Heap

S3Biblio-

tecaS4

Memoria Lógica S01400

2400

S3

3200

4300 S24700

S45700

6700S1

6300

Memoria Física

1000400400

11001000

14006300430032004700

01234

s límite base

Tabla de Segmentos

Raúl Monge Departamento de Informática 84

Observaciones� Segmentos son de tamaño variable, lo que

obliga a controlar su tamaño usando atributo especial en ST.

� Para controlar tamaño de ST, es necesario verificar que s no excede el número de segmentos, usando registro límite STLR.

� En un cambio de contexto se debe actualizar el contenido de STBR y STLR.

� La modificación de estos registros debe hacerse con instrucciones privilegiadas.

Page 29: Apunte05 s.o. Contigua

29

Raúl Monge Departamento de Informática 85

Aspectos de Desempeño� La adición de s´+d se hace en paralelo con la

comparación d<lim� Mantención de la ST se puede hacer

mediante un conjunto de registros rápidos(Sólo factible si tabla es pequeña)

� Se puede mantener en una memoria asociativa entradas frecuentes a la ST, manteniendo 3-tupla <s, lim, s´> y buscar por s y obtener par <lim, s´>

� No es aplicable memoria cache.

Raúl Monge Departamento de Informática 86

Protección y Compartición de Memoria

� Segmentación facilita el control de la compartición y protección de la memoria.

� Para protecciones se mantiene información adicional en ST sobre métodos de acceso permitidos

Raúl Monge Departamento de Informática 87

Ejemplo de Compartición

43.062

Proceso 1

S0

Editor

S1

Datos1ST de Proceso 1

Proceso 2

S0

Editor

S1

Datos2

ST de Proceso 2

Editor

Datos1

Datos2

68.348

90.003

72.713

98.553

Límite Base0 25.286 43.0621 4.425 68.348

Límite Base0 25.286 43.0621 8.550 90.003

Page 30: Apunte05 s.o. Contigua

30

Raúl Monge Departamento de Informática 88

Asignación de la Memoria

• Se pueden usar los mismos algoritmos de particiones dinámicas (first-fit o best-fit)

• Se produce fragmentación externa• Se puede emplear compactación para

reducir efectos de fragmentación externa.

UNIVERSIDAD TÉCNICA FEDERICOSANTA MARÍADepartamento de Informática

c) Segmentación Paginada

Raúl Monge Departamento de Informática 90

Segmentación Paginada� Esquema muy popular en computadores modernos.� Trata de obtener las ventajas de la paginación (evitar

fragmentación) y de la segmentación (dividir en unidades lógicas)

� Programa se divide en segmentos y cada segmentos en páginas

� Una dirección lógica es una 2-tupla <s, d> , donde dse divide a su vez en la 2-tupla <p, d´>.

� Fragmentación promedia se aproxima a 1/2 página por cada segmento del programa.

Page 31: Apunte05 s.o. Contigua

31

Raúl Monge Departamento de Informática 91

Esquema de Traducción Dinámica

+

ST

lim bp

d < lim

trap

NO

bsSTBR

+Dirección

Física

MemoriaPrincipal

f d´

PT de s

f

p d´

DirecciónLógicas d

d

bs

bp

Raúl Monge Departamento de Informática 92

Ejemplo de Multics

� Dirección lógica de 34 bits:�18 bits para el segmento (la ST se pagina)�16 bits desplazamiento (6 para la página y 10

para desplazamiento en la página)

Raúl Monge Departamento de Informática 93

Compartición y Protecciones

� Al igual que segmentación, se pueden agregar atributos en ST para discriminar el tipo de acceso permitido

� Un mismo segmento puede ser mapeado al espacio lógico de diferentes procesos.

Page 32: Apunte05 s.o. Contigua

32

Raúl Monge Departamento de Informática 94

Desempeño� Esquema presentado requiere 3 accesos a la

memoria para un acceso efectivo.� Dado que existe paginación es factible de

introducir técnica de memoria asociativa y de caching.

� Memoria asociativa (TLB) mantiene 3-tupla <s, p, f> y se busca por par <s, p>obteniéndose f.

� Técnicas anteriores permiten mantener tiempo de acceso efectivo dentro de límites razonables.

UNIVERSIDAD TÉCNICA FEDERICOSANTA MARÍADepartamento de Informática

Resumen

Raúl Monge Departamento de Informática 96

Esquemas de Administración

• Memoria Contigua:� Elementales: Máquina desnuda y monitor

residente (sin multiprogramación)� Particiones estáticas y dinámicas

• Memoria no contigua:� Paginación� Segmentación� Segmentación paginada

Page 33: Apunte05 s.o. Contigua

33

Raúl Monge Departamento de Informática 97

Aspectos de Comparación� Soporte de hardware� Desempeño en la traducción (dirección lógica

a física)� Fragmentación� Reubicación (problema de compactación)� Swapping� Compartición de la memoria� Protección de la memoria

UNIVERSIDAD TÉCNICA FEDERICOSANTA MARÍADepartamento de Informática

5.4 Gestión de Memoria Virtual

UNIVERSIDAD TÉCNICA FEDERICOSANTA MARÍADepartamento de Informática

5.4.1 Introducción a Memoria Virtual

Page 34: Apunte05 s.o. Contigua

34

Raúl Monge Departamento de Informática 100

Objetivo de la Gestión de Memoria

� El objetivo principal de la administración moderna de memoria es mantener simultáneamente en la memoria el mayor número posible de procesos.

� Para ello es deseable poder distribuir el espacio físico disponible entre un mayor número de procesos.

Raúl Monge Departamento de Informática 101

¿Porqué no cargar completamente un programa?� La lógica del programa determina que ciertas

partes no se ejecutan.� Existe código que maneja situaciones de

excepción.� Arreglos, listas y tablas asignan normalmente

mayor memoria que la realmente requerida.� No todas las partes de un programa

requieren estar simultáneamente en memoria (referencias se concentran en ciertas zonas de memoria).

Raúl Monge Departamento de Informática 102

Definición de Memoria Virtual

� técnica que permite la ejecución de un proceso que no requiere estar completamente en memoria principal, siendo esta característica trasparente para el programador.

Page 35: Apunte05 s.o. Contigua

35

Raúl Monge Departamento de Informática 103

Características de la Memoria Virtual� Ventajas

� Aumenta grado de multiprogramación al requerir menos memoria real por proceso

� Programas pueden ser mayores que el espacio de memoria física.

� Se requiere menor tráfico de E/S para "swappear" un programa

� Libera al programador de preocuparse de limitaciones de memoria (como es el caso con overlays y carga dinámica)

� Desventajas� Puede disminuir notablemente el desempeño del sistema.� Se requiere de mecanismos más complejos de

administración.

Raúl Monge Departamento de Informática 104

Ejemplo de Paginación Bajo Demanda

MemoriaFísica

ABCDEFGH

0123

567

4

MemoriaLógica

A B

C D EF

MemoriaSecundaria

C

A

E

5

11

15

0marco

Bit devalidación

11 1001

5 1203

15 14050607

PT

Raúl Monge Departamento de Informática 105

Estrategias para la Gestión de la Memoria Virtual• Búsqueda: ¿Cuándo buscar de la memoria

secundaria una parte de un programa? (Anticipación o por demanda)

• Ubicación: ¿Dónde localizarlo en la memoria principal? (en paginación es trivial)

• Reemplazo: ¿Qué sacar a memoria secundaria si no existe espacio disponible?

Page 36: Apunte05 s.o. Contigua

36

Raúl Monge Departamento de Informática 106

Paginación por Demanda• Búsqueda: Una página se trae a memoria

principal cuando se referencia y no está en MP.

• Ubicación: Una página puede ser cargada en cualquier marco libre.

• Reemplazo: En caso de no existir espacio, la página que está en el marco a asignar debe ser respaldada (si es necesario) y sobrecargarla con la página traída.

Raúl Monge Departamento de Informática 107

Swapping de Páginas� Sistemas modernos son generalmente de

paginación por demanda.• Sistema de paginación debe realizar swapping

de páginas entre MP y MS. • Swapping se realiza sólo para páginas

buscadas y páginas reemplazadas (lazy swapper).

• Se requiere de un mecanismo para reconocer qué páginas están en MP y qué paginas en MS (e.g. uso de bit de validación).

Raúl Monge Departamento de Informática 108

Soporte de Hardware• Tabla de Páginas con bit de validación• Acceso a una página no presente en MP

causa una falta de página (interrupción)• Memoria secundaria (con espacio de

swapping para páginas)• Resolver problemas con instrucciones

complejas que quedan a medio a hacer (referencias a páginas no presentes en MP)

Page 37: Apunte05 s.o. Contigua

37

UNIVERSIDAD TÉCNICA FEDERICOSANTA MARÍADepartamento de Informática

5.4.2 Falta de Páginas

Raúl Monge Departamento de Informática 110

Procesamiento de Falta de Páginaif (página p no está en MS)

terminar el proceso;else { /* traer página a MP */

if (no existe marco libre) {/* realizar un reemplazo */elegir una página p’ a reemplazar en marco f;planificar escritura de p’ hacia MS;wait(transferencia);

} else { /no se requiere reemplazo */asignar marco f de lista de marcos libres;

}/* transferir página a marco asignado f */planificar lectura de p desde MS y transferir a f;wait (transferencia);actualizar tabla de página con marco fponer bit de validación = 1;recomenzar la última instrucción;

}

Raúl Monge Departamento de Informática 111

Sobre las Faltas de Página

• Uso de un bit de modificación para marcar páginas modificadas en la memoria principal permite evitar swap-out de páginas reemplazadas.

• Partida de un proceso con ninguna página en MP causa inicialmente una serie de faltas de páginas.

Page 38: Apunte05 s.o. Contigua

38

Raúl Monge Departamento de Informática 112

Tiempo de Acceso EfectivoSea: p probabilidad de falta de página

Tmp tiempo de acceso de memoria principalTfp tiempo de acceso con falta de páginaTef tiempo de acceso efectivo de memoria principal

Entonces el tiempo de acceso efectivo es:

Tef = (1-p)* Tmp + p* Tfp

)1(*1 −+=mp

ef

TTp

TT fp

mp

y se puede deducir que:

Raúl Monge Departamento de Informática 113

Ejemplo de Desempeño (1/2)

Si : Tmp = 100 [ns]Tfp = 20 [ms]

Se tiene que:

Tef = (1-p)* 100 + p* 20*106 [ns]100 + 19.999.900*p [ns]

Raúl Monge Departamento de Informática 114

Ejemplo de Desempeño (2/2)Si p = 10-3, entonces:

Tef ≈ 20 [ms]

Ahora si se quiere acotar a un aumento de 10% para el Tef, se tiene que:

0,1 > p*(Tef/Tmp –1) ó

p < 0,1/(20*106/100 –1) ≈ 5*10-7

¡¡Significa que no ocurre más de una falta de página en 2.000.000 accesos a MP!!

Page 39: Apunte05 s.o. Contigua

39

Raúl Monge Departamento de Informática 115

Análisis del Desempeño

� Se puede reducir el desempeño:�Usando discos rápidos de manera de

mantener baja la relación Tfp/Tmp

�Reducir la probabilidad p de falta de página

� Primer punto es un problema de usar mejor tecnología de hardware

� Segundo punto requiere de políticas y mecanismos de control especiales

UNIVERSIDAD TÉCNICA FEDERICOSANTA MARÍADepartamento de Informática

5.4.3 Reemplazo de Páginas

Raúl Monge Departamento de Informática 117

¿Cómo crear espacio libre?

• Comprar más memoria• Swappear un proceso a disco

(reduciendo el grado de multiprogramación)

• Reemplazar una página

Page 40: Apunte05 s.o. Contigua

40

Raúl Monge Departamento de Informática 118

Motivación� Realizando reemplazo se permite mantener

más procesos en memoria (aumenta grado de multiprogramación)

� Reemplazo aumenta al doble el tiempo de acceso de falta página, pero se puede reducir usando bit de modificación.

� Probabilidad de falta de página aumenta si la fracción de programa en MP es menor.

Raúl Monge Departamento de Informática 119

Problemas básicos de Paginación bajo Demanda

• Algoritmo de Asignación de Páginas� ¿Cuántos marcos asignar a cada proceso?

• Algoritmo de Reemplazo de Páginas� ¿Qué página reemplazar?

¡¡¡Resolver adecuadamente estos problemas puede mejorar significativamente el desempeño del sistema!!!

Raúl Monge Departamento de Informática 120

Método de Reemplazo

• Si no existe marco libre se debe reemplazar

• Elegir una víctima usando un algoritmo de reemplazo

• Si la página saliente ha sido modificada debe ser respaldada (bit de modificación)

• Cargar la nueva página en el marco liberado

Page 41: Apunte05 s.o. Contigua

41

Raúl Monge Departamento de Informática 121

Algoritmos de Reemplazo

� Diferentes políticas de reemplazo:� Aleatorio� FIFO� El menos usado� etc.

� Algoritmo elegido tiene fuerte impacto en el desempeño.

Raúl Monge Departamento de Informática 122

a) Reemplazo Aleatorio• Principio:

• Reemplazar aleatoriamente cualquier página de MP, sin hacer ningún esfuerzo de predicción

• Características:• Este algoritmo es el más simple dado que no

requiere mantener información.• Sin embargo por no explotar información sobre el

comportamiento del proceso no logra buen desempeño.

Raúl Monge Departamento de Informática 123

b) Reemplazo Óptimo� Principio de Optimización [Denning70]:

� Se llega a un desempeño óptimo reemplazando aquella página que va a ser nuevamente usada en el futuro más lejano.

� Características:� Logra el mejor desempeño posible� Este algoritmo tiene conocimiento total sobre el

desarrollo de la computación.� ¡No es (prácticamente) realizable!� Sin embargo es de interés, pues permite comparar

que tan bien lo hacen otros algoritmos respecto al óptimo.

Page 42: Apunte05 s.o. Contigua

42

Raúl Monge Departamento de Informática 124

Ejemplo de Reemplazo Óptimo

A B C D A B E A B C D EA* A A A A A A A A C* C C- B* B B B B B B B B D* D- - C* D* D D E* E E E E EX X X X X X X

¡¡¡Produce 7 faltas de página!!!

Raúl Monge Departamento de Informática 125

c) Reemplazo FIFO

• Principio:� Si una página ya tuvo su oportunidad, debe

dársela a otra

• Implementación:• Se usa una marca de tiempo, y se reemplaza la

más vieja.

• Problema:• Páginas más usadas tienden a ser reemplazadas

(e.g. páginas de código principal y compartidas)

Raúl Monge Departamento de Informática 126

Ejemplo: Reemplazo FIFO (1/2)

A B C D A B E A B C D EA* B* C* D* A* B* E* E E C* D* D- A B C D A B B B E C C- - A B C D A A A B E EX X X X X X X X X

¡¡¡Produce 9 faltas de página!!!

Page 43: Apunte05 s.o. Contigua

43

Raúl Monge Departamento de Informática 127

Ejemplo: Reemplazo FIFO (2/2)

A B C D A B E A B C D EA* B* C* D* D D E* A* B* C* D* E*- A B C C C D E A B C D- - A B B B C D E A B C- - - A A A B C D E A BX X X X X X X X X X

Se aumenta a 4 marcos de páginas

¡¡¡Produce 10 faltas de página!!!

Raúl Monge Departamento de Informática 128

Anomalía de Belady

• Parece natural que contra más marcos se le asignen a un proceso, habrá menos faltas de página.

• Sin embargo, Belady observó que en el algoritmo FIFO puede suceder lo contrario (e.g. en el ejemplo anterior)

Raúl Monge Departamento de Informática 129

Reemplazo LRU(Least Recently Used)� Principio:

� Aproximación al reemplazo óptimo basado en la heurística de que el pasado reciente es buen indicador del futuro inmediato

� Implementación� Usar un stack ordenando páginas por antigüedad

de referencia o usar marcas de tiempo.� Su implementación puede requerir un alto

overhead administrativo� Implementación eficiente requiere soporte de

hardware

Page 44: Apunte05 s.o. Contigua

44

Raúl Monge Departamento de Informática 130

Ejemplo de LRU (1/2)

A B C D A B E A B C D EA* B* C* D* A* B* E* A B C* D* E*- A B C D A B E A B C D- - A B C D A B E A B CX X X X X X X X X X

¡¡¡Produce 10 faltas de página!!!

Usando 3 marcos:

Raúl Monge Departamento de Informática 131

Ejemplo de LRU (2/2)

A B C D A B E A B C D EA* B* C* D* A B E* A B C* D* E*

A B C D A B E A B C D- - A B C D A B E A B C- - - A B C D D D E A BX X X X X X X X

¡¡¡Produce 8 faltas de página!!!

Usando 4 marcos:

Raúl Monge Departamento de Informática 132

Algoritmos de Aproximación a LRU

� Objetivo:� usar estrategias de reemplazo que hagan

decisiones razonables, y que� tengan un bajo overhead en su realización

� Algoritmos de apoximación� NUR (Not Used Recently)� LFU (Least Frequently Used)� Segunda Oportunidad (Second Chance)

Page 45: Apunte05 s.o. Contigua

45

Raúl Monge Departamento de Informática 133

Algoritmo NUR

� Principio� Páginas que no se han usado

recientemente es poco probable que se usen proximamente

� Implementación:• Usar bit de referencia y bit de modificación

(bit sucio)• Inicialmente ambos bits en 0• Bits se refrescan periódicamente

Raúl Monge Departamento de Informática 134

Prioridad de Reemplazo en NUR

PRIORIODAD Ref Mod OBSERVACIÓN1 0 0 NO referenciado recientemente y NO modificado2 0 13 1 0 Referenciado recientemente, pero NO modificado4 1 1

Raúl Monge Departamento de Informática 135

Algoritmo LFU• Principio:

� Páginas que se referencian menos es poco probable que se referencia en un futuro cercano.

• Implementación básica:� Se usa contador de referencia para cada página� Se reemplaza página con menor número de

referencias� Si existe empate, se elige cualquiera de ellas

(orden parcial)� Problema:

� Se puede reemplazar página recién traída a memoria

Page 46: Apunte05 s.o. Contigua

46

Raúl Monge Departamento de Informática 136

Otra Implementación LFU• Mantener para cada marco un registro de

referencias.• Usar para ello un registro de desplazamiento• Periódicamente desplazar a la derecha y

marcar referencias sobre el bit más significativo.

• Se obtiene un decaimiento exponencial para el valor de referencia a una página

• Reemplazar la página con el menor valor en su registro.

Raúl Monge Departamento de Informática 137

Algoritmo de Segunda Oportunidad (Reloj)• Usar bit de referencia para cada marco de página• El conjunto de marcos se trata como un buffer

circular• Ante falta de página se reemplaza la primera página

que no ha sido referenciada en el sentido de reloj (bit en 0)

• Si al verificar el bit de referencia (éste está en 1), entonces dar segunda oportunidad reseteando bit de referencia y continuar búsqueda en sentido de reloj.

• Si la página no vuelve a ser referenciada en una vuelta, será reemplazada.

Raúl Monge Departamento de Informática 138

Asignación de Marcos� Problema:

� ¿Cómo distribuir los marcos libres de la memoria entre los procesos?

� Cantidad de marcos asignados determina desempeño del proceso.

� Consideraciones:� El sistema operativo requiere ocupar un número

necesario para mantener el núcleo.� Multiprogramación causa que procesos compitan

por los marcos libres de la memoria

Page 47: Apunte05 s.o. Contigua

47

Raúl Monge Departamento de Informática 139

Número Mínimo de Marcos

� Para que una instrucción se pueda ejecutar requiere un número mínimo de marcos asignados.

� Direccionamiento indirecto puede hacer aumentar este mínimo

� Conjunto de instrucciones del procesador es determinante del mínimo.

Raúl Monge Departamento de Informática 140

Algoritmos de Asignación

� Distribuir equitativamente los marcos libres

� Reconocer que los procesos requieren diferentes cantidades� Procesos más grandes reciben más:

� Favorecer a procesos más prioritarios

∑=

•= n

ijs

sma ii

1

Raúl Monge Departamento de Informática 141

Asignación Global vs. Local� Un factor importante es cómo hacer reemplazo:

� Sobre los marcos asignados al proceso (local)� Sobre cualquier marco (global)

� Reemplazo global puede adueñarse de marcos de otros procesos (e.g. Mayor prioridad), pero perjudica desempeño de algunos procesos.

� Reemplazo local mantiene constante número de marcos del proceso, pero limita a otros procesos de usar marcos con páginas poco usadas.

� En general, se prefiere reemplazo global (es más fácil de implementar)

Page 48: Apunte05 s.o. Contigua

48

UNIVERSIDAD TÉCNICA FEDERICOSANTA MARÍADepartamento de Informática

5.4.4 Localidad y Trashing

Raúl Monge Departamento de Informática 143

Concepto de Localidad• El concepto es central en la mayoría de las

estrategias de gestión de memoria virtual.• Procesos tienden a referenciar la memoria en

patrones no uniformes y altamente localizados:• Localidad temporal: Si se referencia una

localización de memoria, es probable que próximamente ésta misma se referencie nuevamente.

• Localidad espacial: Si se referencia una localización de memoria, es probable que a continuación sereferencie una localización contigua o vecina.

Raúl Monge Departamento de Informática 144

Localidad Temporal

• Ciclos repetitivos• Uso frecuente de una misma subrutina• Uso de stacks• Uso de variables globales (y comunes)

Page 49: Apunte05 s.o. Contigua

49

Raúl Monge Departamento de Informática 145

Localidad Espacial

• Ejecución secuencial de código• Recorrido de arreglos• Tendencia a agrupar variables

Raúl Monge Departamento de Informática 146

Ejemplo de Localidad

Raúl Monge Departamento de Informática 147

Frecuencia de Falta de Páginas

Fracción del Programa en MP

MayorLocalidad

ReferenciasAleatorias

FrecuenciaDe Falta dePáginas

1

1

f

∴∴∴∴ Un programa se ejecuta eficientemente en la medida que se mantengan en MPlas páginas donde están localizadas las referencias (páginas activas)

Page 50: Apunte05 s.o. Contigua

50

Raúl Monge Departamento de Informática 148

Hiperpaginación (Trashing)• En general, un proceso tiene un conjunto de páginas

de uso activo.• Si un proceso no tiene suficientes marcos asignados,

entonces reemplazará alguna de las páginas de uso activo.

• Entonces, la página reemplazada deberá ser nuevamente traída en el corto plazo a la MP.

• Por lo tanto, el proceso pasará gran parte de su tiempo esperando transferencias de E/S (ver cálculo del tiempo de acceso efectivo)

• Si la mayoría de los procesos sufre este fenómeno, la CPU quedará gran parte de su tiempo ociosa, con una fuerte carga de transferencias de E/S.

Raúl Monge Departamento de Informática 149

Efecto del Trashing

Utilización de CPU

1

Grado demultiprogramación

trashing

Raúl Monge Departamento de Informática 150

Control del Trashing� Principio:

� Para disminuir la hiperpaginación se debe disminuir el grado de multiprogramación.

� Cada proceso debe tener un número mínimo de marcos asignados (páginas activas en MP).

� Métodos de Control:� Conjunto de Trabajo� Frecuencia de Falta de Página

Page 51: Apunte05 s.o. Contigua

51

Raúl Monge Departamento de Informática 151

Conjunto de Trabajo (Working Set)

� ¿Cómo determinar dinámicamente cuál es el conjunto mínimo de páginas que hay mantener en MP sin entrar en trashing?

� P. Denning desarrolló la "Teoría del Conjunto de Trabajo para el Comportamiento de Programas" [CACM 11(5), May 1968, pp. 323-333]

Raúl Monge Departamento de Informática 152

Principio del Conjunto de Trabajo• Un programa puede ser cargado en memoria

sólo si existe suficiente espacio para acomodar su conjunto de trabajo

• El conjunto de trabajo son aquellas páginas con las cuales últimamente ha estado trabajando un programa (páginas activas, donde se localizan las referencias).

• Mientras no cambie la localidad, no se producen faltas de páginas.

Raúl Monge Departamento de Informática 153

Definición Formal de WS

t-∆ t∆

Tiempo de ejecuciónde Pi

Wi(t, ∆)

WSi(t, ∆) : Conjunto de trabajo del proceso Pi en el tiempo t con ventana ∆ (incluye todasaquellas páginas referenciadas entre t-∆ y t)

Page 52: Apunte05 s.o. Contigua

52

Raúl Monge Departamento de Informática 154

Observaciones al WS� Si , entonces se produce trashing� Conjunto de trabajo (WS) indica cuántas y cuáles

páginas mantener en MP para cada proceso.� WS cambio dinámicamente durante la ejecución de

un proceso.� ∆ debe ser ajustado para reducir tamaño de WS sin

provocar trashing.� Denning sugiere que ∆ equivalga a 10.000

referencias.� Se puede implementar una aproximación de WS

usando bit de referencia.

∑ >i

MPWSi ||

Raúl Monge Departamento de Informática 155

Control de Frecuencia de Falta de Página

• Medir la frecuencia de falta de página de cada proceso.

• Asignar más marcos si la frecuencia sobrepasa un límite superior fh

• Quitar marcos si la frecuencia baja de un límite inferior fl

Raúl Monge Departamento de Informática 156

Control de Falta de Páginas

Incrementar # marcos

FrecuenciaDe Falta dePáginas

# de marcos

fl

fh

decrementar # marcos

Page 53: Apunte05 s.o. Contigua

53

Raúl Monge Departamento de Informática 157

Observaciones• Si la frecuencia aumenta y no existen más

marcos libres, se debe suspender algún proceso

• Marcos libres se pueden distribuir sobre procesos con frecuencias altas

UNIVERSIDAD TÉCNICA FEDERICOSANTA MARÍADepartamento de Informática

5.4.5 Otras consideraciones

Raúl Monge Departamento de Informática 159

Prepaginación• Cuando arranca un proceso (tiene un costo)

� Se producen faltas de páginas hasta que se carga el WS.

� Cargar inmediatamente el WS (requiere determinarlo)

• Cuando se carga en la MP un proceso suspendido (swap-in):� Recordar el WS cuando se hace el swap-out

Page 54: Apunte05 s.o. Contigua

54

Raúl Monge Departamento de Informática 160

Tamaño de la Página• Se elige una potencia de 2 para facilitar

implementación• Compromiso entre fragmentación interna y tamaño

de la PT.• Tiempo de Acceso (latencia + transferencia) a una

página en disco.• Tamaño de los bloques de disco.• Página pequeño se ajusta mejor a la localidad del

programa• Página grande reduce la probabilidad de referenciar

otra página.

Raúl Monge Departamento de Informática 161

Bloqueo de E/S� Problema #1:

� Cómo asegurar que las transferencias de E/S se puedan realizar sin interferencia del reemplazo?

� Solución:� Copiar datos a través del kernel (costoso)� Bloquear algunas páginas en la MP

� Problema #2:� Cómo prevenir que páginas recién cargadas sean

reemplazadas?

Raúl Monge Departamento de Informática 162

Copy-on-Write• Idea:

� Página se comparte mientras no se modifique� Copia se inicia cuando se escribe

• Aplicaciones:� En un fork (inicialmente procesos comparten todo

su espacio de memoria)� En paso de mensajes (e.g. Mach): Página(s)

que contiene(n) mensaje del emisor se mapea(n) al espacio del receptor.