Está en la página 1de 6

SYSTEM BUDDY

UNIVERSIDAD NACIONAL DEL ALTIPLANO DE PUNO

ESCUELA PROFECIONAL INGENIERIA DE SISTEMAS

ADELADIA ROCIO CAHUANA VILCA

adelaidarcv@gmail.com

1. RESUMEN systems, virtual memory based on paging

El sistema Buddy es un compromiso and segmentation is superior. The

razonable para eliminar las desventajas de disadvantages of an active participation

los esquemas de particionamiento tanto fijo, scheme that can limit the number of active

como variable, pero en los sistemas processes and can use inefficient space if

operativos contemporáneos, la memoria there is an incorrect adjustment between the

virtual basada en paginación y available partition sizes and the sizes of the

segmentación es superior. Las desventajas processes; A dynamic partitioning scheme

de un esquema de particionamiento fijo es is more complex to maintain and includes

que limita el número de procesos activos y the overload of compaction.In this article

puede utilizar el espacio ineficiente si existe we see the most in-depth explanation of

un mal ajuste entre los tamaños de partición how the twin policy works. You can also

disponibles y los tamaños de los procesos; see an example of it and thus be able to give

un esquema de particionamiento dinámico a better understanding of what is the policy

es más complejo de mantener e incluye la of twins.

sobrecarga de la compactación.En el Key words: monitor, partitioning,


presente artículo se verá la explicación más compaction.
a fondo de cómo funciona la política de
2. LA POLITICA BUDDY
gemelos. También se verá un ejemplo del
SYSTEM
mismo y así poder dar un mejor
entendimiento de lo que es la política de El Buddy System es un esquema para la
gemelos. gestión de la partición de memoria que trata
de encontrar un equilibrio entre los
Palabras clave: monitorearse,
esquemas de partición estáticos (limitan el
particionamiento, compactación.
número de procesos activo y pueden utilizar
ABSTRACT el espacio ineficientemente si hay poca

The buddy system is a reasonable concordancia entre los tamaños de las

compromise to eliminate the disadvantages particiones disponibles y los tamaños de los

of both fixed and variable partitioning procesos) y dinámicos (más complejo de

schemes, but in contemporary operating


mantener y incluye la sobrecarga de
compartir). Conseguir_hueco(i)

En un Buddy System, los bloques de {


K
memoria disponibles son de tamaño 2 ,
Ifi = (U+1))
para valores de K tal que L ≤ 𝐾 ≤ 𝑈 y
Fallo;
donde: 2L = tamaño de bloque más pequeño
asignable, 2U = tamaño de bloque más If(lista I vacia)

grande asignable (generalmente, 2U es el {n Conseguir_hueco(i+1);

tamaño de memoria completa disponible Dividir el huec en colegas (buddies);


para asignación o gestión). Poner colegas (buddies) en lista i;
}
Para empezar, el espacio entero disponible
Coger el primer hueco en la lista i;
para la asignación se trata como un solo
}
bloque de tamaño 2U. Si se hace una
solicitud de tamaño s tal que 2U-1 < s ≤ 2 U,
La mejor estructura de datos para
entonces el bloque entero se asigna. En otro
implementar este esquema de partición es
caso, el bloque se divide en dos colegas
un árbol binario, donde los nodos hoja
(buddies) de igual tamaño 2U-1. Si 2U-2 < s ≤
representan la partición actual de la
U-1
2 , entonces la solicitud se asigna a uno
memoria, si dos colegas (buddies) están en
de los dos colegas. Si no, uno de los colegas
nodos hoja, entonces el menos uno de ellos
se divide por la mitad nuevamente. Este
esta asignado; en otro caso, se liberaría
proceso continua hasta que el bloque más
para
pequeño sea mayor o igual que s,
generándose y asignándose a la solicitud. que quedara solo el nodo padre de ambos

En cualquier instante, el Buddy System (unirían en un bloque mayor).

mantiene una lista de huecos (bloques no 3. BUDDY SYSTEM


asignados) para cada tamaño 2. Un hueco RETARDADO
puede eliminarse de la lista (i+1) Esta técnica e la que adopta SVR4.
dividiéndolo en dos mitades para crear dos Los autores observan que UNIX
colegas (buddies) de tamaño 2 en la lista i., exhibe, a menudo, un
se elimina de la lista y se unen en un solo comportamiento estable en la
bloque de la lisa (i +1). Dada una solicitud demanda de memoria del kernel, es
para una asignación de tamaño k, tal que 2i- decir, la cantidad de demandas para
i
1 < k ≤ 2 , para encontrar un hueco de bloques de un tamaño determinado
i
tamaño 2 se utiliza el siguiente algoritmo varían lentamente en el tiempo. De
recursivo: esta forma, si se libera un bloque de
tamaño 2I e inmediatamente se une
con su colega (buddy) en un bloque como anticipación de futuras
de tamaño 2i+1, el kernel puede, a demandas de un bloque de ese
continuación, hacer una solicitud tamaño. Se cumple la siguiente
de un bloque de tamaño 2 que relación: Ni = Ai +Gi +LI.
necesariamente divide de nuevo el
bloque mayor. Para evitar estas En general, el Buddy System
uniones y divisiones innecesarias, retardado trata de mantener una
el Buddy System retardado difiere reserva de bloques libres
la unión hasta que parezca que sea localmente y solamente invoca
necesaria, y entonces se une tantos uniones si el número de bloques
bloques como sea posible. libres localmente excede un
umbral. Si hay demasiados bloques
El Buddy System retardado utiliza libres en el siguiente nivel para
los siguientes parámetros: I) Ni = satisfacer las demandas. L mayor
número actual de bloques de parte del tiempo, mientras los
tamaño 2; (2) Ai = número actual de bloques estén libres, no se produce
bloques de tamaño 2i que están la unión, para que la sobrecarga de
asignados (ocupados); (3) Gi = operaciones y contabilidad se
numero de bloques de tamaño 2 que minimicen. Cuando un bloque vaya
están libres globalmente; estos son a ser asignado, no se distingue si se
bloques elegibles para la unión; si hace de entre los bloques libres
el colega (buddy) de un bloque de local o globalmente, también esto
este tipo se convierte en un bloque minimiza la contabilidad. El
libre globalmente, entonces los dos criterio utilizado para la unión es
bloques se unirán en un bloque libre que el número de bloques libres
globalmente de tamaño 2i+1. Todos localmente de untamaño dado no
los bloques libres (huecos) en el excedan del número de bloques
Buddy System estándar se podrían asignados de este tamaño ( es decir,
considerar libre globalmente; (4) debe ser If ≤ Ai). Esta es una guía
.Li = número actual de bloques de razonable para restringir el
tamaño 2 que están libres crecimiento de los bloques libres
localmente; estos bloques no son localmente, confirmándose que ese
elegibles para la unión. Aunque, el esquema genera un notable ahorro.
colega de estos bloques se Para implementar este esquema, se
convierta en libre, los dos bloques muestra el algoritmo,
no se unen. Mas bien, los bloques
libres localmente quedan retenidos
Di =0, // Después de una operación el valor
4. PARTICIONES DINÁMICAS
de Di se actualiza como sigue:
 Divide la memoria física en
If(siguiente operación es una solicitud de
particiones de tamaño variable
asignación de bloque)
{ if (existe algún bloque libre){  Cada proceso recibe partición del
Seleccionar uno para asiganrlo; tamaño que necesita
If (bloque seleccionado esta localmente  Numero de procesos en memoria es
libre) variable
Di 0Di+2;
 Mas eficiente pero mas caro de
Else Di =Di +1;}
implementar
Else{
Conseguir dos bloques dividiendo en dos
 Fragmentación externa
uno más grande (operación recursiva);  Pérdida de memoria entre procesos
Asignar uno y marcar el otro libre en memoria
localmente; • Memoria tiende a
// Di no cambia, aunque puede cambiar a
fragmentarse
otros tamaños de bloque por la llamada
• Cada vez mas difícil ubicar
recursiva}}
un proceso
If (siguiente operación es una solicitud de
bloque libre){  Requiere de compactación
If(Di >2) • Proceso especial del S.O.
{ que reordena procesos en
Marcarlo libre localmente y liberarlo memoria
localmente;
 Ejecución periódica o guiada por
Di =Di -2;
umbral
{ else
if (Di=1){
 Sobrecarga de trabajo adicional
Marcarlo libre globalmente, liberarlo • Menor rendimiento del
globalmente y unirlo si es posible; sistema
Di=0;
} else{
If (Di=0) {

Marcarlo libre globalmente, liberarlo


globalmente y unirlo si es posible;
Seleccionar un bloque de tamal 2i y liberarlo
globalmente y unirlo si es posible;
Di=0;}
}
}
}
No es estrictamente que haya concurrencia, A CONCLUSIONES
pero se puede sacar partido de ella
Crear un sistema de amigos para un nuevo
empleado requiere algo de inversión y debe
manejarse con cuidado. Sin embargo, no es
difícil o costoso implementar este tipo de
programa. Las reglas son simples:
asegúrese de haber elegido un amigo
dispuesto y competente; crear el conjunto
mínimo de documentación; y revisarlo al
contratar nuevas personas. Establezca una
fecha de finalización para la relación de
compañero formal. Esté atento a las cosas
que no funcionan para que pueda guiar tanto
. a los empleados experimentados como a los
nuevos. Un nuevo empleado tendrá que
En un sistema buddy, los bloques de
hacer preguntas de todos modos, así que
memoria disponibles son de tamaño 2^k, L
asegúrese de tener un sistema efectivo para
<= K <= U, donde:
lidiar con esas preguntas. Un sistema de
2^L = bloque de tamaño más pequeño amigos puede reducir drásticamente el
asignado tiempo que un nuevo empleado requiere

2^U = bloque de tamaño mayor asignado; para ser productivo y conducir a una mayor

normalmente 2^U es el tamaño de la retención. Un efecto secundario de un

memoria completa disponible. programa de amigos es que proporciona un


foro para el intercambio de conocimientos y
Para comenzar, el espacio completo el reconocimiento positivo para el
disponible se trata como un único bloque de compañero. Proporcionar a la nueva
tamaño 2^U. Si se realiza una petición de contratación un compañero de trabajo
tamaño s, tal que 2^U-1 < s <= 2^U, se también puede complementar a la PMO y a
asigna el bloque entero. En otro caso, el los miembros del equipo al liberarlos para
bloque se divide en dos bloques buddy. que se centren en el trabajo sustantivo en
iguales de tamaño 2^U-1, entonces se lugar de tomarse el tiempo para responder
asigna la petición a uno de los otros dos
preguntas administrativas sencillas.
bloques. En otro caso, uno de ellos se divide
por la mitad de nuevo. Este proceso
continua hasta que el bloque más pequeño
mayor o igual que s se genera y se asigna a
la peticion.
Bibliografia Greif, G. (2009). Buddy System:
Dhotre, I. (2005). Operating Systems. Understanding Male Friendships.
India: Technical Publications. USA: Oxford University Press.