Вы находитесь на странице: 1из 12

_ SEP DGEST

INSTITUTO TECNOLÓGICO DE ACAPULCO

INGENIERIA EN SISTEMAS COMPUTACIONALES

MATERIA:
COMPUTO DISTRIBUIDO

TEMA
1.1 DISTRIBUCIÓN DE CARGA

PROFESOR:
ÚRZUA OSORIO DAGOBERTO

INTEGRANTES:

GÓMEZ URBANO JESUS 14320976


JIMENEZ ROLDÁN XAVIER SALVADOR 14321000
LEYVA SALMERÓN RONALD OSVALDO 14321002

GRUPO: IS1 AULA: 7LR

ACAPULCO, GRO. AGOSTO DEL 2018.


Contenido

INTRODUCCIÓN ................................................................................................................................... 3
DESARROLLO ....................................................................................................................................... 4
 EL PROBLEMA DE LA DISTRIBUCION DE CARGA..................................................................... 4
 VENTAJAS DE LA DISTRIBUCIÓN DE CARGA ........................................................................... 4
 PROBLEMAS RELACIONADOS CON EL EQUILIBRIO DE CARGA ............................................... 5
 EJEMPLOS DE DISTRIBUCIÓN DE CARGA................................................................................ 5
 TIPOS DE BALANCEO DE CARGA............................................................................................. 6
 BALANCEO DE CARGA ESTÁTICA ............................................................................................ 6
 ALGORITMOS DE EQUILIBRIO DE CARGA ESTÁTICO ..................................................... 7
 ALGORITMO ROUND ROBIN .......................................................................................... 7
 ALGORITMO ALEATORIZADO ........................................................................................ 7
 ADMINISTRADOR CENTRAL (CMA) ................................................................................ 8
 BALANCEO DE CARGA DINAMICO .......................................................................................... 9
 TIPOS DE BALANCEO DE CARGA DINAMICO .......................................................................... 9
 ALGORITMOS DE DISTRIBUCION DE CARGA ........................................................................ 10
 ALGORITMO CENTRAL DE COLA .................................................................................. 10
 ALGORITMO DE COLA LOCAL ...................................................................................... 10
 ALGORITMO DE CONEXIÓN MINIMA .......................................................................... 11
REFERENCIAS BIBLIOGRAFICAS ......................................................................................................... 12
INTRODUCCIÓN

Los sistemas computacionales experimentaron una increíble revolución sin


precedentes. De 1945 a 1985 (la famosa era moderna de las computadoras), éstas
eran grandes y caras. Incluso las minicomputadoras costaban al menos decenas de
miles de dólares. Como consecuencia de los altos costos, muchas empresas tenían
solamente unas cuantas, y debido a la falta de un medio de conexión entre ellas,
operaban de manera independiente.
Afortunadamente, hacia la mitad de la década de 1980, dos avances en la
tecnología comenzaron a cambiar esa situación.
El primero de estos avances fue el desarrollo de poderosos microprocesadores.
Inicialmente, los microprocesadores eran máquinas de 8 bits, pero pronto se
hicieron comunes las CPU de 16, 32 y 64 bits. Muchas de ellas tenían el poder de
una mainframe (es decir, una computadora grande), pero a una fracción de su
precio.
El segundo desarrollo importante fue la invención de las redes de computadoras de
alta velocidad. Las redes de área local, o LAN (local-area networks), permitieron la
interconexión de cientos de máquinas localizadas dentro de un mismo edificio, de
tal manera que fue posible transferir pequeños volúmenes de información entre
máquinas en unos cuantos microsegundos, más o menos.
El resultado de estas tecnologías es que ahora no solamente es factible, sino fácil,
poner a trabajar sistemas de cómputo compuestos por grandes cantidades de
computadoras interconectadas mediante una red de alta velocidad. Por lo general,
a estos sistemas se les conoce como redes de computadoras o sistemas
distribuidos, al contrario de los sistemas centralizados (o sistemas de un solo
procesador) que por lo general constan de una sola computadora, sus periféricos, y
quizás algunas terminales remotas.
DESARROLLO

EL PROBLEMA DE LA DISTRIBUCION DE CARGA


Un programa paralelo se compone de múltiples procesos, cada uno de los cuales
es para llevar a cabo una o más tareas definidas por el programa. Una tarea es la
unidad más pequeña de concurrencia que el programa paralelo puede explotar. Un
proceso es un software abstracto entidad que ejecuta sus tareas asignadas en un
procesador.
Creando un programa paralelo implica primero descomponer el cálculo general en
tareas y luego asignando las tareas a los procesos. Los pasos de descomposición
y asignación juntos a menudo se llaman particionamiento.
El objetivo de optimización para particionar es equilibrar la carga de trabajo entre
procesos y minimizar las necesidades de comunicación entre procesos. Ejecutar un
programa paralelo requiere mapeo los procesos a procesadores disponibles para el
programa. La cantidad de procesos generado por el paso de partición puede no ser
igual al número de procesadores. Por lo tanto, un procesador puede estar inactivo
o cargado con múltiples procesos.
Así pues, se considera que el problema a resolver es dividir en un número fijo de
procesos que pueden ejecutarse en paralelo. Cada proceso realiza una cantidad
conocida de trabajo. Además, se supone que los procesos se distribuyen entre las
máquinas disponibles sin tener en cuenta el tipo de procesador y su velocidad. Sin
embargo, puede ocurrir que algunos procesadores finalicen sus tareas antes que el
resto y queden libres debido a que el trabajo no se haya repartido de una forma
equitativa o porque algunos procesadores sean más rápidos que otros, o por ambas
situaciones. La situación ideal es que todos los procesadores trabajen de una forma
continua sobre las tareas disponibles para conseguir el mínimo tiempo de ejecución.
[1 y 2]

VENTAJAS DE LA DISTRIBUCIÓN DE CARGA


Y entre las principales razones por las cuales se realiza este tipo de distribución,
tenemos:
 Replicación del poder de cómputo. Varios computadores sumados pueden
alcanzar una velocidad de cómputo que nunca se lograría con un súper
computador.
 Razones económicas. Un conjunto de microprocesadores ofrece una mejor
relación precio/rendimiento que un gran mainframe que es 10 veces más
rápido, pero 1000 veces más caro.
 El equilibrio de carga mejora el rendimiento de cada nodo y, por lo tanto, el
sistema general actuación
 El equilibrio de carga reduce el tiempo de inactividad del trabajo
 Los trabajos pequeños no sufren de inanición prolongada
 Aprovechamiento máximo de los recursos
 Mayor rendimiento
 Mayor fiabilidad
 Extensibilidad y crecimiento incremental
[3,4]

PROBLEMAS RELACIONADOS CON EL EQUILIBRIO DE CARGA


Los siguientes problemas se analizan durante el equilibrio de carga:
a) En un entorno distribuido, la comunicación los canales son de banda ancha
finita y las unidades de procesamiento pueden estar físicamente distantes
por lo tanto equilibrio de carga debe tomar la decisión de si permitir la
migración de tareas o no.
b) Un trabajo de computación no puede ser arbitrariamente divisible llevando a
ciertas restricciones en las tareas de división.
c) Cada trabajo consiste en varias tareas más pequeñas y cada de esas tareas
pueden tener diferentes tiempos de ejecución.
d) La carga en cada procesador, así como en la red puede variar de vez en
cuando según la carga de trabajo provocada por los usuarios.
e) La capacidad de los procesadores puede ser diferente de uno al otro en
arquitectura, sistema de operación, CPU velocidad, tamaño de la memoria y
espacio en disco disponible.
Teniendo en cuenta los factores anteriores, el balanceo de carga se puede
generalizar en cuatro pasos básicos:
a) Monitoreo de carga y estado del procesador
b) Intercambio de información de carga y estado entre procesadores
c) Cálculo de la distribución del nuevo trabajo
d) Movimiento de datos real
[5]

EJEMPLOS DE DISTRIBUCIÓN DE CARGA

Los siguientes son algunas formas de equilibrio de carga:

 Migración de datos La capacidad de mover datos (que pueden ser replicados)


en el sistema, según el patrón de acceso de los usuarios.
 Migración de cómputo La capacidad de reubicar procesos para realizar una
redistribución de la carga de trabajo.
 Programación distribuida Esto logra un mejor tiempo de respuesta para el
usuario mediante el uso de potencia de procesamiento inactivo en el sistema
de manera más eficiente
[6]
TIPOS DE BALANCEO DE CARGA
Se han desarrollado tantos algoritmos de equilibrio de carga en los últimos años,
pero no solo el algoritmo es apropiado para todas las aplicaciones. La selección de
un equilibrio de carga apropiado depende de los parámetros de la aplicación como
la calidad de equilibrio, los patrones de generación de carga y también parámetros
de hardware como gastos generales de comunicación. En general, los algoritmos
de equilibrio de carga son de dos tipos:
 El equilibrio de carga estática
 El equilibrio de carga dinámico.

BALANCEO DE CARGA ESTÁTICA

Podemos dar varias definiciones del balanceo de carga dinámica, que algunos
autores manejan, los cuales son:

“La distribución de las tareas se realiza al comienzo de la computación, lo cual


permite al maestro (nodo principal dentro del clúster) participar en la computación
una vez que haya asignado una fracción del trabajo a cada esclavo (el resto de los
nodos de un clúster. Los nodos esclavos obedecen órdenes del nodo maestro). La
asignación de tareas se puede realizar de una sola vez o de manera cíclica”
[3]
“En el algoritmo estático, los procesos se asignan a los procesadores en el momento
de la compilación de acuerdo con el rendimiento de los nodos. Una vez que se
asignan los procesos, no hay cambio o reasignación posible en el tiempo de
ejecución. El número de trabajos en cada nodo se fija en equilibrio de carga estático
algoritmo. Los algoritmos estáticos no recopilan ninguna información sobre los
nodos. En el equilibrio de carga estática, se observa que a medida que el número
de tareas es mayor que los procesadores, mejor será la carga equilibrio.”
[4]
VENTAJAS
1. Tiene retrasos de comunicación mínimos.
2. Los algoritmos son simples y fáciles de implementar.
3. La sobrecarga del sistema se minimiza.

DESVENTAJAS
1. La tarea no se puede migrar durante la ejecución.
2. El rendimiento general del sistema disminuyó debido a fluctuaciones de
carga.
3. Menos útil cuando la tarea tiene una ejecución diferente el tiempo y los
nodos son heterogéneos.

ALGORITMOS DE EQUILIBRIO DE CARGA ESTÁTICO

Entre los diversos algoritmos propuestos mayor carga estática los algoritmos de
equilibrio son los siguientes:

ALGORITMO ROUND ROBIN


Algoritmo Round Robin (RRA) asigna tareas secuencial y uniformemente a todos
los nodos. Todas las tareas son asignadas a los nodos de computación basados en
dicho algoritmo, lo que significa que la elección de los nodos informáticos es
realizada en serie y volverá al primer nodo de computación si el último nodo de
computación ha sido alcanzado. Cada nodo mantiene su índice de carga localmente
independiente de las asignaciones desde el nodo remoto

VENTAJAS
1. La comunicación entre procesos no es requerida.
2. Útil para trabajos de igual tiempo de procesamiento y nodos de las mismas
capacidades.

DESVENTAJAS
1. No es útil cuando las tareas tienen un procesamiento desigual.
2. No es útil cuando los nodos tienen diferentes capacidades tanto de hardware
como software.

ALGORITMO ALEATORIZADO
El algoritmo aleatorizado (RA) usa números aleatorios en el seleccionando de nodos
de computación para procesamiento, sin tener cualquier información sobre el actual
o anterior
cargar en el nodo. Los nodos de computación son seleccionados aleatoriamente
siguiendo números aleatorios generados en base a una distribución estadística.

VENTAJAS
1. Funciona bien para un propósito especial particular de aplicaciones.
2. No se requiere comunicación entre procesos.

DESVENTAJAS
1. No se considera una solución elegante.
2. Tiempo máximo de respuesta entre todos los algoritmos.
ADMINISTRADOR CENTRAL (CMA)
En cada paso en el Algoritmo del Administrador Central (CMA), el nodo central
selecciona el nodo esclavo para que se le asigne una tarea. Se selecciona el nodo
esclavo con menos carga. El nodo central mantiene el índice de carga de todos los
nodos esclavos conectados a ella. Cada vez que se cambia la carga, se envía un
mensaje por los nodos esclavos al nodo central. La carga administrador toma
decisiones de equilibrio de carga en función de la información de carga del sistema,
que permite la mejor decisión con el proceso creado.

VENTAJAS
1. Se desempeña bien cuando las actividades dinámicas son creadas por
diferentes hosts.

DESVENTAJAS
1. CMA necesita un alto nivel de inter proceso comunicación.
2. Puede ocasionar un cuello de botella

[5]
BALANCEO DE CARGA DINAMICO

Durante el equilibrio de carga estática, demasiada información sobre el sistema y


los trabajos debe ser conocido antes de la ejecución. Esta información puede no
estar disponible por adelantado. Entonces nace el balanceo de carga dinámico, el
cual trata de mejorar las deficiencias de la carga dinámica. Podemos dar varias
definiciones de la carga dinámica, las cuales son:

“La asignación de trabajos se realiza en el tiempo de ejecución. En Los trabajos de


Distribución de Carga Dinámica se reasignan en el tiempo de ejecución,
dependiendo de la situación en que se encuentre la carga transferido desde nodos
muy cargados a los nodos con poca carga. En este caso la comunicación sobre las
cabezas ocurre y se vuelve más cuando aumenta el número de procesadores.”
[4]

“Este tipo de balanceo de carga se trata durante la ejecución de procesos. Con el


balanceo de carga dinámico todos los inconvenientes que presenta el balanceo de
carga estático se tienen en cuenta. Esto es posible porque la división de la carga
computacional depende de las tareas que se están ejecutando y no de la estimación
del tiempo que pueden tardar en ejecutarse. Aunque el balanceo de carga dinámico
lleva consigo una cierta sobrecarga durante la ejecución del programa, resulta una
alternativa mucho más eficiente que el balanceo de carga estático”.
[2 y 7]

TIPOS DE BALANCEO DE CARGA DINAMICO

Este tipo de balanceo se puede clasificar en dos categorías:


 Centralizados: Son aquellos en los que un nodo central se encarga de todo
el peso del algoritmo, es el que tiene toda la información acerca del estado
del resto de los nodos y el que toma las decisiones pertinentes. Los demás
nodos, por lo tanto, sólo tienen información de ellos mismos, y solo se
comunican con el nodo central para informar acerca de su estado. Esta
arquitectura es conocida como Master-Slave. Estos algoritmos tienen la
ventaja de su gran sencillez y de su eficiencia con un número reducido de
nodos, pero son mayores las desventajas, como ser que el nodo central se
transforme en un cuello de botella para el sistema y el problema que esto
representa, al poseer un límite en su grado de escalabilidad.

 Distribuidos: Son aquellos en los que no existe un nodo central, sino que
todos los nodos tienen información del estado del sistema y toman sus
propias decisiones, dependiendo tanto de su propio estado como del estado
del sistema en general. Estos algoritmos son más complicados que los
centralizados y se genera una mayor cantidad de mensajes entre nodos, pero
son muchísimo más eficientes porque eliminan los problemas de
escalabilidad y los cuellos de botella, al no haber un nodo central que cargue
con la responsabilidad de la administración del trabajo del resto de los nodos
que conforman el sistema distribuido. Otra dificultad adicional es que al tener
todos los nodos información del sistema, puede haber problemas de
coherencia al estar replicada la información.
[8]

ALGORITMOS DE DISTRIBUCION DE CARGA

ALGORITMO CENTRAL DE COLA


El Algoritmo Central de cola almacena nuevas actividades y solicitudes no
realizadas en una cola FIFO (Primero en entrar, primero en salir) cíclica en el
principal anfitrión. Cada nueva actividad que llega al administrador de colas es
insertada en la cola. Entonces, siempre que una solicitud de la actividad es recibida
por el administrador de colas, elimina la primera actividad de la cola y la envía al
solicitante.
Si no hay actividades listas en la cola, la solicitud es amortiguada, hasta que haya
una nueva actividad disponible. Cuando la carga de un procesador cae por debajo
del umbral, el administrador de carga local envía una solicitud para una nueva
actividad a el administrador de carga central. El administrador de carga central
responde la solicitud de inmediato si hay una actividad lista encontrado en la cola
de solicitud de proceso, o pone en cola la solicitud hasta que llegue una nueva
actividad. Esto es un proceso centralizado de algoritmo iniciado y necesita alta
comunicación entre nodos.

ALGORITMO DE COLA LOCAL


Este algoritmo admite la migración entre procesos. El concepto principal del
algoritmo de cola local es la asignación estática de todo proceso nuevo, cuando su
carga cae por debajo de la predefinida del número mínimo de procesos listos

Inicialmente, los nuevos procesos creados en el host principal son asignado en


todos los hosts bajo carga. A partir de entonces, todos los procesos creados en el
host principal y todos los demás hosts son asignado localmente.

Cuando el host local está bajo de carga, solicita las actividades desde los hosts
remotos. Los hosts remotos buscan su lista local de actividades listas y compara el
número local de actividades listas con el recibido número. Si el primero es mayor
que el segundo, entonces algunas de las actividades se transmiten al host
solicitante y obtienen el reconocimiento del anfitrión.

Este es un algoritmo de cooperación distribuido y requiere comunicación entre


procesos, pero menor en comparación con algoritmo central de cola.
ALGORITMO DE CONEXIÓN MINIMA
Este algoritmo decide la distribución de carga sobre la base de las conexiones
presentes en un nodo. El equilibrador de carga realiza un seguimiento de la cantidad
de conexiones asociadas a cada nodo y selecciona el nodo con el menor número
de conexiones para transferencia de carga.
El número aumenta cuando se establece una nueva conexión y disminuye cuando
la conexión finaliza o expira.
Los métodos de conexión mínima funcionan mejor en entornos donde los nodos
tienen capacidades similares. La Carga del desequilibrio puede ser causado cuando
las tareas son de diferentes duraciones porque el conteo de conexiones solo no
tiene en cuenta ese escenario muy bien

[5]
REFERENCIAS BIBLIOGRAFICAS

[1] Cheng Zhong Xu y Francis C. M. Lau. "Load balancing in parallel computers,


theory and practice". Kluwer Academic Publishers, 1997.
[2] Couloris, Dollimore,Kingberg, “Sistemas Distribuidos Conceptos y diseño”,
Addison Wesley, 2001
[3] Patricia Bazan. “Aplicaciones, servicios y procesos distribuidos una visión para
la construcción de software”. Editorial de la Universidad de Plata. 2017
[4] Md. Firoj Ali, Rafiqul Zaman Khan, “The Study on Load Balancing Strategies in
distributed computing system, International Journal of Computer Science &
Engineering Survey (IJCSES) Vol.3”, No.2, April 2012
[5] Monika Kushwaha y Saurabh Gupta, Various Schemes of Load Balancing in
Distributed Systems- A Review, International Journal of Scientific Research
Engineering & Technology (IJSRET), ISSN 2278 – 0882 Volume 4, Issue 7, July
2015
[6] Ajay D.Skemkalyani y Mukesh Singhal. “Distributed Principles, Algorithms and
Systems Computing. Cambridge University Press 2008
[7] Andrea Mesa Munera, Método Para El Manejo Del Balanceo De Carga En
Sistemas De Cómputo Distribuido De Alto Desempeño, Universidad Nacional De
Colombia Sede Medellín Facultad De Minas Escuela De Sistemas Medellín, 2009
[8] Carlos Troncoso Ricardo Maicas, Distribución de la Carga y Migración de
Procesos en Sistemas Distribuidos, Departamento de Computación Facultad de
Ciencias Exactas y Naturales Universidad de Buenos Aires, 2003

Вам также может понравиться