58
Gestión de Procesos 1 Horas 1 INTRODUCCIÓN 5 2 PROCESOS Y THREADS 11 3 GESTIÓN DE MEMORIA 7 4 ENTRADA/SALIDA sisOpe Temario Curso: 14/15

Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Embed Size (px)

Citation preview

Page 1: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Procesos 1

Horas

1 INTRODUCCIÓN

5

2 PROCESOS Y THREADS

11

3 GESTIÓN DE MEMORIA

7

4 ENTRADA/SALIDA

2

5 SISTEMA DE FICHEROS

5

sisOpe TemarioCurso: 14/15

Page 2: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 2

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

Recordatorio + …

Page 3: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 3

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.

2005 512MB 57 €. 1GB 180 €.2013 4GB 48 €. 8GB 92 €.

Sin embargo, ¡ SIEMPRE AMPLIANDO !

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

MSDOS Win95 WinNT Win00

70MB 120MB 275MB

Ley de Parkinson

¿Windows 764? 2GB + 20GB

Page 4: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 4

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 5: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 5

Introducción (objetivos)Jerarquía de Memoria: Capacidad y Tiempos

5ª Ed Computer Architecture … Hennessy & Patterson - 2011

Page 6: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 6

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 7: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 7

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

#file miabuelomiabuelo: MINIX-PC 32-bit executable

$file barreraArbolbarreraArbol: ELF 64-bit LSB executable, x86-64

Page 8: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 8

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 9: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 9

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 10: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 10

• 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 11: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 11

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 12: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 12

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 13: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 13

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 14: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 14

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 15: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 15

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 16: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 16

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 17: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 17

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 18: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 18

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

rpAux = rpAux->p_nextready

Page 19: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

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?

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 20: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

hdparm –tT

/dev/sda1

128MB/s

Gestión de Memoria 20

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

¡ (20 + 30) MB … !

Page 21: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 21

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 22: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 22

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 23: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 23

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 ?

blockdev –getbsz /dev/sda1

Page 24: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 24

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 25: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 25

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

¿Separar en 2 listas?• Huecos• Procesos

Page 26: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 26

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 27: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 27

S.O.

Algoritmos de gestión trozos (Lista encadenada)0 1000 49999

1000H

49000-1

D D D D D

0 1 2 3 4 NdirTrozo

TipoTamaño

Sig

P1.12000

P1

1000P

120001

13000H

37000-1

D D D DP2.8000

P2

1000P

120001

13000P

80002

21000H

29000-1

D D D P3.20000

P3

1000P

120001

13000P

80002

21000P

200003

41000H

9000-1

D D P1

P4.7000

Page 28: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 28

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 29: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 29

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 30: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 30

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 31: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 31

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 32: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 32

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)

100 1101 1000 0000 0000

Page 33: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 33

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 34: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 34

Paginación

• PROBLEMÁTICA DEL INTERCAMBIO

• ARQUITECTURA SUBYACENTE

• TRADUCCIÓN DE DIRECCIONES

• TABLA DE PÁGINAS MULTINIVEL

• UNO O VARIOS ESPACIOS DE D.V.

• TRATAMIENTO DE FALTA DE PÁGINA

Recordatorio

Page 35: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 35

?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 36: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 36

M.P.

Paginación ( Problemática del Intercambio )Solución Darle al usuario la sensación de tener una M.P. enorme

• El Core i7 (48/64bits de direcciones) 256TB

• Un PC medio dispone tan sólo de 4GB

65.536 vecesmenos

M.P.Espacio

de dir.

del i7

Espacio de Direcciones Reales del PC

• Teóricamente podemos escribir programas pensando en el Core i7 y 256TB

¿ Cómo funciona todo esto ?

Arquitectura subyacente

M.V.

M.P.

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

Page 37: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 37

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 38: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 38

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 39: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 39

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 40: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 40

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

Página Offset12 12

dv

M.P.0

4095

4096

8191

8192

12287

0000 0001 0000 0000 0000

0000 0000 0000 0000 0000

0000 0000 1111 1111 1111

0000 0001 1111 1111 1111

0000 0010 0000 0000 0000

0000 0010 1111 1111 1111

Marco Offset8 12

dr

8192

12287

4096

81910000 0000 0010 0000 0000 0000

0000 0001 0000 0000 0000

HH HHH2 3

HHH HHH3 3

“hexadecimal”

Page 41: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 41

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

¡Demasiado lento!

¿Dóndeestá?

Page 42: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

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é TLB” )

M.P.

Tabla dePáginas

dato

008 51Adv

MMU

009 FF006 63000 40

008 52002 A3

TLBcaché

Página Marco

Cachés de8..2046entradas

1Mentradas

52 51Adr

RBTP

¿ Fallo deCaché ?

¡ Tasas de acierto del

98% !

Page 43: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 43

Paginación ( Traducción de direcciones “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 44: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 44

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

Intel Core i7 => DV 48 bits, páginas 4KB y descriptores 4B => 256GB para la TP

RegTP1

¡Siempre en MP!

Entran y salen de MP

TP Nivel1

TP Nivel2

páginas

VPN1 VPN2 OFF

R

PPN OFF

dirVirtual

dirReal

Ejercicio2 – 12.12.2001

Page 45: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 45

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

VPN 1 VPN 2 VPN 3 VPN 4 VP OFF9 9 9 9 12

CR3

40

9

9

40

9

40

9

40

PPN [MARCO] PP OFF12

Page global directory

Page upper directory

Page middle directory

Page table

dirVirtual

dirFísica

i3,i5,i7 4ª 32GB

i7 High End 64GB

Xeon 1..4TB

2013

Page 46: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 46

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 47: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 47

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 48: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 48

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 49: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 49

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

¡ 1.048.576 marcos !

Page 50: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 50

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 TLBcaché ?

Page 51: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 51

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. CPU para otro Pi

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 52: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 52

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 53: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 53

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 54: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

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

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 55: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 55

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}

5 900300

40 128

5 128

Page 56: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 56

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!

sysconf(_SC_PAGESIZE)

Page 57: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

Gestión de Memoria 57

Paginación (Cuestiones de diseño: superpáginas )

VPN 1 VPN 2 VPN 3 VP OFF9 9 9 21

dirVirtual 2MB

VPN 1 VPN 2 VP OFF9 9 30

dirVirtual 1GB

VPN 1 VPN 2 VPN 3 VPN 4 VP OFF9 9 9 9 12

dirVirtual 4KB

Intel Core i7 “long mode”Páginas de

Page 58: Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15

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

Asignar + marcos

Devolver marcos

Retirar temporalmente algún proceso ¿Intercambio?