Paginación Segmentación Memoria Virtual Bibliografia

119
DSO 2015 Paginación Segmentación Memoria Virtual Bibliografia: (Temas de Memoria de Nutt, Stalling y Carretero)

Transcript of Paginación Segmentación Memoria Virtual Bibliografia

DSO 2015

Paginación

Segmentación

Memoria Virtual

Bibliografia:(Temas de Memoria de Nutt, Stalling y

Carretero)

DSO 2 Gestión de Memoria

Formato del ejecutable

Cabecera

Fichero EjecutableNúmero mágico

Contador de programa inicial

Tabla de secciones

Código

Datos con valor inicial

Tabla de símbolos

....................

CódigoDatos con v.i.Datos sin v.i....................... ........ ........

T. Símbolos

10005000------

8000

40001000500

1000

Despl. Tam.

. . . . . . . . . . . . . . . .

0

1000

5000

8000

Secciones

DSO 3 Gestión de Memoria

Crear mapa de memoria desde ejecutable

• Ejecución de un programa: – Crea mapa a partir de ejecutable

– Cuando se activa la ejecución de un programa (servicio exec en POSIXy CreateProcessen Win32), se crean varias regiones dentro del mapa apartir de la información del ejecutable. Cada sección del ejecutableconstituye un objeto de memoria. Las regiones iniciales del proceso sevan a corresponder básicamente con las distintas secciones delejecutable.

– Regiones de mapa inicial Secciones de ejecutable– Código

– Compartida, RX, T. Fijo, Soporte en Ejecutable– Datos con valor inicial

– Privada, RW, T. Fijo, Soporte en Ejecutable– Datos sin valor inicial

– Privada, RW, T. Fijo, Sin Soporte (rellenar 0)– Pila Privada, RW, T. Variable, Sin Soporte (rellenar 0) Crece hacia direcciones más bajas Pila inicial:

argumentos del programa

DSO 4 Gestión de Memoria

Mapa de memoria de un proceso

• Mapa de memoria o imagen del proceso:– conjunto de regiones

• Región:– Tiene asociada una información (un “objeto de

memoria”)– Zona contigua tratada como unidad al proteger o

compartir

• Cada región se caracteriza por:– dirección de comienzo y tamaño inicial– Soporte: donde se almacena su contenido inicial– protección: RWX– uso compartido o privado– tamaño fijo o variable

DSO 5 Gestión de Memoria

Crear mapa desde ejecutable

Cabecera

Fichero EjecutableNúmero mágico

Contador de programa inicial

Tabla de secciones

Código

Datos con valor inicial

Tabla de símbolos

....................

. . . . . . . . . . . . . . . .

0

1000

5000

8000

Secciones

Mapa de memoria

Código

Datos con valor inicial

0

4000

5000Datos sin valor inicial

PilaArgumentos del programa

“0”

DSO 6 Gestión de Memoria

Características de regiones

Región Soporte Protección Comp/Priv Tamaño

Código Fichero RX Compartida Fijo

Dat. con v.i. Fichero RW Privada Fijo

Dat. sin v.i. Sin soporte RW Privada Fijo

Pilas Sin soporte RW Privada Variable

Heap Sin soporte RW Privada Variable

F. Proyect. Fichero por usuario Comp./Priv. Variable

M. Comp. Sin soporte por usuario Compartida Variable

DSO 7 Gestión de Memoria

Mapa de memoria de un proceso hipotéticoMapa de memoria

Código

Datos con valor inicial

Datos sin valor inicial

Pila del proceso

Heap

Zona de memoria compartida

Pila de thread 1

Fichero proyectado F

Código biblioteca dinámica B

DSO 8 Gestión de Memoria

Operaciones sobre regiones

• Para estudiar evolución del mapa de memoria sepueden distinguir las siguientes operaciones: – Crear región

• Implícitamente al crear mapa inicial o por solicitud delprograma en t. de ejecución (p.ej. proyectar un archivo)

– Eliminar región• Implícitamente al terminar el proceso o por solicitud del

programa en t. de ejecución (p.ej. desproyectar unarchivo)

– Cambiar tamaño de la región• Implícitamente para la pila o por solicitud del programa

para el heap– Duplicar región

• Operación requerida por el servicio FORK de POSIX

DSO 9 Gestión de Memoria

Resumen Asignación

DSO 10 Gestión de Memoria

Reubicacion

Registro base Registro límite

<

Dirección lógica Si

No

Error de acceso a memoria (modo supervisor)

Dirección física

+

MemoriaCPU

DSO 11 Gestión de Memoria

Particiones Fijas

• Se divide la memoriadisponible en particionesfijas (al arrancar elsistema)

• Cada proceso se asignaa una UNICA particion

OS 8M

8M

8M

8M

8M

OS 8M

4M

8M

8M

12M

Igual Tamaño Distinto

DSO 12 Gestión de Memoria

Fragmentación Interna

OS 8M

8M

8M

8M

8M

Un procesoque usa 7M

Cuando este proceso, esalojado en memoria 1M dememoria ya no puede serutilizado por otro proceso.Esto se llamaFragmentación Interna

DSO 13 Gestión de Memoria

Particiones Dinamicas

• Las particiones son de tamaño variable

• A los procesos se les asigna la cantidad dememoria justa que necesitan

• No hay fragmentación interna, pero ...– Hay fragmentación externa. Se producen

agujeros en memoria. – Se utiliza la compactación

DSO 14 Gestión de Memoria

Algoritmo de ubicación

6M

8M

2M

7M

5M

Donde guardoeste proceso?

ultimobloquealojado

Mejor encaje

Primer encaje

Siguiente encaje

DSO 15 Gestión de Memoria

Problemas

• Todas las estrategias vistas hasta ahora:– Asignación contigua de memoria: Si dos direcciones lógicas

son contiguas, sus equivalentes direcciones físicas también– Problemas de fragmentación: interna y externa

• Solución:– Asignación no consecutiva de la memoria

• Paginación: páginas• Segmentación: segmentos (en apuntes)

DSO 16 Gestión de Memoria

Paginación

• La memoria logica de un proceso puede ser nocontigua.

• La memoria logica se divide en trozos de igualtamaño llamados páginas.

• La memoria fisica se divide en trozos fijos de igualtamaño llamados marcos:– El tamaño suele ser potencia de 2, entre 512 y 8192

bytes

• De manera que el tamaño de la pagina es igual altamaño del marco

DSO 17 Gestión de Memoria

Marcos

00000

00001

00002

00003

00004

00005

00006

00007

00008

00009

Numero de marco en hexadecimalRAM

El marco 00000 contiene lasdirecciones de los bytes desde0x00000000 hasta 0x00000FFF.Marco 00009 contiene lasdirecciones de los bytes desde0x00009000 – 0x00009FFF.

La RAM se divide en marcos iguales (4096 bytes en Pentium).

4096 bytes encada marco

DSO 18 Gestión de Memoria

Espacio de direcciones

Espacio de direccionesdel proceso A

Esp. Dir.del proceso B

Cada proceso tiene su propio Espaciode direcciones. Es una 'ilusión' creadapor el SO. Algunos bytes están enRAM, otros en disco y otros no existen.Cada byte del Espacio de direccioneses direccionado por una direcciónlógica de 32-bit. Por tanto cadaproceso puede acceder a 2^32 = 4Gbytes.

El espacio de direcciones de A y B estánseparados, por ejemplo, este byte no es elmismo aunque se referencien con lamisma dirección.

00056

DSO 19 Gestión de Memoria

Páginas

El Espacio de direcciones deun proceso se divide en trozosiguales llamados páginas

A

A

A

00000

00001

00002B

B

00000

00001

C

C

C

C00000

00001

00002

00003

Espacio de direccionesde A

Por ejemplo,el byte00002,000 es el primerbyte en la pagina 00002.

Numero de pagina en HEX

Espacio de direcciones de C

Espacio de direcciones de B

DSO 20 Gestión de Memoria

Paginas y marcos

00000

00001

00002

00003

00004

00005

00006

00007

00008

00009

A

A

A

C

B

C

B

C

A

A

A

C

C

C

C

B

B

Las paginas en elespacio de direccionesde un proceso, semapean a marcos enmemoria física (RAM).

Fijaros que ahora laspaginas se puedenmapear a marcos nocontiguos.

RAM

Espacio dir de A

?Espacio dir de C

Espacio dir de B

DSO 21 Gestión de Memoria

Traslación de Direcciones

Proceso ve dir. logicas La CPU debe de trasladarla

a una dir. Físicautilizando la tabla depáginas.

DSO 22 Gestión de Memoria

Tabla de Páginas

00000

00001

00002

00003

00004

00005

00006

00007

00008

00009

A

A

A

C

B

C

B

C

C

A

A

A

00000

00001

00002

00000

00001

00002

00002

00000

00001

Tabla de páginas de A

El SO mantiene una estructura llamada tabla de pagina para almacenar larelacion entre pagina-marco.

00000

00001

00003

00005

00006

?

Tabla de páginas de B00000

00001

00002

00004

00007

00008

Tabla de páginas de C

RAMEspacio dir de A

DSO 23 Gestión de Memoria

Traslación de direcciones, 1

C

C

C

C

Espacio dir.de C

00000

00001

00002

00003

00000100

00000101

procedure greet;begin writeln(“Hello!”);end;

00003200

Cada proceso ve todos los datos quenecesita en su espacio de direcciones

DSO 24 Gestión de Memoria

Traslación de direcciones, 2

00000

00001

00002

00003

00004

00005

00006

00007

00008

00009

A

A

A

C

B

C

B

C

C

C

C

C

RAM

Espacio dir de C00003 00009

00000

00001

00002

00004

00007

00008

Tabla de paginas de C 00000

00001

00002

00003 C

Pero estas paginas, están en ram o endisco. Este mapeo entre direcciones, elso lo hace mediante el uso de Tablasde Páginas para cada proceso

DSO 25 Gestión de Memoria

Traslación de direcciones, 3

Esp. Dir C

00000

00001

00002

00003

00000 100

Dirección Lógica

MOV [00000,100], AX

Registro de instrucciones

CPU

Supongamos que C quiere escribir enuna variable en la dirección00000,100 (dentro del espacio dedirecciones de C)

DSO 26 Gestión de Memoria

Traslación de direcciones, 4

00004

00005

00006

00007

00008

00009

RAMEspacio dir de

C

00000

00001

00002

00003

00000 100

Dir. Logica

00004 100

Dir fisica

MOV [00000100], AX

CPU

Cuando la CPU ejecuta unainstrucción, tiene que buscar el datoen la RAM, mediante la MMU.

00004 100

MMU

Registro de instrucciones

DSO 27 Gestión de Memoria

Traslación de direcciones, 5

00000100

00003 00009

00000

00001

00002

00004

00007

00008

Tabla de paginas

00000 100

Numero pagina

offset

00004 100

Numero marco

offset

dirección físicadirección lógica

CPU usa la tabla de paginasde C para trasladar ladirección lógica en unadirección física

00004100

Marco 00004

pagina 00000

DSO 28 Gestión de Memoria

Traslación de direcciones, 6

00000 100

20 bit para el #pagina

12 bit desplazamiento

00004 100

20 bit para el #marco

12 bit desplazamiento

Dirección lógica: dirección con laque trabaja el proceso. El procesono sabe donde se ubica esta dir enRAM.

Dirección física: dirección enRAM.

00003 00009

00000

00001

00002

00004

00007

00008

Tabla de paginas de C

DSO 29 Gestión de Memoria

Paginación – Ejemplo (1/4)

0123456789

1011121314

Marco Memoria

A.00A.11A.22A.33

456789

1011121314

MemoriaMarco

A.00A.11A.22A.33B.04B.15B.26

789

1011121314

MemoriaMarco

DSO 30 Gestión de Memoria

Paginación – Ejemplo (2/4)

C.07C.18C.29C.310

11121314

Marco Memoria

A.00A.11A.22A.33B.04B.15B.26

A.00A.11A.22A.33

456

11121314

MemoriaMarco

C.07C.18C.29C.310

A.00A.11A.22A.33D.04D.15D.26

D.311D.412

1314

MemoriaMarco

C.07C.18C.29C.310

DSO 31 Gestión de Memoria

Paginación – Ejemplo (3/4)

• Mapa de tablas de páginas:

Mapa de tablas

A

B

C

D

A0123

B---

C78910

D4561112

DSO 32 Gestión de Memoria

Paginación – Ejemplo (4/4)

Mapa de tablas

P1

P2

P3

P4

P1

0123

A.00A.11A.22A.33

D.08D.19D.210D.311D.412

1314

Espacio lógicoPágina

C.04C.15C.26C.37

A.00A.11A.22A.33D.04D.15D.26

D.311D.412

1314

MemoriaMarco

C.07C.18C.29C.310

P44561112

DSO 33 Gestión de Memoria

Práctica de paginación

Nº de Pág. Nº de Marcode Pág.

R M P

0 4 1 0 1

1 7 1 1 1

2 --- 0 0 0

3 2 0 0 1

4 --- 0 0 0

5 0 0 1 1

Supóngase que la tabla de páginas de un proceso que se está ejecutando en elprocesador es:

R: es el bit de referencia. R=1 (la página ha sido referenciada) M: es el bit de modificación. M=1(la página ha sido modificada) P: es el bit de Presencia. P=1 (la página en cuestión está enmemoria principal, tiene un marco asociado)El tamaño de las páginas es de 1 kb. El marco 0 está cargado el la dirección física cero y el restosucesivamente Se pide: ¿A qué direcciones físicas corresponden las siguientes direccionesvirtuales?a). (1, 125) b). (2, 324) c). (5, 322) d). (7, 321) e). (3, 1026)El formato en el que se da la dirección virtual corresponde a (nº de página, desplazamiento)

DSO 34 Gestión de Memoria

Paginación vs. Partición fija

• La paginación es parecida al esquema departición de tamaño fijo:

• Diferencias. Con la paginación:– Las particiones son más pequeñas– Un programa puede ocupar más de una

partición– Las particiones no tienen por qué ser

contiguas– La protección se efectúa por páginas

completas

DSO 35 Gestión de Memoria

Paginación – Tamaño idóneo páginas -

• Cuanto más grandes sean las páginas:– más acentuados los inconvenientes anteriores– con más facilidad se agotarán los bloques no

ocupados y aumentará la necesidad de transferirpáginas entre memorias principal y secundaria

– tendremos más volumen de información atransferir.

• Cuanto más pequeñas sean las páginas:– más grandes serán las tablas: más costoso

• Si 2n se aprovechan de forma óptima.• Tamaños habituales: 128 bytes .. 4 K.

DSO 36 Gestión de Memoria

Paginación - Inconvenientes

La restricción de que cada página tenga untamaño preestablecido impide que la divisiónen páginas concuerde con los elementoslógicos de los programas (módulo, clase,librería)

Aunque no existe fragmentación externa (nohay huecos vacíos entre procesos), nosqueda algo de fragmentación interna:la última página del proceso no se completaen su totalidad.

SEGMENTACION (apuntes)

Arquitectura de Computadores. Gestión de Memoria

–Memoria Virtual –Introducción–Uso de la paginación–Tratamiento del fallo de pagina

DSO 38 Gestión de Memoria

Dos características de la paginación

• Las referencias a RAM se trasladan dinamicamente– El OS aloja cada pagina de un proceso en RAM, sin influir

en su procesamiento

• Cada pagina se mapea a un marco– Independientemente del lugar en que se encuentre, (ram,

disco,...

DSO 39 Gestión de Memoria

Traslación dinámica

00000

00001

00002

000260002700028

Tabla paginas de C

Supongamos que “a=99” secompila en ensamblador “mov[00000100], 99”. En elmomento en que la CPUejecuta la instruccion, la dir.logica 0x00000100 se trasladaa la dir. Fisica 0x00026100usando la tabla de paginas.

00024

00025

00026

00027

00028

00029

RAM

Espacio direcciones de C

00000

00001

00002

00000 100

Dirección lógica

Dirección física

00026 100 00022

00023

a a

DSO 40 Gestión de Memoria

Traslación dinámica

00000

00001

00002

000220002300024

Tabla paginas de C

La imagen de memoria de unproceso se puede mover delocalizacion en RAM debido aun swapping de disco. Cuandola CPU ejecuta otra vez lamisma instruccion “mov[00000100], 99” (a=99),ladireccion logica 00000100 setrasladará a una nuevadireccion en RAMautomaticamente 00022100.

00024

00025

00026

00027

00028

00029

RAM

Espacio direcciones de C

00000

00001

00002

00000 100

Dirección lógica

Dirección física

00022 100 00022

00023

a

a

DSO 41 Gestión de Memoria

Cada pagina se mapea independientemente

00000

00001

00002

000230002800026

Tabla paginas de C

00024

00025

00026

00027

00028

00029

RAM

Espacio direcciones de C

00000

00001

00002

00000 100

Dirección lógica

Dirección física

00023 100 00022

00023a

Las tres paginas 00000, 00001y 00002 (los 1ºs 12k en elespacio de direcciones)aparecen como contiguos. Perorealmente están mapeadas enmarcos discontinuos.

b

b

a

DSO 42 Gestión de Memoria

Cada pagina se mapea independientemente

00000

00001

00002

00023swap00026

Tabla paginas de C

00024

00025

00026

00027

00028

00029

RAM

Espacio direcciones de C

00000

00001

00002

00000 100

Dirección lógica

Dirección física

00023 100 00022

00023a

Y el OS puede hacer swap deuna parte del espacio dedirecciones al disco duro.Algunas paginas están en discoduro y otras en RAM.

b

a

DSO 43 Gestión de Memoria

Memoria Virtual

• Con las técnicas anteriores:– Restricción:

• El proceso debe estar en memoria por completo– Implicaciones:

• No podremos ejecutar procesos más grandes que la M.P.• Excesivo Hiperpaginación si tenemos muchos procesos

Solución?

Overlays (obsoleto, en bibliografía) Memoria Virtual (a continuación)

DSO 44 Gestión de Memoria

MV ( Problemática del Intercambio )

Solución ! → Darle al usuario la sensación de tener una M.P. enorme

• El Pentium 4 (32 bits de direcciones) ! 4GB

• Un PC medio dispone tan sólo de ! 256MB

16 vecesmenos

M.REALEspacio

de dir.

del P4

Espacio de Direcciones Fisicas del PC

Espacio

de dir.

del P4

• Teóricamente podemos escribir programaspensando en el Pentium 4 y 4GB

¿ Cómo funciona todo esto ?

Arquitectura subyacente

M.V.

• Tendremos una Memoria Virtual de 4GB y misprogramas se ejecutan aunque tenga menosMemoria Principal (256MB) siempre quequepan en la memoria virtual.

DSO 45 Gestión de Memoria

MV ( Arquitectura Subyacente )

CPU

dvBus Datos

M.V.

La Memoria Virtual residefísicamente en memoria secundaria

M.P.

¡ No caben !

• Principio de localidad:

Meto en M.P. los trozos que hagan falta paraejecutar P1 y P2

DSO 46 Gestión de Memoria

MV ( Arquitectura Subyacente )

CPU

dvBus Datos

M.V.

M.P.

• La M.V. se divide en páginas (1000B?)

0

1

2

3

5

6

7

8

9

• La M.P. se divide en marcos

0

2

8

6000MMU

fallo

9

S.O. ?9500

7500

6 df

Traducir dv->df

3000

¿Cachés?

DSO 47 Gestión de Memoria

MV ( Arquitectura Subyacente )

Resumiendo:

• M.V. en disco y gestionado como un sistema de particionesvariables (los trozos “granularidad” de M.V. son páginas)

• Las páginas de M.V. necesarias para que se ejecute un Piestán en la M.P. en uno cualquiera de sus marcos

¡ Principio de localidad espacial y temporal !

• Función de traducción (dv -> df) implementada en Hw

¡ MMU interna vs externa !

• Las páginas se intercambian MV -> MP (Falta de Página)gracias a la intervención del S.O.

¿ Cómo hacer la traducción dv -> df ?

DSO 48 Gestión de Memoria

Ventajas de la Memoria Virtual

• Se pueden mantener muchos procesos en memoriaprincipal

• Solo se cargan algunas zonas del mapa delproceso– Mejor utilización de la CPU

• Es posible mantener el mapa de memoria de unproceso, mayor que la memoria física disponible.

Se simula mas RAM de la que se dispone físicamente

DSO 49 Gestión de Memoria

Paginación con M.V.

• Traducción espacio lógico vs. físico:– Igual que con paginación simple:

tabla de páginas por cada proceso

– La tabla se almacena en memoria principal

– El comienzo de cada tabla: en los registros (hay otras maneras)

Memoria

CPU

Sistema OperativoP1

P2

1

2

4

3

5

6

P11

2

4P23

56

Registros

DSO 50 Gestión de Memoria

Paginación con M.V.

• Traducción espacio lógico vs. físico:– Entradas de la tabla de segmentos:

• Número de marco de página

• Bit de Presencia(en ram): P

• Bit de Modificación: M

• Bit de referencia

• Otros bits de control: compartición y protección

Paginaciónsimple

P M Marco de página Otros bitsde control

P1123

Tabla depáginas

PaginaciónM.V.

R

DSO 51 Gestión de Memoria

Paginación con M.V.

Pág D

Programa: P1

P1123

Tabla depáginas

Memoria

Dirección lógica

Dirección física

+

Registro P1

Puntero a tablade páginas P1

Desplazamiento

Marco depágina

Nº Página = 2

Marco 2D

Marco

Mecanismo de Paginación

Marco D

DSO 52 Gestión de Memoria

MV ( Traducción de direcciones )

M.V.

M.P.

0

1

2

3

5

6

7

8

9

0

2

8

9

6?

¿ Qué páginasestán cargadasy dónde ?

¿ Qué páginasestán cargadasy dónde ?

DSO 53 Gestión de Memoria

MV ( Traducción de direcciones “decimal” )

¿ # páginas ?¿ # marcos ?

4096

256

M.V. de 16MBM.P. de 1MB

Páginas de 4KB

M.P.0

40954096

8191

0

1

2 8192

12287

255

M.V.0

40954096

8191

0

1

2 8192

12287

4095

MMU

Página 2en Marco 1 (4096)

81924096

12287819111285

11285

4096

2

3093 +7189

7189

40961

DSO 54 Gestión de Memoria

MV ( Traducción de direcciones “binario” )

¿ # bits dv ?¿ # bits df ?

24 20

M.V. de 16MBM.P. de 1MB

Páginas de 4KB

0000 0000 0000 0000 0000 0000

0000 0000 0000 1111 1111 1111

0000 0000 0001 0000 0000 0000

0000 0000 0001 1111 1111 11110000 0000 0010 0000 0000 0000

0000 0000 0010 1111 1111 1111

M.V.0

4095

4096

8191

8192

12287

12 bits

dv Página Offset12 12

M.P.0

4095

4096

8191

8192

12287

0000 0000 0000 0000 0000

0000 0000 1111 1111 1111

0000 0001 0000 0000 0000

0000 0001 1111 1111 1111

0000 0010 0000 0000 0000

0000 0010 1111 1111 1111

dr Marco Offset8 12

0000 0000 0010 0000 0000 0000

0000 0001 0000 0000 0000

DSO 55 Gestión de Memoria

MV ( Traducción de direcciones “hexadecimal” )

M.V.

0

1

2

3

5

6

7

8

9

000 000000 FFF

HHH HHH

PAG OFF

008 000008 FFF

FFF 000FFF FFF

M.P.

0

2

8

9

6

00 00000 FFF

HH HHH

MAR OFF

02 00002 FFF

FF 000FF FFF

0123456789A

FFF

Tabla depáginas

02 51A

P 02

Presente

Marco

008 51A

DSO 56 Gestión de Memoria

00000

00001

00002

00003

00004

00005

00006

00007

00008

00009

RAM

Espacio direcciones de C

En este ejemplo, las tres primeras paginasdel proceso C se mapean a marcosseparados. Las variables, x,y,z, se guardanen tres páginas.

Como funciona la MV, 1

00000

00001

00002

00003

xyz

yz

x

00000

00001

00002

000040000700008

Tabla paginas de C

DSO 57 Gestión de Memoria

00000

00001

00002

00003

00004

00005

00006

00007

00008

00009

RAM

Espacio direcciones de C

Después de un tiempo, el SO seencuentra con que no hay suficientememoria, y decide descargar al disco elmarco 00008. (porque el 8? veralgoritmos de reemplazo).

Como funciona la MV, 2

00000

00001

00002

00003

xyz

y

x

00000

00001

00002

0000400007swap

Tabla paginas de C

z

DSO 58 Gestión de Memoria

00000

00001

00002

00003

00004

00005

00006

00007

00008

00009

RAM

Espacio direcciones de C

El swapping no interfiere la ejecución delproceso hasta que se referencia cualquierbyte de la pagina 00002, por ejemplo cuandoel proceso lea el valor de la variable z, y laCPU note que el dato no está presente enmemoria principal y genere una interrupciónllamada fallo de pagina o falta de pagina.Entonces el control se transfiere al SO.

Como funciona la MV, 3

00000

00001

00002

00003

xyz

y

x

00000

00001

00002

0000400007swap

Tabla paginas de C

z

x := 1;y := x*2;x := z + 1;

Falta de pagina

DSO 59 Gestión de Memoria

00000

00001

00002

00003

00004

00005

00006

00007

00008

00009

RAM

Espacio direcciones de C

Cuando la CPU genera la interrupción delfallo de pagina, el SO bloquea el proceso(se podrán ejecutar otros procesos?):Busca la pagina en la zona de swappingdel discoBusca un marco no usado de la RAMGenera una petición de lectura del DISCO

Como funciona la MV, 5

00000

00001

00002

00003

xyz

y

x

00000

00001

00002

0000400007swap

Tabla paginas de C

z

x := 1;y := x*2;x := z + 1;

Fallo pagina

zz

z

DSO 60 Gestión de Memoria

00000

00001

00002

00003

00004

00005

00006

00007

00008

00009

RAM

Espacio direcciones de C

… cuando la carga de la pagina se hacompletado: Se produce una interrupción de E/SEl SO actualiza la tabla de paginas delprocesoSO despierta al procesoReinicia la instrucción

Como funciona la MV, 6

00000

00001

00002

00003

xyz

y

x

00000

00001

00002

000040000700009

Tabla paginas de C

z

x := 1;y := x*2;x := z + 1;

z

DSO 61 Gestión de Memoria

Soporte HW a la memoria virtual

• Estructura de la TP– Como detecta la CPU el fallo de

pagina (bits P,M)

• Como accede la CPU a la tabla depaginas de un proceso enejecución? A través del puntero ala TP (bibliografía)

• Uso de cache (en bibliografía)

TLB00000

…...

00001

…...

0123A000

Ptr a la TP

CPU

00000

00001

00002

00002

00000

???

1

0

1

1

0

MP

Tabla de Páginas

DSO 62 Gestión de Memoria

• Toda la T.P. en M.P.

M.P.

Tabla dePáginas

MMU

CPU

MV ( Ubicación de la Tabla de Páginas )

datodv

Se lee eldescriptor

dr

Se lee el dato(Caché | M.P.)

¡ Intolerable por lento !

• Toda la T.P. en la M.M.U.

M.P.

T.P.

CPU

MMU

datodv

dr

• PDP11 8 páginas de 8K

• ¿Viable en el 80486? 1M páginas 4K

¡ Intolerable por caro !

DSO 63 Gestión de Memoria

Toda la T.P. en M.P. + una caché de la T.P. en la MMU

MV ( Tabla de Páginas “M.P. + caché” )

M.P.

Tabla dePáginas

dato

008 51Adv

MMU

009 FF006 63000 40

008 52002 A3

caché

Página Marco

Cachés de8..2046entradas

1Mentradas

52 51Adr

RBTP

¿ Fallo deCaché ?

¡ Tasas deacierto del

98% !

DSO 64 Gestión de Memoria

MV ( Tabla de Páginas “Fallo caché” )

M.P. dvMMU

030 0715F 42A32 54

004 C2

TLB

10000

573 15FFE 01B00 AB

dr

10 00010 00410 00810 00C10 010

13 FF013 FF413 FF813 FFC

003 A28

10000+(003*4)

01234

4095

T.P.

84 A28

¿ Página nopresente ?

P 84

003 84

F.P.

¿ Cachéllena ?

!Algunos P por

Software!

DSO 65 Gestión de Memoria

Bit Modificación :

Ha sido modificada lapagina desde suultima carga en RAM?

Entrada a la TP, ETP

10

110

0000400007

???La Tabla de Paginas esuna matriz de entradas ala TP (ETP). Cada ETPalmacena información deuna pagina del proceso.

00000

00001

00002

0000400007swap

ETP de la pagina 00000

11 00004

MarcoMarco

Otros Bit control: Otros Bit control:

Bit presencia: está en RAM

Bit presencia: está en RAM

DSO 66 Gestión de Memoria

Como se lee una ETP?

00001 AAA

AAA0123A000

Ptr a la TP

Dir Logical

Dir fisica

Tabla PaginasMP

10

110

0000200000

???

Marco 0

Marco 1

Marco 2

Marco0123A

RAMCPU

Leer el dato en la dir fisica00000AAA

Leer entrada a la TPdir: 0123A000+00001=0123A001

01 00000

00000

x

DSO 67 Gestión de Memoria

01010101

01010101

00000

00001

00002

00003

00004

00005

00006

00007

00008

AAA

C (M=1)

B (M=1)C

RAM

C

Espacio dir de C

00003

CC

C00000

00001

00002

A (M=1)

B

B

Fallo de pagina

Carga de pagina: cuando el SOcarga la pagina 2, debería cargarotras?

Algoritmo de Reemplazo: Que marco seguarda en disco?

Política de actualización: la pagina 0en RAM es diferente de la imagen enel fichero swap. Cuando actualizar?

Conjunto de trabajo: El proceso C siempre tiene 2 marcos?

Decisiones en Memoria Virtual

DSO 68 Gestión de Memoria

Política de Carga

Determina cuando una página debe ser cargadaen memoria Paginacion por demanda – solo trae paginas a memoria

principal cuando se hace referencia a un dato dentro deesa pagina Muchas faltas de pagina cuando empieza el proceso

Prepaginacion – traer mas páginas de las que senecesitan Eficiente cuando las paginas residen de forma contigua en el

disco

DSO 69 Gestión de Memoria

Carga – Paginacion por demanda

00000

00001

00002

00003

00004

00005

00006

00007

00008

00009

RAM

Espacio dir de C

00003

00004

00005

00006

lmn

j

n

00000

00001

00002

ijk

lk

m

i

Cuando el proceso accede a lavariable k en la pagina 00002,ocurre un fallo de pagina. El SOnecesita traer la pagina 00002.En paginación por demanda, solose carga la 00002.

DSO 70 Gestión de Memoria

Carga – Prepaginacion

00000

00001

00002

00003

00004

00005

00006

00007

00008

00009

RAM

Espacio dir de C

00003

00004

00005

00006

lmn

j

n

00000

00001

00002

ijk

lk

m

i

Si el SO usa prepaginacion, secargan paginas contiguas deldisco. Esto ayuda a reducir lasfaltas de pagina en un futuro.

k

ln

DSO 71 Gestión de Memoria

CT(t2, 10) =

t2

{3,4}

Carga por Demanda

• Se van cargando las páginasque el proceso vayanecesitando

Muchas F.P. evitables

Prealimentación

• Se arranca la carga delconjunto de trabajo delproceso.

“Páginas usadas másrecientemente”

2,6,1,5,7,7,7,7,5,1,6,2,3,4,1,2,3,4,4,4,4,3,4,3,4,4,4,1,3,2,3,4,4,1,3

CT(t1, 10) =

t1

{1,2,5,6,7}

¿Que sucede cuando un proceso pasa aejecución?

DSO 72 Gestión de Memoria

Pasos en el manejo del fallo de pagina

Ocurre un fallo de pagina cuando intentamosacceder a una pagina que no está en RAM

La CPU genera una interrupción y el SO tomael control: Bloquea al proceso Busca la pagina en disco Busca un marco que ya no se use Genera una lectura E/S Reinicia la instrucción

DSO 73 Gestión de Memoria

MV ( Tratamiento de Falta de Página )

El tratamiento de F.P. recae en el S.O.

M.P.

0

2

8

9

6

(I) Hay marco libreM.V.

0

1

2

3

5

6

7

8

9

?

Política de ubicaciónsimple: uno cualquiera

(II) No hay marco libreM.P.

0

2

8

9

6

3

5

1?

?

Política de sustituciónno tan simple

DSO 74 Gestión de Memoria

MV ( Tratamiento de Falta de Página “1” )

M.P.

0

2

8

6

M.V.

0

1

2

3

5

6

7

8

9

0

1

2

3

4

5

6

7

S.O.

P Marco

mov A,B

10

1 Referencia a página nocargada en M.P.

2

2 Excepción y se bloquea alproceso

3 Buscar marco libre, tocar TP y arrancar E/S

4

4 Transferencia DMAdisco MP. CPU otro Pi

5 Fin E/S. Página 3 cargadaen marco 1. P Preparado

6 Actualizar TP

7

7 Rearrancar “Mov A,B”CuandoPpreparado UCP

mov A,B

3¿marco1,4,6,7?

0

6

1 1

5

mov A,B

DSO 75 Gestión de Memoria

MV ( Tratamiento de Falta de Página “1” )

Resumiendo:

1 Referencia a página no cargada en M.P.

2 Excepción y se bloquea al proceso

3 Buscar marco libre, tocar TP y arrancar E/S

4 Transferencia DMA disco! MP. CPU para otro Pi

5 Fin E/S. Página 3 cargada en marco 1. P ! Preparado

6 Actualizar TP

7 Reiniciar “Mov A,B” cuando preparado ! UCP

DSO 76 Gestión de Memoria

S.O.

M.V.

0

1

2

3

5

6

7

8

9mov C,D

M.P.

0

2

8

6

0

1

2

3

4

5

6

7

3

5

7

1

M MarcoP

MV ( Tratamiento de Falta de Página “2” )

3 Seleccionar víctima,cambiar TP y arrancar E/S

2

5

100

0000

3 ¿Víctima 2 ?

1 1 5

0FA32

40FA3

4 Salvando (DMA) páginaen disco

5 Fin E/S. Página 2 salvada.Marco 5 libre.

7mov C,D 9mov C,D

689

0

1 0 510

DSO 77 Gestión de Memoria

MV ( Tratamiento de Falta de Página “2” )

Resumiendo:

1 Referencia a página no cargada en M.P.

2 Excepción y se bloquea al proceso

3 Seleccionar víctima, cambiar TP y arrancar E/S

4 Salvando (DMA) página en disco

5 Fin E/S. Página 2 salvada. Marco 5 libre.

6 Arrancar E/S para cargar Página 9 en Marco 5.

7 Transferencia DMA disco MP. CPU para otro Pi

8 Fin E/S. Página 9 cargada en Marco 5. P Preparado

9 Actualizar TP

10 Reiniciar “Mov C,D” cuando preparado UCP

DSO 78 Gestión de Memoria

Algoritmos de reemplazo

• Seleccionar un marco de pagina de memoriaprincipal para ser reemplazado por una nuevapágina del disco – Los marcos bloqueados??? no se pueden reemplazar

DSO 79 Gestión de Memoria

Reemplazo

00000

00001

00002

00003

00004

00005

00006

00007

00008

00009

AAB

C

AA

B

RAM

Espacio dir de C

00000

00001

00002

C

B

A

El Proceso C causa una falta depagina cuando referencia a datosen la pag. 00002. Ademas, nohay marcos libres en RAM. El SOdebe de seleccionar un marco areemplazar. Se puede elegir de Los marcos asignados alproceso C: 00003 y 00004, o Todos los marcos

Los algoritmos de reemplazo, solo eligen unmarco a reemplazar de entre el Conjunto detrabajo.

DSO 80 Gestión de Memoria

Reemplazo

¿Memoriallena?

CPU activa manejador E/S yCargar página desde disco

Reemplazode página

S.O. bloquea proceso (espera) yordena a CPU carga página

¿R=1?

Actualizar tablas (R=1) ypasar proceso a preparado

Memoria

Si Acceder

Si

No

Referenciarpágina:código o dato

No Fallo depágina

DSO 81 Gestión de Memoria

Algoritmos de reemplazo

• Estudiaremos 4 algoritmos:– Optimo

– FIFO

– Reloj

– LRU

DSO 82 Gestión de Memoria

Algoritmos de reemplazo

• Política (criterios):– Objetivo: minimizar el nº de fallos de página– Aleatorio:

• Criterio: ninguno. Se puede seleccionar la pág. másutilizada muchos fallos pág.

– Optimo:• Criterio: seleccionar la página que va a tardar más

tiempo en referenciarse (¿porque?).• Es la que menor número de fallos de página genera• PROBLEMA: no se puede implementar

¡ No se puede predecir el futuro !

DSO 83 Gestión de Memoria

Algoritmos de reemplazo

• Algoritmo óptimo – Ejemplo:– Sean las referencias a página (5 marcos):

1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6

Resultados: 7 faltas de página (2 reemplazos)

0 1 1 1 1

2 3 3 3 3

4 5 7

1 2 2 2 2 2 2

3 4 6 6 6

Marco 1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6

1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6

DSO 84 Gestión de Memoria

Algoritmos de reemplazo

• Algoritmo FIFO (First In, First, Out):– Criterio: extrae la página que hace más tiempo que

se cargó en memoria

¿Menor probabilidad de ser referenciadas?– Implementación: los numeros de marcos de página

se guardan en una cola. Se reemplaza el primero dela cola.

DSO 85 Gestión de Memoria

Algoritmos de reemplazo

• Algoritmo FIFO – Ejemplo:– Sean las referencias a página (5 marcos): 1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6

– Resultados: 10 faltas de página (5 reemplazos)

0 1 1 6 6 6

2 3 2 2 2

4 5 7

1 2 2 2 1 1

3 4 3 3 3

Marco 1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6

1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6

DSO 86 Gestión de Memoria

Algoritmos de reemplazo

• Algoritmo FIFO – Anomalía Belady:– Sean las referencias a página:

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

– Resultados (4 marcos): 10 faltas de página (6 reemplazos)– Resultados (3 marcos): 9 faltas de página (6 reemplazos)

0 1 1 5 4 1 4 5 5

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

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

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

DSO 87 Gestión de Memoria

Replacement Policy – Clock

• Clock Policy– Needs an additional bit U (Use bit) in PTE

• when a page is first loaded in memory, OS sets U=1

• when the page is referenced, CPU sets U=1

– Works like FIFO• the first frame encountered with U=0 is replaced

• during the search for replacement, OS resets U= 0

Hence, U bit represents whether the page is ‘recently’ used

DSO 88 Gestión de Memoria

Clock Policy, 1

56

0

1

2

3

47

8

n

.

.

.

Pg 9use = 1

Pg 10use = 1

Pg 1use = 0

Pg 45use = 1

Pg 19use = 1

Pg 55use = 0

Pg 13use = 0

Pg 67use = 1

Pg 33use = 1

Pg 22use = 0

next frame pointer

At this moment, therunning process tries toaccess page 77, which isnot present. A page faultoccurs.

1 55 19* 45*… 13

DSO 89 Gestión de Memoria

Clock Policy, 2

56

0

1

2

3

47

8

n

.

.

.

Pg 9use = 1

Pg 10use = 1

Pg 1use = 0

Pg 45use = 1

Pg 19use = 1

Pg 55use = 0

Pg 13use = 0

Pg 67use = 1

Pg 33use = 1

Pg 22use = 0

next frame pointer

1 55 19* 45*… 13

Page 45 has been loadedinto memory the longest. InFIFO, we would replace italthough it has been usedrecently (U=1). However, inclock, we give it a secondchance and put in at the endof the queue again.

DSO 90 Gestión de Memoria

Clock Policy, 3

56

0

1

2

3

47

8

n

.

.

.

Pg 9use = 1

Pg 10use = 1

Pg 1use = 0

Pg 45use = 0

Pg 19use = 1

Pg 55use = 0

Pg 13use = 0

Pg 67use = 1

Pg 33use = 1

Pg 22use = 0

next frame pointer

1 55 19*45 … 13

Similarly, page 19 has U=1and therefore it will not bereplaced yet. The OS goeson to check the next oldestpage.

DSO 91 Gestión de Memoria

Clock Policy, 4

56

0

1

2

3

47

8

n

.

.

.

Pg 9use = 1

Pg 10use = 1

Pg 1use = 0

Pg 45use = 0

Pg 19use = 0

Pg 55use = 0

Pg 13use = 0

Pg 67use = 1

Pg 33use = 1

Pg 22use = 0

next frame pointer

1 5519 45 … 13

Page 55 is the ‘oldest’ pagein RAM, and is not usedrecently. So the OSreplaces this page with page77.

DSO 92 Gestión de Memoria

Clock Policy, 5

56

0

1

2

3

47

8

n

.

.

.

Pg 9use = 1

Pg 10use = 1

Pg 1use = 0

Pg 45use = 0

Pg 19use = 0

Pg 77use = 1

Pg 13use = 0

Pg 67use = 1

Pg 33use = 1

Pg 22use = 0

next frame pointer

177* 19 45 … 13

Page 77 replaces page 55.It is put at the end of thequeue (it is the youngestpage in RAM). In next pagefault, the OS will start thesearching from page 13, theoldest page.

DSO 93 Gestión de Memoria

Clock Policy – another example

1*2*3*4*5*6*

1*2*3*

1* 7*23456

7*8*3459*

7*23*4*5*6

7*8*3*4*5*6

782*459*

Page reference order: 1 | 2,3,2 | 4,5,6 | 7 | 4,3,5,3 | 8 | 9,8 | 2

The ‘next frame pointer’ sweeps thewhole buffer once. This resets theU bit of all pages to 0. When thepointer hits the first entry of thebuffer again, the page 1 is swappedout.

When the pages 4,3,5,3 arereferenced, their U bit is set to 1.Notice the pointer does NOTmove.

DSO 94 Gestión de Memoria

Categories of frames using U, M

Not accessed recently, modified

Accessed recently, not modified

Not accessed recently, not modified

Accessed recently, modified

U=0, M=1

U=1, M=0

U=0, M=0

U=1, M=1

Mostfavorableto replace

Should beexpensive toreplace

DSO 95 Gestión de Memoria

Clock using U and M bits

1. Scan the frame buffer without changing U bit. The firstframe encountered with U=0 M=0 is selected forreplacement.

2. If step 1 fails, scan again, changing U=0 on each framebypassed. Look for frame with U=0 and M=1 to replace.

3. If step 2 fails, the pointer should have returned to itsoriginal position and all the frames in the set will have U=0. Repeat step 1 and, if necessary, step 2. This time, aframe will be found for the replacement.

DSO 96 Gestión de Memoria

Algoritmos de reemplazo de página

• Algoritmo FIFO 2ª op. (First In, First, Out):– Criterio: extrae la página que hace más tiempo

que se cargó en memoria, pero dando una 2ªoportunidad, por si alguna es muy utilizada.

– Implementación: los marcos de página se tratancomo un buffer circular; sólo hace falta mover unpuntero. Tenemos un bit referencia R.

111

1

00

1 10

1

01

001

1

00

1 10

1

01

Víctima

DSO 97 Gestión de Memoria

Algoritmos de reemplazo

• Algoritmo FIFO 2ª oportunidad – Ejemplo:– Sean las referencias a página (5 marcos): 1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6

– Resultados: 9 faltas de página (4 reemplazos)

0 1 1 6 6 6

2 3 1 1

4 5 7

1 2 2 2 2 2 2

3 4 3 3 3

Marco 1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6

1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6

00

0 0

0

0

12

3

4

DSO 98 Gestión de Memoria

Algoritmos de reemplazo

• Algoritmo LRU (Least Recently Used):– Criterio: extrae página que hace más tiempo que

no se ha referenciado (Princip. de cercanía)

– Los resultados están cerca del óptimo

– Implementaciones:• Etiquetar cada página con fecha/hora última ref.

• Lista dinámica de marcos de página ordenados

– PROBLEMA: elevada sobrecarga

– Vamos a ver unas aproximaciones: LFU,NUR

DSO 99 Gestión de Memoria

Algoritmos de reemplazo

• Algoritmo LRU – Ejemplo:– Sean las referencias a página (5 marcos): 1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6

– Resultados: 8 faltas de página (3 reemplazos)

0 1 1 1 1

2 3 6 6 6

4 5 7

1 2 2 2 2 2 2

3 4 3 3 3

Marco 1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6

1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6

DSO 100 Gestión de Memoria

MV ( Algoritmos de sustitución de páginas )

{7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1}Serie de

Referencia

ALGORITMOS

Optimo Más tiempo tarde en volver a ser referenciada

FIFO Más tiempo lleva en Memoria Principal

LRU Menos recientemente usada

RELOJ FIFO + LRU (o de 2ª Oportunidad)

DSO 101 Gestión de Memoria

MV ( Algoritmos de sustitución de páginas )

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

Optimo

FIFO

LRU

RELOJ

FP

701

2

34 0

1

79

701

23

4 01

715

023 2

01

701

2

3

4 0 1

712

23 0

701

2

3

4

01 7 142

32

0

1

DSO 102 Gestión de Memoria

Algoritmos de reemplazo. Resumen

23

231

235

235

435

435

435

23

231

251

251

254

254

354

235

352

2 1 25 4 5 3 2

23

231

521

531

524

524

324

324

Optimo

LRU

FIFO

Pagina reemplazadaOrden de referencia

235

352

235

352

5 2

354

352

DSO 103 Gestión de Memoria

Práctica de política de reemplazo

• Dada la siguiente cadena de referencia:0 1 2 3 0 1 4 0 1 2 3 4

• ¿Cuántos fallos de página tendrán lugar si sedispone de 4 marcos de página inicialmentevacíos para el algoritmo FIFO?

• ¿Y si el algoritmo de sustitución fuese el LRU?

DSO 104 Gestión de Memoria

Política de Asignación de marcos de página

¿Cuantos marcos hay que asignar a unproceso?

• Asignación fija: Nº marcos asignados fijo– El numero de marcos para reemplazar no varia.

La arquitectura de la maquina determina elnumero mínimo de marcos.

• Asignación variable: Nº marcos asignadosvariable.– El #marcos varia según necesidades del proceso

en diferentes momentos:

DSO 105 Gestión de Memoria

Política de Asignación de marcos de página

Alcance del reemplazo:

• Reemplazo local: para reemplazar página seelige una del proceso

• Reemplazo global: para reemplazar páginase elige cualquiera de la memoria principal

DSO 106 Gestión de Memoria

Eficiencia de la Memoria Virtual

• Si el proceso tiene pocos marcos, seproducen muchas fallas de paginas y elsistema se ralentiza

• Esto se llama Hiperpaginación o thrashing

DSO 107 Gestión de Memoria

Hiperpaginación (Thrashing)

• En esta circunstancias:– Porcentaje de faltas de página elevado.

% faltas = (nº faltas / nº total referencias)

– Se desperdicia tiempo en carga/descarga

– El proceso pasa mas tiempo reemplazando paginasque procesando

» “Mi ratón no se mueve, el teclado no responde pero mi HDestá rascando” (usuario anónimo) ¿de w98?

DSO 108 Gestión de Memoria

Hiperpaginación (Thrashing)

• Causas:– Demasiados procesos compitiendo Reducción

procesamiento.

– No hay suficientes páginas cargadas del procesoactivo

– Demasiadas páginas cargadas del proceso activo

• Soluciones: establecer tres políticas-> (apuntes)• Mantener el Cjto de paginas activas en memoria• Establecer limites a las frecuencias de fallos de

pagina• Alcance del reemplazo. Si es global no se controla

la hiperpaginacion.

DSO 109 Gestión de Memoria

Administración del Conjunto de Trabajo

• Asignación fija, alcance local

• Asignación Variable,alcance global

• Asignación Variable, alcance local

DSO 110 Gestión de Memoria

Asignación Fija, alcance global

• Tamaño del Conjunto de Trabajo esfijo – A cada proceso se le asigna unnumero de marcos fijo en el cual seejecuta

• En una falta de página, el SOreemplaza un marco por otro delConjunto de Trabajo del proceso

AAB

C2

AC3

B

RAM

C1

B

AC7

??

?

DSO 111 Gestión de Memoria

Asignación Variable ,alcance Global

• Tamaño del Conjunto de Trabajo puedecambiar en tiempo de ejecución

• En una falla de pagina, el SO eligecualquiera de los marcos no bloqueados

• Un proceso ‘activo’ consigue muchosmarcos

AAB

C2

AC3

B

RAM

C1

B

A

C7

??

?

??

??

??

?

DSO 112 Gestión de Memoria

Asignacion Variable, Alcance Local

• En una falta de página, el SO reemplaza un marcopor otro del Conjunto de Trabajo del proceso

• Ocasionalmente, el SO ajusta el tamaño delConjunto de Trabajo del proceso de acuerdo consu comportamiento– Frecuencia de fallo de páginas (apuntes)

– Variable-interval sampled working set (VSWS)(apuntes)

DSO 113 Gestión de Memoria

Hiperpaginación (Thrashing)

• Relación entre las 2 políticas:

La más sencilla y utilizada Los procesos incrementangradualmente su tamaño Algoritmo: la dificultad esseleccionar el proceso

Más compleja pero la demejor rendimiento Estrategia:

1. Al cargar un proceso seasigna un nº marcos

2. Si fallo de página, seselecciona alguna delconjunto residente proceso

3. Periódicamente se ampliao reduce la asignación

Asignaciónvariable

No es posible Algoritmo:FIFO,LRU,LFU,...

Asignaciónfija

Reemplazo globalReemplazo local

DSO 114 Gestión de Memoria

Requerimientos

• Para terminar, vamos a comprobar si esteesquema de gestion de memoria, satisfacelos requerimientos de memoria:– Reubicacion

– Proteccion

– Comparticion

DSO 115 Gestión de Memoria

Reubicación

C

00000

00001

00002

00003

00004

00005

00006

00007

00008

00009

AAA

CB

CB

C

RAM

CCC

C00000

00001

00002

00003

Espacio dir de CTP de C

00000

00001

00002

1

1

1

...

...

...

00004

00007

00008

P

00003 1 ... 00009

La página 3 del proceso C esta enRAM. Las referencias a la pagina 3 nosllevan al marco 9

DSO 116 Gestión de Memoria

Reubicación

00000

00001

00002

00003

00004

00005

00006

00007

00008

00009

AAA

CB

CB

C

RAM

CCC

C00000

00001

00002

00003

Espacio dir de CTP de C

00000

00001

00002

1

1

1

...

...

...

00004

00007

00008

P

00003 0 ... ??? D

01010101

Después de algún tiempo sereferencia, (falla de pagina) y llevada amemoria.

DSO 117 Gestión de Memoria

Reubicación

00000

00001

00002

00003

00004

00005

00006

00007

00008

00009

AAA

CB

CB

C

RAM

CCC

C00000

00001

00002

00003

Espacio dir de CTP de C

00000

00001

00002

1

1

1

...

...

...

00004

00007

00008

P

00003 1 ... 00003 D

C

La pagina es reubicada sin que elproceso C se perciba

DSO 118 Gestión de Memoria

Protección

00000

00001

00002

00003

00004

00005

00006

00007

00008

00009

AAA

CB

CB

C

AAA

CCC

C

RAMEspacio dir de A

C

El Proceso A no puedeacceder de ninguna maneraal espacio de direccionesde C. Cada ubicación dememoria de A estárestringida a su espacio dedirecciones

DSO 119 Gestión de Memoria

Compartir

Pero si están de acuerdoA y C ??, puedencompartir memoriamapeando sus propiaspaginas a los mismosmarcos.

00000

00001

00002

00003

00004

00005

00006

00007

00008

00009

AAA

CB

CB

C

AAA

CCC

C

RAMEspacio dir de A

C

A

C

A/C