Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
tecnolgica
Instituto Tecnolgico De Acapulco
Aula: 705
Investigacin:
Distribucin de carga..........................................................................................................3
Funciones generales:.....................................................................................................6
Conclusin........................................................................................................................15
Bibliografa........................................................................................................................16
Tabla de Ilustraciones
[ CITATION Car03 \l 2058 ]. El ansia por obtener ms potencia de cmputo ha sido una
de las principales causas del gran desarrollo de las computadoras en los ltimos aos.
El estudio de los sistemas distribuidos, pretende satisfacer los deseos y necesidades de
procesamiento a gran escala, y en las consecuentes mejoras en los tiempos de
cmputos. En todo ambiente de procesamiento distribuido, resulta importante asegurar
que la carga de trabajo sobre cada nodo de la red est adecuadamente balanceado.
Este trabajo presenta una completa implementacin de un mecanismo de distribucin
de carga dinmico y descentralizado.
En un sistema distribuido, un nodo del sistema podra estar desocupado, mientras que
otros podran estar teniendo una pesada carga de trabajo. Entonces puede resultar de
gran ayuda si utilizramos una estrategia de distribucin de carga para eliminar estas
desparejas relaciones de carga. Para poder utilizar de manera eficiente los recursos de
computacin provistos por un sistema distribuido, un mecanismo de distribucin de
carga debera estar presente dentro del esquema de ejecucin del sistema. Por eso es
que la distribucin de la carga en un muy importante aspecto dentro de estos sistemas.
Hay distintas maneras de resolver el problema del equilibrio de carga en un sistema
distribuido. Dependiendo de cmo est administrada la informacin y como sea la
arquitectura del mecanismo de distribucin de la carga, podemos encontramos con
algoritmos centralizados y algoritmo s distribuidos.
Algoritmos estticos y dinmicos.
Centralizados: Son aquellos en los que un nodo central se encarga de todo el peso del
algoritmo, es el que tiene toda la informacin acerca del estado del resto de los nadas y
el que toma las decisiones pertinentes. Los dems nadas, por 10 tanto, slo tienen
informacin 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 algoritmo
s tienen la ventaja de su gran sencillez y de su eficiencia con un nmero reducido de
nadas, 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
lmite en su grado de escalabilidad.
Distribuidos: Son aquellos en los que no existe un nodo central, sino que todos los
nadas tienen informacin 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 ms complicados que los centralizados y se genera una mayor cantidad
de mensajes entre nadas, pero son muchsimo ms 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 administracin del trabajo del resto de los nadas
que conforman el sistema distribuido.
Otra dificultad adicional es que al tener todos los nadas informacin del sistema, puede
haber problemas de coherencia al estar replicada la informacin.
Estticos: Son aquellos en los que se toman decisiones a priori, de forma determinista
o probabilstica, antes de comenzar a ejecutar la aplicacin y sin tener en cuenta el
estado actual del sistema. Esta solucin puede ser efectiva cuando la carga se puede
caracterizar suficientemente bien antes de la ejecucin, pero no es realmente eficiente
si se producen numerosos cambios en el estado del sistema.
Dinmicos: Son aquellos en los que se utiliza la informacin del estado del sistema
para tomar decisiones, por lo que potencialmente mejoran a los algoritmo s estticos al
mejorar la calidad de las decisiones. Sin embargo, se produce una pequea
penalizacin, debido a la sobrecarga producida por la necesidad de tener que recoger
informacin del estado del sistema en tiempo real.
Un elemento que hemos ido delineando para los sistemas operativos distribuidos, como
alternativa al uso del administrador de procesos es un mdulo que haga las veces de
ste; lo denominaremos Gestor de recursos, es el mdulo que atiende y administra un
conjunto de recursos de un tipo particular. Para cada conjunto de recursos existe un
nmero de polticas diferentes, pero tambin caractersticas comunes, de tal suerte que
pueden agruparse en tareas de ste gestor.
Para disear u operar un Gestor de Recursos, vale la pena distinguir entre los diversos
tipos de clster existentes con el fin de entender su funcionamiento bsico para as
verificar si es posible implementarlos o combinarlos.
Funciones generales:
Segn algunos autores, existen dos formas de balanceo de carga: balanceo de carga
esttico y balanceo de carga dinmico. En el primer caso, la distribucin de las tareas
se realiza al comienzo de la computacin, lo cual permite al nodo maestro participar en
las tareas de procesamiento de datos una vez que haya asignada una fraccin del
trabajo a cada nodo esclavo. La asignacin de tareas se puede realizar de una sola vez
o de manera peridica. El segundo caso, el balanceo de carga dinmico, es muy til
cuando el nmero de tareas es mayor que el nmero de procesadores disponibles o
cuando el nmero de tareas es desconocido al comienzo de la aplicacin. Una
caracterstica importante del balanceo de carga dinmico es la capacidad que tiene la
aplicacin de adaptarse a los posibles cambios del sistema, no slo a la carga de los
procesadores sino tambin a posibles reconfiguraciones de los recursos del sistema.
Si se tiene esta caracterstica, por ejemplo un clster puede responder bastante bien
cuando se produce el fallo de algn nodo, ya que el proceso de reasignacin de su
carga es rutinario; esto simplifica la creacin de aplicaciones tolerantes a fallos que
sean capaces de sobrevivir cuando se pierde algn esclavo o incluso el maestro.
Tareas y procesos en sistemas distribuidos.
La planificacin del procesador consiste de las tcnicas para decidir los tiempos de
CPU y la asignacin de procesos en bloque, conocidos como tareas. A su vez las tareas
se integran bajo el concepto de trabajos, que mide el procesamiento por unidad de
tiempo. Como puede verse estos conceptos corresponden a 3 Niveles de planificacin,
que tienen una naturaleza simblica creciente. Generalmente se identifican tres niveles:
el alto, en medio y el bajo. El nivel alto decide cmo poner a trabajar los conjuntos de
procesos (tareas), escogiendo aquellos en una competencia por los recursos del
sistema; el nivel intermedio decide que procesos se suspenden o reanudan para lograr
ciertas metas de rendimiento, mientras que el planificador de bajo nivel es el que decide
qu proceso listo (y que en algn momento paso por los otros dos planificadores) es al
que le toca pasar a ejecucin.
Una estrategia de planificacin busca que a los procesos les toquen sus turnos de
ejecucin oportunamente, sin que esto signifique una sobrecarga de trabajo para el
planificador mismo. En otras palabras tenemos que limitar la complejidad del
planificador a riesgo de que consuma tantos recursos que degraden las prestaciones
del sistema. En general, se tienen cinco objetivos:
En los S.O.C. cada proceso tiene un espacio de memoria asignado y un flujo simple de
control de ejecucin, pero en un S.O.D. se prefiere tener mltiples flujos de control
compartiendo un espacio de direccionamiento de recursos, corriendo en un esquema
cuasi paralelo; por ello es apropiado hacer una implementacin usando hilos y
multihilos.
Esta propiedad vuelve a los hilos particularmente atractivos para su uso dentro de
sistemas distribuidos. Una llamada bloqueante se queda esperando a ser atendida es
como una llamada telefnica, en cambio llamada no bloqueante es como un mensaje
de correo, y esto opera en ambos sentidos de la comunicacin.
Los HiIos tambin son conocidos como procesos ligeros o contextos de ejecucin.
Tpicamente, cada Hilo controla un nico aspecto dentro de un programa; pero todos
los hilos pueden compartir recursos, al contrario de los esquemas monolticos de
administracin de procesos en donde cada uno tiene su propia copia de cdigo y datos.
Un ejemplo ilustrar mejor cmo funcionan los multihilos, supongamos que tenemos
una aplicacin servidor, que tiene un hilo-receptor que coloca todas peticiones entrantes
en una cola que es atendida por los hilos-trabajadores. Supongamos que cada
solicitud toma 2ms para ser procesada y 8ms de Entrada/Salida. SI tenemos un slo
hilo-trabajador, entonces el mximo flujo de salida de peticiones atendidas es de 100
por segundo; ya que cada solicitud tarda 2ms + 8ms = 10mseg, en ser atendida.
Si el mismo sistema lo atiende un servidor multihilos, consideremos que pasara si
agregamos un hilo ms (2 hilos -trabajadores en total).
El segundo hilo puede procesar una segunda solicitud mientras el primero est
bloqueado esperando la respuesta; en el mejor de los casos, ste segundo hilo puede
ejecutar sus 2ms de procesamiento mientras el primer hilo espera los 8 segundos de
entrada/salida.
Al calcular el flujo de salida, consideramos que los 2ms de procesamiento ocurren de
manera concurrente, entonces en promedio cada solicitud toma en promedio 8ms, lo
cual da un flujo de 125 peticiones por segundo.
Los sistemas operativos generalmente implementan hilos de dos maneras:
1.- Multihilo Apropiativo.
Permite al sistema operativo determinar cundo debe haber un cambio de contexto.
La desventaja de esto es que el sistema puede hacer un cambio de contexto en un
momento inadecuado, causando un fenmeno conocido como inversin de prioridades
y otros problemas.
2.- Multihilo Cooperativo.
Depende del mismo hilo abandonar el control cuando llega a un punto de detencin, lo
cual puede traer problemas cuando el hilo espera la disponibilidad de un recurso.
Clientes Multihilos.
Sirven para esconder la latencia de comunicacin a travs de la red. Por ejemplo
algunos Navegadores WEB, porque muchos casos una pgina WEB consiste de un
texto plano con mltiples figuras de contenido distribuido; entonces, con frecuencia el
navegador, establece la conexin con el servidor, recupera y comienza a desplegar la
pgina HTML (incluso se permite al usuario el desplazamiento dentro de la pgina en
carga) mientras el navegador continua recuperando otros archivos que conforman la
pgina.
Esa es la funcin principal que debe llevar a cabo el algoritmo de distribucin de carga,
hacer que todos los nodos estn trabajando mientras que haya algn proceso
pendiente, y sea posible ejecutar dicho proceso en varios nodos consiguiendo una
disminucin en el tiempo de proceso. Hay algunos casos en los que el algoritmo de
distribucin no debe repartir carga entre los dems nodos ya que el tiempo de ejecucin
de dicho proceso puede ser tan pequeo, que si se repartiera entre los nodos se
perdera demasiado tiempo en la comunicacin y el resultado sera un tiempo de
ejecucin mayor.
El algoritmo de distribucin debe tener en cuenta todos estos detalles. Pero adems
existen varias polticas que hay que definir para llegar a elegir un algoritmo de
distribucin eficiente:
Ilustracin 1 Las Relaciones Entre Clientes, Polticas y Recursos en el Problema de Manejo de Recursos
Si se observa el comportamiento del sistema ilustrado en la Figura desde el punto de
vista de los recursos, se ve el problema de asignacin de recursos. Por otra parte, el
comportamiento del sistema desde el punto de vista de los clientes lleva al problema de
planificacin, en ambientes distribuidos se le conoce como el problema de planificacin
distribuida. La asignacin de recursos y la planificacin son dos trminos que describen
el mismo problema de manejo de recursos pero de dos puntos de vista diferentes.
En un sistema distribuido, un nodo del sistema podra estar desocupado, mientras que
otros podran estar teniendo una pesada carga de trabajo. Entonces puede resultar de
gran ayuda si utilizramos una estrategia de distribucin de carga para eliminar estas
desparejas relaciones de carga. Para poder utilizar de manera eficiente los recursos de
computacin provistos por un sistema distribuido, un mecanismo de distribucin de
carga debera estar presente dentro del esquema de ejecucin del sistema. Por eso es
que la distribucin de la carga en un muy importante aspecto dentro de estos sistemas.
Hay distintas maneras de resolver el problema del equilibrio de carga en un sistema
distribuido. Dependiendo de cmo est administrada la informacin y como sea la
arquitectura del mecanismo de distribucin de la carga, podemos encontramos con
algoritmos centralizados y algoritmo s distribuidos.
Atendiendo a la toma de decisiones se encuentran los algoritmos estticos frente a los
dinmicos.
Bibliografa
Coulouris, G., Dollimore, J., & Kindberg, T. (2001). Sistemas Distribuidos: Conceptos y
Diseo 3era Edicin. Madrid, Espaa: PEARSON EDUCACIN, S. A.
Enslow, P. H. (1978). IEEE Computer Vol 11. En P. H. Enslow, IEEE Computer Vol 11
(pgs. 13-21).
Schreder, J. (2003). Modelling, State Observation and Diagnosis of. Berlin: Springer-
Verlag.