gestión de memoria1 tema 3.gestión de memoria introducciÓn sin intercambio ni memoria virtual...

58
Gestión de Memoria 1 Tema 3. Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones Fijas INTERCAMBIO Introducción Particiones Variables Algoritmos de gestión Libre / Ocupado – Lista encadenada y Mapa de bits MEMORIA VIRTUAL Paginación Algoritmos de sustitución de páginas Cuestiones de diseño

Upload: sarita-candelaria

Post on 27-Jan-2015

4 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 1

Tema 3. Gestión de Memoria

• INTRODUCCIÓN

• SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático)• Monoprogramación• Multiprogramación con Particiones Fijas

• INTERCAMBIO• Introducción• Particiones Variables• Algoritmos de gestión Libre / Ocupado

– Lista encadenada y Mapa de bits

• MEMORIA VIRTUAL• Paginación• Algoritmos de sustitución de páginas• Cuestiones de diseño

Page 2: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 2

IntroducciónCada vez, más memoria, más barata y ocupa menos:

1982 16KB 16.000 pts. PseudoPC1985 1MB 500.000 pts. Victory (Unix)

PC1991 8MB 77.500 pts. 1998 64MB 17.900 pts. 128MB 51.900 pts.2002 256MB 13.800 pts. 512MB 29.700 pts.2005 512MB 9.500 pts. 1GB 29.900 pts.

Sin embargo, ¡ SIEMPRE AMPLIANDO !

512K, 640K, 1M, 4M, 8M, 16M, 32M, 64M, 128M

MSDOS Win95 WinNT Win00

70MB 120MB 275MB

Ley de Parkinson

¿Windows XP?

Page 3: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 3

Introducción (objetivos)Memoria: Recurso escaso y compartido (Multiprogramación)

Poca memoria para los muchos procesos que quieren ejecutarse

• Proteger

• Compartir

• Organización eficiente

• Reubicación de procesos

Memoria

Principal

P1

P2

P3 P6

P5

P4

OBJETIVOSGestión eficiente

Lógica

Secundaria

Principal

Caché

Física

segmentadalineal

?

Page 4: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 4

Introducción (¿Proceso en memoria?)

ProgramaObjeto n

ProgramaObjeto 2

Compilador

ProgramaObjeto 1

Enlazador

FicheroEjecutable

Cargador

Memoria

ProgramaFuente 1

Program principal;var Vector1: array [0..$FFF] of byte := (23,43,…,53); Vector2: array [0..$4FF] of byte;begin ... if Vector1[0] = Vector2[0] then Subrutina; ...end.

$5000 …$5030 cmp $9000,$A000$5036 bnz $503E $503A bsr $5200$503E …$5200 (codigo de subrutina)

…$9000 (valores de vector1)

…$A000 (valores de vector2)

Proceso

Código máquina

¿ ?

Page 5: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 5

Introducción (¿Formato de un fichero ejecutable?)

Código

Var. Inic.

Var. No Inic.

---------------

Tabla Símbolos

Inicio Tamaño

$1000

$5000

$8000

-------

$4000

$1000

$500

-------

$2000

Nº mágico

CP inicial

---------

Tabla secciones

Código máquina

Variablesinicializadas

.....Otras secciones

Tabla símbolos(depurador)

$0000

$1000

$5000

$8000

• Fichero ejecutable UNIX

Var. No Inic.

¡ Algunas secciones no ocupan espacio en el fichero ejecutable y sí en

memoria !

Secciones

Cabecera

Page 6: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 6

Introducción (¿Imagen de un proceso en memoria?)

Nº mágico

CP inicial

---------

Tabla secciones

Código máquina

Variablesinicializadas

.....Otras secciones

Tabla símbolos(depurador)

$0000

$1000

$5000

$8000

• Fichero ejecutable UNIX

Código máquina

Variablesinicializadas

Variables noinicializadas

Memo. Dinámica

Pila

$5000

$0000

$4000

$5500

• Imagen de un proceso

$xxxx

“0”

$0000Memoria

S.O.

P1

P2

P4

?

$yyyyPn

pcsp

...

...

CPU

P1sp

...

...

P4sp

...

...

Pnsp

...

...

Page 7: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 7

M.P.

Introducción (modelo estático vs dinámico)

Piexec

Pi se ejecuta en la misma zona de memoria desde

que se crea hasta que termina

M.P.

Pi

exec

exit

PiPi

Pi

exit

Pi puede ir cambiando en su totalidad de zona

de memoria

Intercambio

M.P.

Pi puede ir cambiando por

trozos de zona de memoria

Memoria Virtual

¡ Reubicar !

Page 8: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 8

• Máquina con S.O. (MSDOS)

IPL +drivers

FFFFF

00000

ROM

RAM

Monitor

“Primeras máquinas”

Monoprogramación• Máquina desnuda con monitor

Cargar y depurar

programas

Programade usuario+ drivers

“Sistemas empotrados”

S.O.

Power

PointExcelWord

Word

S.O. +drivers

RAM? Word

S.O. +drivers

RAM

ROM?

“Prácticas de arquitectura”

RS232

Page 9: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 9

Estático“En arranque”

Multiprogramación ( Particiones Fijas )Se trocea la M.P. libre para procesos de usuario en particiones fijas, de diversos tamaños y reconfigurable sólo en arranque

S.O.

300K

300K200K100K

115K ?320K

S.O.

600K

250K50K

CUESTIONES DE DISEÑO

• ¿Cuántas particiones?

• ¿De qué tamaño?

• Reubicación

• Protección

• ¿Planificación?

• Tabla de particionesTamaño y Libre / Ocupada

• Cola/s de procesos entrantes

Page 10: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 10

Particiones Fijas ( ¿Cuántas particiones? )Aprovechar UCP Índice / Nivel de multiprogramación

% de usode la UCP

Nivel deMultipro-gramación

1 2 3 4 5 6 7 8 9 10

10080604020

50% de su tiempo hacen E/S

¿Caracterización de los procesos?

80% de su tiempo hacen E/S

20% de su tiempo hacen E/S¡ Ojo ! Aprovechar la UCP al 100% no es el

único objetivo

Usuarios interactivos

Page 11: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 11

Particiones Fijas ( ¿De qué tamaño? )Intentar aprovechar la memoria al máximo (ocupada al 100% por Pi)

• GRANDES

S.O.

300K

300K

50K

Fragmentacióninterna

40K200K

P200K no puede ejecutarse pese a haber 510K sin usar

• PEQUEÑAS

S.O.

250K

50K50K40K200K60K

P60K no puede ejecutarse pese a haber 5 particiones libres

Fragmentaciónexterna

Page 12: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 12

Particiones Fijas ( Planificación )• COLAS MÚLTIPLES / SEPARADAS

S.O.

200K

400K

300K

100K

350K80K

Entra un ProcesoCola de la partición

“Mejor Ajuste”

A250

B70

C80

D150

E90

F125

Sale un Proceso P100K

¿Quién entra?

• FIFO B

• Más grande E

• Más corto C110 5 15

Tiempos

Se libera P400K Partición grande libre y 6 procesos bloqueados¿Particiones de igual tamaño? Equilibrar la carga

Page 13: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 13

Particiones Fijas ( Planificación )• COLA ÚNICA

S.O.

200K

400K

300K

100K

Entra un Proceso Partición para él oSe encola

A250 Sale un Proceso P200K

¿Quién entra?B70

C80

D150

F90

E125

4 110 25

5 15 3

• FIFO B

• Más grande D

• Más corto F

Tiempos

• Más complejo y lento

• Mejor aprovechamiento de UCP y memoria

• Puede que injusticia: grandes vs pequeños

Page 14: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 14

Particiones Fijas ( Reubicación )

S.O.

A250

128K

512K

256K

100K

Programa Partición¡No siempre la misma!

IF A >= 0THEN

A := A-1ELSE

A := A+1

¿Direcciones Absolutas?

TST R0JMI

ELSESUB

#1,R0JMP

NEXTELSE ADD

#1,R0NEXT

00000

00050 TST R000052 JMI

0006000058 SUB #1,R00005A JMP

0006200060 ADD #1,R000062

?Problemas

Page 15: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 15

Particiones Fijas ( Reubicación )

S.O.

20000

20050 TST R020052 JMI

0006020058 SUB #1,R02005A JMP

0006220060 ADD #1,R020062

?a) Reubicar al cargar (reubicación

estática)

+20000 Direcciones AbsolutasDirección de carga20060

20062b) Reubicación dinámica

Registro de Reubicación

20000

00060dv

+ 20060dr

c) Código reubicable

JMI 8(PC)

SOLUCIONES

Page 16: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 16

Particiones Fijas ( Protección )

S.O.

20000

20050 TST R020052 JMI

0006020058 SUB #1,R02005A JMP

0006220060 ADD #1,R020062...........5FC00

• Controlar accesos de Pi fuera de su zona

20000

5FC00

00060dv

+ 20060dr

Registro de Reubicación(Registro Base)No

direccionable?

SI

dr>RL

Excepción

Page 17: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 17

Intercambio ( Introducción )Dos grandes problemas de las particiones fijas sin intercambio:

A Muchos procesos interactivos y poca memoria para ellos

B ¿Cómo gestionar la memoria dinámica de los procesos?

20 usuarios desean usar editor 1MB

S.O.

16 particionesde 1MB

Máximo 16procesos

4 trylater

¿Una solución?

?

Ampliar la M.P. con más particiones en disco

S.O.

P1P2

P16

P17P18P19P20

P1

P19

¡ Eficiente si no hay trasiego !

Page 18: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 18

Intercambio ( Introducción )

• ¿ Cuándo intercambiar ?

S.O.

P2

P16

P17P18

P20

P1

P19

?

Algunas cuestiones:

• ¿ Quién por quién ?

• ¿ Coste del intercambio ?

Word Excel

¡ 111..297 mseg !

Page 19: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 19

Intercambio ( Introducción )Dos grandes problemas de las particiones fijas sin intercambio:

A Muchos procesos interactivos y poca memoria para ellos

B ¿Cómo gestionar la memoria dinámica de los procesos?

S.O.

300K

200K

100K

P1300

¿Por qué P1 pide 300K?300250200150100

ti tf

K

Particiones Fijas Partición de 300K

¿ Intercambio ? P100K P200K P300K P100K

¿Qué estructura tiene la memoria dinámica de un Pi?

Page 20: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 20

Intercambio ( Introducción )

Componentes de MP de un Pi• Código• Pila• Datos

FijoVaría (bsr y rts)Varía (new y dispose)

Necesita 325K y le doy 400K (crecer)

200K (C) + 75K (D) + 50K (P)

Pila

Código

Datos

25K

50K

?S.O.

$00000

400K

50K

300K

$FFFFF

Pila

Código

Datos

Pila

CódigoDatos

Fragmentación

Protección

Pila

Código

Datos

200K

200K

Dos zonas no contiguas?

Page 21: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 21

Particiones Variables

• Asignar a cada proceso sólo la memoria que necesita

S.O.

800

224

A300K

A300

500

B100K

B100

400

C200K

C200

200

A

C200

200

B100

300

S.O.

D150K

D

C200

200

B100

150S.O.

150

E225K

B D

C200

200

150S.O.

250

D

C

S.O.

E

Fragmentación externaE esperando¿ Solución ?

Page 22: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 22

Particiones Variables (Compactación)

• Siempre un único hueco con toda la memoria libre

S.O.

800

224

A300K

A300

500

B100K

B100

400

C200K

C200

200

A

C200

200

B100

300

S.O.

D150K

DC200

350

B100

150

S.O.

E225K

B

E

DC200

225

B100

150

S.O.

125

E

DC

S.O.

225

C200

B100

500

CompactarCompactar

Costoso en tiempo

¿ Siempre ?¿ De vez en cuando ?¿ Cuándo ?

Gestión de huecos

Page 23: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 23

S.O. P1 P3 P5P2 P4

Algoritmos de gestión trozos (Lista Encadenada)• Lista encadenada: distribuida vs centralizada

Ordenada por direcciones y de cada trozo saber (al menos):Tipo (Libre/Ocupado); Tamaño

P1

Ocupado5MB

Libre6MB

Libre4MB

Page 24: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 24

S.O.

Algoritmos de gestión trozos (Lista Encadenada)

P1 P3 P5

• Lista encadenada: distribuida vs centralizada

64MB 20 5 6 4 13 12 4

Ocupado$0050 0000

$0140 0000dirTrozo

Tipo

Tamaño

Sig

P1

Libre$0060 0000

$0190 0000Ocupado

$0040 0000

$01F0 0000Libre

$00D0 0000

$0230 0000Libre

$0040 0000

$03C0 0000Ocupado

$00C0 0000

$0300 0000

P3 P5

• ¿Lista dinámica? => Array estático => ¿Tamaño?

• La memoria se da a trozos (sean de 4KB)

P00500

01400H

00600

01900P

00400

01F00H

00D00

02300P

00C00

03000H

00400

03C00

Page 25: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 25

Algoritmos de gestión trozos (Liberación de Memoria)

P1 P2 P3

• Lista encadenada:

Supongamos que termina un proceso (sea P2)

• Hay que tener en cuenta cuatro situaciones:

P1 P3

P1 P2

P2 P3

P2

P1

P3

• ¡ Fusionar ! Ventaja de tener la lista ordenada (contigüidad)

• Conveniencia de tener la lista doblemente enlazada

Page 26: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 26

Algoritmos de gestión trozos (Asignación de Memoria)• Lista encadenada: Asignación de memoria

1. First Fit “Primero en donde quepa”

2. Next Fit “Siguiente donde quepa”

3. Best Fit “Donde quepa mejor”Muchos huecos inútiles (demasiado pequeños)

4. Worst Fit “Donde quepa peor”

¡ Recorrer toda la lista !

5. Lista de procesos por un lado y de huecos por otro

¿ Cómo acelerar la asignación ?Liberación ineficiente

Ya lo tenemos[descriptores de procesos]

Ordenados portamaño

First = Best¿Next?

6. Quick Fit “Donde quepa antes”

Page 27: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 27

Algoritmos de gestión trozos (First Fit)• FIRST FIT “Primero en donde quepa”

P P P P P P

P’

P P P P P PP’

Muchos huecos pequeños al principio y uno grande al final:

Ejemplo: [Fork(P20K)]8 + [Exit(P20K) + Fork(P18K)]8 + Fork(P15K)

P P P P P P P P

P P P P P P P P

P’

P’

¡ Siempre recorriendo el principio !

Page 28: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 28

Algoritmos de gestión trozos (Next Fit)• NEXT FIT “Siguiente donde quepa”

Ejemplo: [Fork(P20K)]8 + [Exit(P20K) + Fork(P18K)]8 + Fork(P15K)

P

Inicio de búsqueda del siguiente hueco

P P P P P P P P

P P P P P P P P

P P P P P P PP P

P P P P P P

¿Pi grande?

! Huecos dispersos de tamaño moderado !

Fragmentación externa

Page 29: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 29

Algoritmos de gestión trozos (Quick Fit)• QUICK FIT “Donde quepa antes”

Idea: Varias listas que agrupan bloques de tamaño similar

64K128K256K512K

1M2M4M

Enormes

16 32 40 5265 112

280 300 360 360 400800

3 3,5 3,8

32

P310

P220

P500

P900

¡ Todavía puede mejorarse tanto la asignación como la liberación !

Sistema Buddy (Compañeros)

Page 30: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 30

S.O.

• ¡Doy memoria a trozos!64MB

00000000--------111111111111111111111111--------

Algoritmos de gestión trozos (Mapa de Bits)Asignación a golpe de 4K (granularidad)

Pi pide 10K

Fragmentación Interna

• ¿Tamaño del Mapa de Bits?

64MB/4KB = 16Kbits => 2KB

• ¿Liberación de memoria?

• ¿Asignación de memoria?

ListaEncadenada?

First, Next, Best, Worst => Viables

Quick, Buddy => Inviables

¡ No hay información explícita de tamaños !

00000000--------000111111111111111111111--------

Se le dan 12K (3 trozos)

Pi Pj

00000000--------000111110000000011000111--------

Pk

1 1 1 1 1 11 11 1 1 1 1 11 1 11 1 1 1 1 1000....00ocupado libre

0 0 0 0 0 00 00 0 0 0 0 0

Page 31: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 31

Paginación

• PROBLEMÁTICA DEL INTERCAMBIO

• ARQUITECTURA SUBYACENTE

• TRADUCCIÓN DE DIRECCIONES

• UBICACIÓN DE LA TABLA DE PÁGINAS

• UNO O VARIOS ESPACIOS DE D.V.

• TRATAMIENTO DE FALTA DE PÁGINA

Page 32: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 32

?M.P.

Paginación ( Problemática del Intercambio )

¿Su gran restricción?Exigir que un Pi esté entero en

M.P. para poder ejecutarse

A Un Pi más grande que la M.P. no podrá ejecutarse

B Si {Procesos preparados} aumenta, no cabe en M.P. Trasiego

C El intercambio Disco M.P. es mucho (dos procesos enteros)

Compilador: 1 Análisis léxico2 Análisis sintáctico3 Análisis semántico4 Generación de código¿Solución general?

Overlays (solapamientos)

Trocear

Page 33: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 33

M.P.

Paginación ( 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 512MB

8 vecesmenos

M.P.Espacio

de dir.

del P 4

Espacio de Direcciones Reales del PC

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

¿ Cómo funciona todo esto ?

Arquitectura subyacente

M.V.

M.P.

• Tendremos una Memoria Virtual de 4GB y mis programas se ejecutan aunque tenga menos Memoria Principal (512MB) siempre que quepan en la memoria virtual.

Page 34: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 34

MEMORIA VIRTUAL

Paginación ( Arquitectura Subyacente )

CPU

dvBus Datos

M.V.

La Memoria Virtual reside físicamente en memoria secundaria

M.P.

¡ No caben !

• Principio de localidad:

Meto en M.P. los trozos que hagan falta para ejecutar Pr y Pv

Page 35: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 35

Paginación ( 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 dr

Traducir dvdr

3000

¿Cachés?

Page 36: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 36

Paginación ( Arquitectura Subyacente )

Resumiendo:

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

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

¡ Principio de localidad espacial y temporal !

• Función de traducción (dv dr) 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 dr ?

Page 37: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 37

Paginación ( Traducción de direcciones )M.V.M.P.

0

1

2

3

5

6

7

8

9

0

2

8

9

6

F.T.

?

¿ Qué páginas están cargadas

y dónde ?

Page 38: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 38

Paginación ( 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

Page 39: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 39

Paginación ( Traducción de direcciones “binario” )

¿ # bits dv ?¿ # bits dr ?

24 20

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

Páginas de 4KB

0000 0000 0000 0000 0000 0000

0000 0000 0000 1111 1111 11110000 0000 0001 0000 0000 0000

0000 0000 0001 1111 1111 1111

0000 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 11110000 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

Page 40: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 40

Paginación ( Traducción de direcciones “hexadecimal” )

M.V.

0

1

2

3

5

6

7

8

9

000 000000 FFF

HHH HHHPAG OFF

008 000008 FFF

FFF 000FFF FFF

M.P.

0

2

8

9

6

00 00000 FFF

HH HHHMAR OFF

02 00002 FFF

FF 000FF FFF

0123456789A

FFF

Tabla depáginas

02 51A

P 02

Presente

Marco

008 51A

Page 41: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 41

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

M.P.

Tabla dePáginas

MMU

CPU

Paginación ( 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 !

Page 42: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 42

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

Paginación ( 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 de acierto del

98% !

Page 43: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 43

Paginación ( 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!

Page 44: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 44

4 Mb (210*212=22*220)Texto

Datos

Stack

Gap

Paginación ( Tabla de Páginas “multinivel” )

Evita mantener todas las tablas de páginas en memoria

Ejercicio2 – 12.12.2001

Page 45: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 45

Paginación ( Tabla de Páginas “invertida” )M.V.M.P.

0

1

2

3

5

6

7

8

9

0

2

8

9

6

F.T.

Bastaría con una caché con tantas entradas como

marcos

• Descriptor de página P Marco

caché ??

Sigue siendo necesaria una T.P. completa (MP / MV)

¿ Seguro ?

Page 46: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 46

Paginación ( Tabla de Páginas “descriptor” )

• Aspecto de un descriptor de página

P B R M L E J MARCO

PRESENTE Permisos: LECTURA

BLOQUEADA ESCRITURA

REFERENCIADA EJECUCIÓN

MODIFICADA

CACHE (Si/No)¿ Dirección en disco ?

• Un disco entero, o varios, o una parte de uno, para la M.V.

• Un fichero especial “pagefile.sys”

innecesario

C

Page 47: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 47

P0P1P2P3P4P5P6P7P8P9

P10P11P12P13P14P15

M.V. FT

M4M5M6M7

M.P.M0M1M2M3

Paginación ( Uno o varios espacios de dv )• Un único espacio de direcciones virtuales para todos los procesos

P1

P2

P3

• Una única T.P. Global

• Reubicación:

Carga

Registro Reubicación

• ¿ Cómo crece un Pi ?

Muy problemático

• Se adapta bien a tener un disco con n*sector = página

EficienciaVer ejercicio 3 20/6/00

Page 48: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 48

Paginación ( Uno o varios espacios de dv )• Un espacio de direcciones virtuales para cada proceso

P0P1P2

P3

M.V.(P1) FT(P1)P0P1P2P3

P1

M4M5M6M7

M.P.M0M1M2M3

P0P1P2P3P4P5

P2

• En la MMU, las dv se prefijan por un identificador de proceso

(complejidad)

• Una T.P. por proceso

• Reubicación innecesaria

• ¿ Fácil crecer ?

• Se adapta bien a tener un fichero por Pi (ineficiente)

Page 49: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 49

Paginación ( Tratamiento de Falta de Página )

• ¿Cuántas Faltas de Página puede generar una instrucción?

1. Extraer instrucción Leer dv $003000 F.P.

2. Decodificarla

3. Ejecutarla Escribir dv $0045FB F.P.

?move D0,$0045FBclr $0003FA

M.V.

$002FFA

CPU

PC

M.P.

Una instrucción, 0, 1, 2 o más

F.P.

$003000

Page 50: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 50

Paginación ( 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ón simple: uno cualquiera

(II) No hay marco libreM.P.

0

2

8

9

6

3

5

1

?

?

Política de sustituciónno tan simple

Page 51: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 51

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

Paginación ( Tratamiento de Falta de Página “II” )

3 Seleccionar víctima,tocar TP y arrancar E/S¡ Sólo si sucia !

2

5

100

0000

3 ¿Víctima 2 ?

1 1 5

0FA32

40FA3

4 Salvando (DMA) página sucia en disco

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

7mov C,D 9mov C,D

689

0

1 0 510

¿ Quién actualiza la caché ?

Page 52: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 52

Paginación ( Tratamiento de Falta de Página “II” )Resumiendo:

1 Referencia a página no cargada en M.P.2 Excepción BERR y se bloquea al proceso

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

¡ Sólo si sucia !

4 Salvando (DMA) página sucia 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 discoMP. CPU para otro Pi

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

9 Actualizar TP

10 Rearrancar “Mov C,D” cuando preparado UCP¿O continuar?

Page 53: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 53

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

OBJETIVO: Minimizar el número de Faltas de Página (F.P.)

Accesos:{ ........ $001000, $0043FA, $001002, $006400, $001006, $006402, $006406, $006408, $001008, $00640A, $00100A, $00100E, $00640E, $001012 ..}

{ .. 1, 4, 1, 6, 1, 6, 1, 6, 1, 6, 1, ..}Serie de

Referencia

Un solo

marco?

F.P.11

3 o más

marcos?

F.P.3

¿Cuantos más marcos mejor?

Sean dos marcos

M0

M1

1 1

4

1

6

F.P.

3

M0

M1

1 1

4

6

4

6

14

M0

M1

1 1

4

6

4

1

4

6

4

1

4

6

4

1

4

6

4

1

410

Margen para la mejora

Algoritmos

Page 54: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 54

Paginación ( 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

IDEALMás tiempo tarde en volver a ser referenciada

NRU No utilizada recientemente

FIFO Más tiempo lleva en Memoria Principal

LRU Menos recientemente usada

2nd Chance Segunda oportunidad

RELOJFIFO + LRU¡ El mismo !

Page 55: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 55

Paginación ( 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

IDEAL

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

Page 56: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 56

CT(t2, 10) =

t2

{3,4}

Paginación (Cuestiones de diseño: conjunto de trabajo)

• ¿Qué hacer cuando un proceso pasa a ejecución?

Carga por Demanda

• Se van cargando las páginas que el proceso vaya necesitando

Muchas F.P. evitables

Prealimentación

• Se arranca la carga del conjunto de trabajo del proceso.

“Páginas usadas más recientemente”

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}

Page 57: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 57

Paginación ( Cuestiones de diseño: trasiego )

Páginas = 20 CT = 7

MV

MP

Cabe en MP

¿Más Procesos?

Páginas = 26 CT = 11

MP

MV

No cabe en MP

=> CT mayor que MP => Trasiego

¿Tamaño de página?

¿Grandes?Más Fragmentación Interna

Mejor rendimiento E/S¿Pequeñas?

Mejor ajuste de localidad

Más ineficiencia de E/S

2n => 512B .. 4/8KB y aumentando ¡Superpáginas!

Page 58: Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones

Gestión de Memoria 58

Paginación ( Cuestiones de diseño: otras )

• Asignación local frente a global

• Control de carga

Pi

Pj

PFF

FIN