JEFE DE CATEDRA: Lic. Juan Pablo Moreno


SISTEMAS OPERATIVOS
JTP: Mgtr. Manuel Baquinzay

METODO DE BUDDY SYSTEM

"Buddy System" es un algoritmo de administración de memoria utilizado en sistemas operativos para asignar y liberar bloques de memoria de tamaño fijo. Este algoritmo funciona dividiendo la memoria disponible en bloques de tamaño potencia de dos, y luego asignando estos bloques de memoria a los procesos que los soliciten. Si un proceso solicita un bloque de memoria, el algoritmo buscará el bloque disponible más cercano al tamaño solicitado. Si el bloque disponible es más grande que el tamaño solicitado, se dividirá en dos bloques del tamaño más cercano a una potencia de dos.
Cuando un proceso ya no necesita un bloque de memoria, el algoritmo verifica si el bloque adyacente es también un bloque libre del mismo tamaño, y si es así, los fusiona o compacta en un solo bloque más grande. Este proceso se conoce como "coalescencia de bloques" ó "compactacion de bloques".
MAR=1
KAVAL
BLOQUE OCUPADO
2
K
PA
PS
MAR=0
KAVAL
BLOQUE LIBRE
METODO DE BUDDY SYSTEM

Inicialmente se cuenta con una memoria de 512 k, se debe atender los siguientes requerimientos
| OPERACION | PROCESOS | INFORMACION |
|---|---|---|
| 1 | P1 | Requiere 65 k |
| 2 | P2 | Requiere 30 k |
| 3 | P3 | Requiere 250 k |
| 4 | P1 | Se Libera |
| 5 | P5 | Requiere 7 k |
| 6 | P6 | Se Libera |
| 7 | P7 | Se Libera |
METODO DE BUDDY SYSTEM
2
9
0
512
LIBRE
MEMORIA

1000
1000
1002
1002
1004
1004
1006
1006
1008
1008
1010
1010
1012
1012
1014
1014
1016
1016
0
0
1000
1002
1004
1006
1008
1010
1012
1014
1016
1018
0
1
2
3
4
5
6
7
8
9
1018
1018
0
9
0
PA
PS
MAR
KVAL
2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
1
2
4
8
16
32
64
128
256
512
2
0
2
10
2
11
2
12
1024
2048
4096
METODO DE BUDDY SYSTEM

| OPERACION | PROCESOS | INFORMACION |
|---|---|---|
| 1 | P1 | Requiere 65 k |
2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
1
2
4
8
16
32
64
128
256
512
2
0
2
10
2
11
2
12
1024
2048
4096
METODO DE BUDDY SYSTEM
LIBRE

1000
1000
1002
1002
1004
1004
1006
1006
1008
1008
1010
1010
1012
1012
1014
1014
1016
1016
0
0
1000
1002
1004
1006
1008
1010
1012
1014
1016
1018
0
1
2
3
4
5
6
7
8
9
1018
1018
0
9
0
PA
PS
MAR
KVAL
METODO DE BUDDY SYSTEM
2
9
512
MEMORIA

0
P1 = 2
7
0
0
512
512
2
8
2
8
2
7
2
8
256
256
256
256
128
128
METODO DE BUDDY SYSTEM
LIBRE

1000
1000
1002
1002
1004
1004
1006
1006
1008
1008
1010
1010
1012
1012
128
128
256
256
1018
1018
1000
1002
1004
1006
1008
1010
1012
1014
1016
1018
0
1
2
3
4
5
6
7
8
9
1016
1016
0
8
256
PA
PS
MAR
KVAL
1014
1014
0
7
128
PA
PS
MAR
KVAL
METODO DE BUDDY SYSTEM

| OPERACION | PROCESOS | INFORMACION |
|---|---|---|
| 2 | P2 | Requiere 30 k |
2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
1
2
4
8
16
32
64
128
256
512
2
0
2
10
2
11
2
12
1024
2048
4096
METODO DE BUDDY SYSTEM
LIBRE

1000
1000
1002
1002
1004
1004
1006
1006
1008
1008
1010
1010
1012
1012
128
128
256
256
1018
1018
1000
1002
1004
1006
1008
1010
1012
1014
1016
1018
0
1
2
3
4
5
6
7
8
9
1016
1016
0
8
256
PA
PS
MAR
KVAL
1014
1014
0
7
128
PA
PS
MAR
KVAL
METODO DE BUDDY SYSTEM
2
9
512
MEMORIA

0
P1 = 2
7
0
0
512
512
2
8
2
8
2
7
2
8
256
256
256
256
128
128
0
512
2
6
2
8
256
256
128
128
2
6
192
192
0
512
2
6
2
8
256
256
128
128
2
5
192
192
P1 = 2
7
P1 = 2
7
P2 = 2
5
160
160
METODO DE BUDDY SYSTEM
LIBRE

1000
1000
1002
160
160
192
192
1014
1014
256
256
1018
1018
1000
1002
1004
1006
1008
1010
1012
1014
1016
1018
0
1
2
3
4
5
6
7
8
9
1016
1016
0
8
256
PA
PS
MAR
KVAL
1012
1012
0
6
192
PA
PS
MAR
KVAL
1010
1010
0
5
160
PA
PS
MAR
KVAL
1002
1004
1004
1006
1006
1008
1008
METODO DE BUDDY SYSTEM

| OPERACION | PROCESOS | INFORMACION |
|---|---|---|
| 3 | P3 | Requiere 250k |
2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
1
2
4
8
16
32
64
128
256
512
2
0
2
10
2
11
2
12
1024
2048
4096
METODO DE BUDDY SYSTEM
LIBRE

1000
1000
160
160
192
192
256
256
1000
1002
1004
1006
1008
1010
1012
1014
1016
1018
0
1
2
3
4
5
6
7
8
9
1016
1016
0
8
256
PA
PS
MAR
KVAL
1012
1012
0
6
192
PA
PS
MAR
KVAL
1010
1010
0
5
160
PA
PS
MAR
KVAL
1002
1002
1004
1004
1006
1006
1008
1008
1014
1014
1018
1018
METODO DE BUDDY SYSTEM
2
9
512
MEMORIA

0
P1 = 2
7
0
0
512
512
2
8
2
8
2
7
2
8
256
256
256
256
128
128
0
512
2
6
2
8
256
256
128
128
2
6
192
192
0
512
2
6
2
8
256
256
128
128
2
5
192
192
P1 = 2
7
P1 = 2
7
P2 = 2
5
160
160
0
512
2
6
256
256
128
128
2
5
192
192
P1 = 2
7
P2 = 2
5
160
160
P3 = 2
8
METODO DE BUDDY SYSTEM
LIBRE

1000
1000
160
160
192
192
1016
1016
1000
1002
1004
1006
1008
1010
1012
1014
1016
1018
0
1
2
3
4
5
6
7
8
9
1012
1012
0
6
192
PA
PS
MAR
KVAL
1010
1010
0
5
160
PA
PS
MAR
KVAL
1002
1002
1004
1004
1006
1006
1008
1008
1014
10141018
1018
METODO DE BUDDY SYSTEM

| OPERACION | PROCESOS | INFORMACION |
|---|---|---|
| 4 | P1 | Se Libera |
2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
1
2
4
8
16
32
64
128
256
512
2
0
2
10
2
11
2
12
1024
2048
4096
METODO DE BUDDY SYSTEM
MEMORIA

0
512
2
6
256
256
128
128
5
192
192
P1 = 2
7
P2 = 2
5
160
160
P3 = 2
8
situación actual de la memoria
METODO DE BUDDY SYSTEM

2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
1
2
4
8
16
32
64
128
256
512
2
0
2
10
2
11
2
12
1024
2048
4096
Cuando se libera un proceso se deben seguir los siguientes pasos
1°
calcular la direccion base del compañero del bloque donde se encuentra el P1 que se LIBERA
L = P + 2
k
L = 0 + 2
7
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
| 0+0 | 0 |
|---|---|
| 0+1 | 1 |
| 1+0 | 1 |
| 1+1 | 0 |
Direccion base del compañero
128
OR exclusivo
128
2
64
0
2
32
0
2
1
0
2
16
0
2
8
0
2
4
0
2
2
0

L = 0 + 2
7
2 = 2x2x2x2x2x2x2 = 128
2
9
512
MEMORIA
0
P1 = 2
7
0
0
512
512
2
8
2
8
2
7
2
8
256
256
256
256
128
128
0
512
2
6
2
8
256
256
128
128
2
6
192
192
0
512
2
6
2
8
256
256
128
128
2
5
192
192
P1 = 2
7
P1 = 2
7
P2 = 2
5
160
160
0
512
2
6
256
256
128
128
2
5
192
192
P1 = 2
7
P2 = 2
5
160
160
P3 = 2
8
2°
Se debe analizar la memoria y chequear la situacion del bloque cuya direccion base se obtuvo en el paso 1°
compañero ocupado
METODO DE BUDDY SYSTEM
2
9
512
MEMORIA

0
P1 = 2
7
0
0
512
512
2
8
2
8
2
7
2
8
256
256
256
256
128
128
0
512
2
6
2
8
256
256
128
128
2
6
192
192
0
512
2
6
2
8
256
256
128
128
2
5
192
192
P1 = 2
7
P1 = 2
7
P2 = 2
5
160
160
0
512
2
6
256
256
128
128
2
5
192
192
P2 = 2
5
160
160
P3 = 2
8
2
7
METODO DE BUDDY SYSTEM
LIBRE

1000
160
160
192
192
0
0
1000
1002
1004
1006
1008
1010
1012
1014
1016
1018
0
1
2
3
4
5
6
7
8
9
1012
1012
0
6
192
PA
PS
MAR
KVAL
1010
1010
0
5
160
PA
PS
MAR
KVAL
1014
1014
0
7
0
PA
PS
MAR
KVAL
1000
1002
1002
1004
1004
1006
1006
1008
1008
1016
1016
1018
1018
METODO DE BUDDY SYSTEM

| OPERACION | PROCESOS | INFORMACION |
|---|---|---|
| 5 | P4 | Requiere 7 k |
2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
1
2
4
8
16
32
64
128
256
512
2
0
2
10
2
11
2
12
1024
2048
4096
METODO DE BUDDY SYSTEM
LIBRE

1000
160
160
192
192
0
0
1000
1002
1004
1006
1008
1010
1012
1014
1016
1018
0
1
2
3
4
5
6
7
8
9
1012
1012
0
6
192
PA
PS
MAR
KVAL
1010
1010
0
5
160
PA
PS
MAR
KVAL
1014
1014
0
7
0
PA
PS
MAR
KVAL
1000
1002
1002
1004
1004
1006
1006
1008
1008
1016
1016
1018
1018
2
9
512
0
P1 = 2
7
0
0
512
512
2
8
2
8
2
7
2
8
256
256
256
256
128
128
0
512
2
6
2
8
256
256
128
128
2
6
192
192
0
512
2
6
2
8
256
256
128
128
2
5
192
192
P1 = 2
7
P1 = 2
7
P2 = 2
5
160
160
0
512
2
6
256
256
128
128
2
5
192
192
P2 = 2
5
160
160
P3 = 2
8
2
7
0
512
2
6
256
256
128
128
2
4
192
192
P2 = 2
5
160
160
P3 = 2
8
2
7
2
4
176
176
0
512
2
6
256
256
128
128
2
4
192
192
P2 = 2
5
160
160
P3 = 2
8
2
7
2
3
176
176
168
168
P4 = 2
3
METODO DE BUDDY SYSTEM
LIBRE

1000
168
168
176
176
1010
1010
192
192
0
0
1000
1002
1004
1006
1008
1010
1012
1014
1016
1018
0
1
2
3
4
5
6
7
8
9
1012
1012
0
6
192
PA
PS
MAR
KVAL
1008
1008
0
4
176
PA
PS
MAR
KVAL
1014
1014
0
7
0
PA
PS
MAR
KVAL
1006
1006
0
3
168
PA
PS
MAR
KVAL
1000
1002
1002
1004
1004
1016
1016
1018
1018
METODO DE BUDDY SYSTEM

| OPERACION | PROCESOS | INFORMACION |
|---|---|---|
| 6 | P2 | Se Libera |
2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
1
2
4
8
16
32
64
128
256
512
2
0
2
10
2
11
2
12
1024
2048
4096
0
512
2
6
256
256
128
128
2
4
192
192
P2 = 2
5
160
160
P3 = 2
8
2
7
2
3
176
176
168
168
P4 = 2
3
Text
situación actual de la memoria
METODO DE BUDDY SYSTEM

2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
1
2
4
8
16
32
64
128
256
512
2
0
2
10
2
11
2
12
1024
2048
4096
Cuando se libera un proceso se deben seguir los siguientes pasos
1°
calcular la direccion base del compañero del bloque donde se encuentra el P2 que se LIBERA
L = P + 2
k
L = 128 + 2
5
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
| 0+0 | 0 |
|---|---|
| 0+1 | 1 |
| 1+0 | 1 |
| 1+1 | 0 |
Direccion base del compañero
160
OR exclusivo
2
9
512
0
P1 = 2
7
0
0
512
512
2
8
2
8
2
7
2
8
256
256
256
256
128
128
0
512
2
6
2
8
256
256
128
128
2
6
192
192
0
512
2
6
2
8
256
256
128
128
2
5
192
192
P1 = 2
7
P1 = 2
7
P2 = 2
5
160
160
0
512
2
6
256
256
128
128
2
5
192
192
P2 = 2
5
160
160
P3 = 2
8
2
7
0
512
2
6
256
256
128
128
2
4
192
192
P2 = 2
5
160
160
P3 = 2
8
2
7
2
4
176
176
0
512
2
6
256
256
128
128
2
4
192
192
P2 = 2
5
160
160
P3 = 2
8
2
7
2
3
176
176
168
168
P4 = 2
3
2°
Se debe analizar la memoria y chequear la situacion del bloque cuya direccion base se obtuvo en el paso 1°
Compañero ocupado
2
9
512
0
P1 = 2
7
0
0
512
512
2
8
2
8
2
7
2
8
256
256
256
256
128
128
0
512
2
6
2
8
256
256
128
128
2
6
192
192
0
512
2
6
2
8
256
256
128
128
2
5
192
192
P1 = 2
7
P1 = 2
7
P2 = 2
5
160
160
0
512
2
6
256
256
128
128
2
5
192
192
P2 = 2
5
160
160
P3 = 2
8
2
7
0
512
2
6
256
256
128
128
2
4
192
192
P2 = 2
5
160
160
P3 = 2
8
2
7
2
4
176
176
0
512
2
6
256
256
128
128
2
4
192
192
160
160
P3 = 2
8
2
7
2
3
176
176
168
168
P4 = 2
3
2
5
METODO DE BUDDY SYSTEM
LIBRE

1000
168
168
176
176
128
128
192
192
0
0
1000
1002
1004
1006
1008
1010
1012
1014
1016
1018
0
1
2
3
4
5
6
7
8
9
1012
1012
0
6
192
PA
PS
MAR
KVAL
1008
1008
0
4
176
PA
PS
MAR
KVAL
1014
1014
0
7
0
PA
PS
MAR
KVAL
1006
1006
0
3
168
PA
PS
MAR
KVAL
1010
1010
0
5
128
PA
PS
MAR
KVAL
1000
1002
1002
1004
1004
1016
1016
1018
1018
METODO DE BUDDY SYSTEM

| OPERACION | PROCESOS | INFORMACION |
|---|---|---|
| 7 | P4 | Se Libera |
2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
1
2
4
8
16
32
64
128
256
512
2
0
2
10
2
11
2
12
1024
2048
4096
0
512
2
6
256
256
128
128
2
4
192
192
160
160
P3 = 2
8
2
7
2
3
176
176
168
168
P4 = 2
3
2
5
situación actual de la memoria
METODO DE BUDDY SYSTEM

2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
1
2
4
8
16
32
64
128
256
512
2
0
2
10
2
11
2
12
1024
2048
4096
Cuando se libera un proceso se deben seguir los siguientes pasos
1°
calcular la dirección base del compañero del bloque donde se encuentra el P4 que se LIBERA
L = P + 2
k
L = 160 + 2
3
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
| 0+0 | 0 |
|---|---|
| 0+1 | 1 |
| 1+0 | 1 |
| 1+1 | 0 |
Direccion base del compañero
168
OR exclusivo
0
512
2
6
256
256
128
128
2
4
192
192
160
160
P3 = 2
8
2
7
2
3
176
176
168
168
P4 = 2
3
2°
Se debe analizar la memoria y chequear la situacion del bloque cuya direccion base se obtuvo en el paso 1°
Compañero libre
0
512
2
6
256
256
128
128
2
4
192
192
160
160
P3 = 2
8
2
7
2
4
176
176
chequear condición del compañero del nuevo bloque o particion formada
2
5
2
5
METODO DE BUDDY SYSTEM

2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
1
2
4
8
16
32
64
128
256
512
2
0
2
10
2
11
2
12
1024
2048
4096
Cuando se libera un proceso se deben seguir los siguientes pasos
1°
calcular la dirección base del compañero del nuevo bloque
L = P + 2
k
L = 160 + 2
4
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
| 0+0 | 0 |
|---|---|
| 0+1 | 1 |
| 1+0 | 1 |
| 1+1 | 0 |
Direccion base del compañero
176
OR exclusivo
2°
Se debe analizar la memoria y chequear la situacion del bloque cuya direccion base se obtuvo en el paso 1°
Compañero libre
0
512
2
6
256
256
128
128
2
4
192
192
P2 = 2
5
160
160
P3 = 2
8
2
7
2
4
176
176
chequear condición del compañero del nuevo bloque o particion formada
0
512
2
6
256
256
128
128
192
192
P2 = 2
5
160
160
P3 = 2
8
2
7
2
5
METODO DE BUDDY SYSTEM

2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
1
2
4
8
16
32
64
128
256
512
2
0
2
10
2
11
2
12
1024
2048
4096
Cuando se libera un proceso se deben seguir los siguientes pasos
1°
calcular la dirección base del compañero del nuevo bloque
L = P + 2
k
L = 160 + 2
5
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
| 0+0 | 0 |
|---|---|
| 0+1 | 1 |
| 1+0 | 1 |
| 1+1 | 0 |
Direccion base del compañero
128
OR exclusivo
2°
Se debe analizar la memoria y chequear la situacion del bloque cuya direccion base se obtuvo en el paso 1°
Compañero libre
chequear condición del compañero del nuevo bloque o particion formada
0
512
2
6
256
256
128
128
192
192
160
160
P3 = 2
8
2
7
2
5
2
5
0
512
2
6
256
256
128
128
192
192
P3 = 2
8
2
7
2
6
METODO DE BUDDY SYSTEM

2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
1
2
4
8
16
32
64
128
256
512
2
0
2
10
2
11
2
12
1024
2048
4096
Cuando se libera un proceso se deben seguir los siguientes pasos
1°
calcular la dirección base del compañero del nuevo bloque
L = P + 2
k
L = 128 + 2
6
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
| 0+0 | 0 |
|---|---|
| 0+1 | 1 |
| 1+0 | 1 |
| 1+1 | 0 |
Direccion base del compañero
192
OR exclusivo
2°
Se debe analizar la memoria y chequear la situacion del bloque cuya direccion base se obtuvo en el paso 1°
Compañero libre
chequear condición del compañero del nuevo bloque o particion formada
0
512
2
6
256
256
128
128
192
192
P3 = 2
8
2
7
2
6
0
512
256
256
128
128
P3 = 2
8
2
7
2
7
METODO DE BUDDY SYSTEM

2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
1
2
4
8
16
32
64
128
256
512
2
0
2
10
2
11
2
12
1024
2048
4096
Cuando se libera un proceso se deben seguir los siguientes pasos
1°
calcular la dirección base del compañero del nuevo bloque
L = P + 2
k
L = 128 + 2
7
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
| 0+0 | 0 |
|---|---|
| 0+1 | 1 |
| 1+0 | 1 |
| 1+1 | 0 |
Direccion base del compañero
0
OR exclusivo
2°
Se debe analizar la memoria y chequear la situacion del bloque cuya direccion base se obtuvo en el paso 1°
Compañero libre
0
512
256
256
128
128
P3 = 2
8
2
7
2
7
0
512
256
256
P3 = 2
8
2
8
METODO DE BUDDY SYSTEM

2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
1
2
4
8
16
32
64
128
256
512
2
0
2
10
2
11
2
12
1024
2048
4096
Cuando se libera un proceso se deben seguir los siguientes pasos
1°
calcular la dirección base del compañero del nuevo bloque
L = P + 2
k
L = 0 + 2
8
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
| 0+0 | 0 |
|---|---|
| 0+1 | 1 |
| 1+0 | 1 |
| 1+1 | 0 |
Direccion base del compañero
256
OR exclusivo
0
0
1
2°
Se debe analizar la memoria y chequear la situacion del bloque cuya direccion base se obtuvo en el paso 1°
Compañero OCUPADO
0
512
256
256
P3 = 2
8
2
8
METODO DE BUDDY SYSTEM
LIBRE

1000
0
0
1018
1018
1000
1002
1004
1006
1008
1010
1012
1014
1016
1018
0
1
2
3
4
5
6
7
8
9
1016
1016
0
8
0
PA
PS
MAR
KVAL
1000
1002
1002
1004
1004
1006
1006
1008
1008
1010
1010
1012
1012
1000
1000
Buddy System
By mbaquinzay
Buddy System
- 375