Manejo de Memoria Asignación de Particiones Variables

Anuncio
Contenido
Manejo de Memoria
Asignación de Particiones
Variables
• Particiones Variables
• Algoritmos de Colocación
– Best Fit
– First Fit
– Next Fit
• Manejo de posiciones libres
– Bit Maps
– Linked Lists
• Alternativa a los esquemas de partición fijos
y dinámicos: Buddy System
M. B. Ibáñez
M. B. Ibáñez
Particiones Variables
Ejemplo
• El número, la localidad y el tamaño de las
particiones varía dinámicamente a medida que los
procesos se ejecutan
• Mejora la utilización de la memoria. A los
procesos se les asigna casi exactamente la cantidad
de memoria que requieren
• El número y el tamaño de los procesos en
memoria varía dinámicamente
• La asignación y desasignación de memoria es
M. B. Ibáñez
complicada
OS
128 K
OS
Process 1
320 K
Process 1
OS
OS
process 5
process 5
process 9
process 9
process 10
process 2
process 2
process 2
process 2
M. B. Ibáñez
Solución: Compactación
OS
320 K
Process 2
896 K
OS
process 5
process 8
Problema de fragmentación externa
OS
OS
process 5
576 K
Process 1
320 K
Process 2
224 K
Process 3
288 K
OS
OS
Process 1
320 K
Process 4
128 K
Process 1
320 K
Process 4
128 K
64 K
OS
OS
OS
Process 1 320 K
Process 1 320 K
Process 1
224 K
Process 4 128 K
96 K
Process 3 288 K
Process 3 288 K
64 K
64 K
M. B. Ibáñez
Process 3
OS
320 K
96 K
Process 1
320 K
224 K
Process 4
128 K
96 K
288 K
Process 3
288 K
64 K
288 K
Process 3
288 K
Process 3
Process 5
64 K
100K
60K
64 K
M. B. Ibáñez
1
Contenido
Algoritmos de Colocación
• Best-fit
• Particiones Variables
• Algoritmos de Colocación
– Escoge el bloque cuyo tamaño es el más
cercano al tamaño requerido
– Exhibe el peor desempeño
– Dado que se escoge el bloque más pequeño, se
deja la menor fragmentación y se debe
compactar más frecuentemente
– Best Fit
– First Fit
– Next Fit
• Manejo de posiciones libres
– Bit Maps
– Linked Lists
• Alternativa a los esquemas de partición fijos
y dinámicos: Buddy
System
M. B. Ibáñez
M. B. Ibáñez
Ejemplo
Ejemplo
100K
100K
USED
USED
500K
500K
USED
USED
200K
200K
USED
212K
USED
212K
300K
88K
USED
USED
600K
600K
M. B. Ibáñez
M. B. Ibáñez
Ejemplo
Ejemplo
100K
100K
USED
USED
417K
500K
83K
USED
USED
200K
417K
200K
USED
USED
212K
212K
88K
88K
USED
USED
600K
M. B. Ibáñez
600K
M. B. Ibáñez
2
Ejemplo
Ejemplo
120K
120K
417K
417K
83K
83K
USED
USED
112K
200K
200K
USED
USED
212K
212K
88K
88K
USED
USED
600K
600K
M. B. Ibáñez
M. B. Ibáñez
Ejemplo
Ejemplo
112K
112K
8K
8K
417K
417K
83K
USED
303K
200K
USED
USED
212K
212K
88K
88K
USED
USED
600K
600K
M. B. Ibáñez
M. B. Ibáñez
Ejemplo
Ejemplo
112K
112K
8K
8K
417K
417K
300K
303K
3K
300K
USED
USED
212K
212K
88K
88K
USED
USED
600K
M. B. Ibáñez
600K
M. B. Ibáñez
3
Ejemplo
Ejemplo
112K
112K
8K
417K
417K
300K
300K
USED
212K
3K
650K
USED
USED
212K
650K
88K
USED
49K
600K
M. B. Ibáñez
M. B. Ibáñez
Algoritmos de Colocación
Ejemplo
• First-fit
100K
USED
– Comienza a examinar la memoria desde el
comienzo y escoge el primer bloque que es lo
suficientemente grande
– El más rápido
500K
USED
200K
USED
212K
300K
USED
600K
M. B. Ibáñez
M. B. Ibáñez
Ejemplo
Ejemplo
100K
100K
USED
USED
212K
212K
288K
288K
USED
USED
200K
200K
417K
USED
USED
300K
300K
USED
USED
600K
M. B. Ibáñez
600K
M. B. Ibáñez
4
Ejemplo
Ejemplo
100K
120K
USED
212K
212K
288K
288K
USED
USED
200K
200K
USED
USED
300K
300K
USED
USED
417K
417K
183K
183K
M. B. Ibáñez
M. B. Ibáñez
Ejemplo
Ejemplo
112K
120K
8K
212K
212K
288K
288K
USED
USED
112K
200K
200K
USED
USED
300K
300K
USED
USED
417K
417K
183K
183K
M. B. Ibáñez
M. B. Ibáñez
Ejemplo
Ejemplo
112K
112K
8K
8K
212K
212K
300K
508K
208K
300K
USED
USED
300K
300K
USED
USED
417K
417K
183K
M. B. Ibáñez
183K
M. B. Ibáñez
5
Ejemplo
Ejemplo
112K
112K
8K
212K
212K
300K
300K
USED
USED
208K
650K
417K
USED
650K
300K
49K
USED
417K
183K
M. B. Ibáñez
M. B. Ibáñez
Ejemplo
Algoritmos de Colocación
112K
• Next-fit
212K
300K
USED
USED
417K
650K
49K
– Comienza a buscar en memoria desde la localidad en
donde se realizó la última colocación y escoge, a partir
de ahí, el bloque disponible que es lo suficientemente
grande
– El mayor bloque de memoria es partido en bloques más
pequeños
– Compactación se requiere para obtener un bloque más
grande al final de la memoria
M. B. Ibáñez
M. B. Ibáñez
Ejemplo
Ejemplo
100K
100K
USED
USED
212K
500K
288K
USED
USED
200K
200K
USED
212K
USED
300K
300K
USED
USED
600K
M. B. Ibáñez
600K
M. B. Ibáñez
6
Ejemplo
Ejemplo
100K
100K
USED
USED
212K
212K
288K
288K
USED
USED
200K
417K
200K
USED
USED
300K
300K
USED
USED
417K
600K
183K
M. B. Ibáñez
M. B. Ibáñez
Ejemplo
Ejemplo
120K
120K
212K
212K
288K
288K
USED
USED
112K
200K
200K
USED
USED
300K
300K
USED
USED
417K
417K
183K
183K
M. B. Ibáñez
M. B. Ibáñez
Ejemplo
Ejemplo
120K
120K
212K
212K
288K
USED
508K
200K
USED
USED
300K
300K
USED
USED
417K
417K
112K
112K
71K
M. B. Ibáñez
71K
M. B. Ibáñez
7
Ejemplo
Ejemplo
120K
120K
212K
212K
300K
508K
208K
300K
USED
USED
300K
300K
USED
USED
417K
417K
112K
112K
71K
71K
M. B. Ibáñez
M. B. Ibáñez
Ejemplo
Ejemplo
212K
120K
300K
212K
USED
USED
300K
417K
112K
208K
650K
650K
USED
300K
691K
USED
417K
112K
71K
M. B. Ibáñez
M. B. Ibáñez
Ejemplo
Ejemplo
8K
212K
8K
12K
First Fit
12K
300K
22K
USED
USED
Best Fit
Last
allocated
18K
block (14K)
417K
6K
2K
112K
8K
8K
6K
650K
6K
Allocated block
Free block
14K
49K
36K
M. B. Ibáñez
14K
N ext Fit
20K
Before
M. B. Ibáñez
After
8
Contenido
• Particiones Variables
• Algoritmos de Colocación
– Best Fit
– First Fit
– Next Fit
• Manejo de posiciones libres
– Bit Maps
– Linked Lists
• Alternativa a los esquemas de partición fijos
y dinámicos: Buddy
System
M. B. Ibáñez
Manejo de Memoria con
Bit Maps
A
B
D
16
8
11111000
11111111
11001111
11111000
...
C
E
Manejo de Memoria con
Bit Maps
• La memoria se divide en unidades, tan pequeñas
como unas pocas palabras o tan grandes como
varios kilobytes
• A cada unidad se le asigna un bit en el bit map,
que es 0 si la unidad está libre o 1 si está ocupada
• Un bit map provee una manera simple de saber
qué posiciones de memoria están libres o
utilizadas
M. B. Ibáñez
Manejo de Memoria con
Linked Lists
• Mantener una lista enlazada de los
segmentos que están libres y asignados
24
bit map
M. B. Ibáñez
M. B. Ibáñez
Manejo de Memoria con
Linked Lists
Contenido
A
B
C
D
16
8
E
24
P 0 5
H5 3
P 8 6
P 14 4
H18 2
P 20 6
P 26 3
H 29 3 X
• Particiones Variables
• Algoritmos de Colocación
– Best Fit
– First Fit
– Next Fit
• Manejo de posiciones libres
M. B. Ibáñez
– Bit Maps
– Linked Lists
• Alternativa a los esquemas de partición fijos
y dinámicos: Buddy
System
M. B. Ibáñez
9
Buddy System
Buddy System
Bloques disponibles de tamaño: 2^k, L≤ k ≤U
•
2^L el bloque más pequeño que es asignado
•
2^U el bloque más grande que es asignado
•
Al comienzo, el espacio para ser asignado es tratado como un único
1M
bloque de tamaño 2^U
•
Si una petición de tamaño s tal que 2^(U-1) < s ≤ 2^U es solicitada,
entonces el bloque completo es asignado
•
De otro modo, el bloque se parte en dos pedazos de tamaño 2^(U -1).
(El proceso es repetido si es necesario)
M. B. Ibáñez
M. B. Ibáñez
Buddy System
Buddy System
1M
512K
A:: Request 100K
256K
512K
A:: Request 100K
M. B. Ibáñez
M. B. Ibáñez
Buddy System
Buddy System
256K
512K
A:: Request 100K
128K 128K
256K
512K
A:: Request 100K
M. B. Ibáñez
M. B. Ibáñez
10
Buddy System
A
128K
256K
512K
A:: Request 100K
A
A
128K
256K
512K
B:: Request 240K
M. B. Ibáñez
M. B. Ibáñez
Buddy System
Buddy System
128K
B
512K
B:: Request 240K
A
Buddy System
A
128K
B
512K
C:: Request 64K
M. B. Ibáñez
M. B. Ibáñez
Buddy System
Buddy System
64K 64K
B
512K
C:: Request 64K
A
C 64K
B
512K
C:: Request 64K
M. B. Ibáñez
M. B. Ibáñez
11
Buddy System
A
B
C 64K
Buddy System
512K
A
D:: Request 256K
A
M. B. Ibáñez
M. B. Ibáñez
Buddy System
Buddy System
B
C 64K
C 64K
256K
256K
D:: Request 256K
D
256K
D:: Request 256K
A
B
C 64K
A
C 64K
B
D
256K
Release B
M. B. Ibáñez
M. B. Ibáñez
Buddy System
Buddy System
256K
D
Release B
256K
A
C 64K
256K
D
256K
Release A
M. B. Ibáñez
M. B. Ibáñez
12
Buddy System
128K
256K
C 64K
D
Buddy System
256K
Release A
128K
C 64K
256K
D
256K
E: Request 75K
M. B. Ibáñez
M. B. Ibáñez
Buddy System
E
C 64K
256K
D
256K
E: Request 75K
M. B. Ibáñez
13
Descargar