Sei sulla pagina 1di 18

Direccin general de educacin superior

tecnolgica
Instituto Tecnolgico De Acapulco

Ingeniera En Sistemas Computacionales

Materia: Computo Distribuido

Horario: 07:00 08:00

Aula: 705

Investigacin:

1.1- Distribucin de cargas

Profesor: Urza Osorio Dagoberto

Alumno: Carbajal Saturnino Juan Luis


No. Control: 12320686
ndice General

Distribucin de carga..........................................................................................................3

Algoritmos estticos y dinmicos...................................................................................4

Funciones generales:.....................................................................................................6

Tareas y procesos en sistemas distribuidos...................................................................7

Hilos en sistemas distribuidos........................................................................................8

Conclusin........................................................................................................................15

Bibliografa........................................................................................................................16

Tabla de Ilustraciones

Ilustracin 1 Las Relaciones Entre Clientes, Polticas y Recursos en el Problema de


Manejo de Recursos........................................................................................................13
Distribucin de carga.

[ 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.

El mecanismo de distribucin de la carga implementado se ha inspirado en un algoritmo


propuesto por Kang Shin y YiChieh Chang en su trabajo sobre Carga Compartida en
Sistemas Distribuidos.

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.

Hay en la actualidad varios modelos establecidos de gestin de recursos,


Cliente/Servidor, tipo UNIX y el gestor por Modelo orientado a Objetos.

El gestor de una arquitectura Cliente/Servidor se implementa en una capa intermedia o


del lado del cliente, y administra recursos en una cardinalidad n:n. En cambio un gestor
tipo UNIX administra recursos bajo la jerarqua de root (aunque puede trabajar como
cliente -servidor). Por su parte en un gestor Orientado a Objetos cada recurso es visto
como un objeto, unvocamente identificado, y mvil, mediante la nomenclatura de
clases.
En la actualidad el problema del balanceo de carga ha sido abordado desde diferentes
enfoques, con el propsito de disminuir al mximo el tiempo de ejecucin de las
aplicaciones ejecutadas. Aunque la carga de trabajo en un S.O.D. est planificada de
antemano, sigue siendo un problema complejo, debido a la dificultad para lograr que
las
propuestas en las distribuciones de carga de trabajo sean fcilmente escalables, o que
puedan correrse sobre sistemas heterogneos. En general se recurre a la simplificacin
de trabajar con clsteres homogneos (mquinas con software o hardware semejantes)
y no al contrario.
El objetivo de un mtodo de distribucin de carga por gestin de recursos es efectuar el
balanceo de carga en sistemas de cmputo distribuido, empleando tcnicas propias de
la computacin paralela o multiprocesador.

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:

1.- Planificacin Global.

2.- Planificacin Interna.

Adicionalmente puede ejecutar tareas de migracin de procesos e identificacin de


nodos desocupados, siendo ms un coordinador, ya que cada nodo se encarga de
gestionar sus propias comunicaciones.

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:

1. Justicia o Imparcialidad en el acceso a recursos. Todos los procesos deben ser


tratados de la misma forma, y en algn momento obtienen su turno de ejecucin
o ventanas sucesivas peridicas de tiempo de ejecucin hasta su terminacin
exitosa.

2. Maximizar la el procesamiento de datos de la aplicacin. El sistema debe de


finalizar el mayor nmero posible de transacciones u operaciones por unidad de
tiempo.

3. Maximizar el Tiempo de Respuesta: Cada usuario o proceso debe observar que


el sistema les responde tarde o temprano a sus requerimientos.

4. Evitar el aplazamiento indefinido o ejecuciones inviables. Los procesos deben


terminar en un plazo finito de tiempo.
5. Que el sistema sea predecible. Ante cargas de trabajo ligeras el sistema debe
responder rpido y con cargas pesadas debe ir degradndose segn clculos
establecidos. Otro punto de vista de esto es que si se ejecuta el mismo proceso
en diversos nodos del sistema, la respuesta en todos los casos debe ser similar.

Hilos en sistemas distribuidos.

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.

Un aspecto importante es que si un hilo de un programa necesita un dato para


continuar ejecutndose, est en situacin de hacer una llamada bloqueante, por cuya
respuesta tendr que esperar sin poder hacer nada mientras tanto. Por el contrario
unas llamadas no bloqueantes al sistema consiste en que ste devuelve una especie de
excepcin indicando cundo la informacin solicitada no est disponible; ms esto no
es 100% seguro, porque aunque la aplicacin no se detiene, la llamada se atender por
completo en un momento futuro y solicitar la recepcin de la respuesta al proceso en
forma asncrona, que es a fin de cuentas un bloqueo parcial, o en una llamada
bloqueante, que detendr el proceso.

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.

Un hilo es un segmento de cdigo que se ejecuta en forma paralela o concurrente con


el programa que lo mand llamar, lo que le permite llevar a cabo tareas de software de
manera independiente, sin distraer el flujo de ejecucin de los mdulos principales del
programa, sino que se delega en subrutinas que corren en su propio contexto, paralelo
e independiente; por lo tanto no son afectadas por el overhead de la aplicacin
principal.

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.

Desarrollar navegadores multihilos simplifica este hecho de forma considerable. Tan


pronto como llega la pgina principal se pueden activar hilos que se encarguen de
recuperar las dems partes. Cada hilo establece su propia conexin con el servidor.
Mientras tanto el usuario advierte el retardo en las imgenes pero puede ir explorando
el documento; pero si el servidor est saturado o es lento no se observarn mejoras
notables en el rendimiento.
Cuando se usan clientes multihilos cada conexin puede ir a una rplica diferente del
mismo servidor.
En este caso los distintos archivos se transmiten en paralelo asegurando que la pgina
WEB completa se despliega en un tiempo ms corto.
Servidores Multihilos.
El principal uso de la tecnologa multihilos est del lado del servidor. Bsicamente
buscan mejorar el desempeo (an en servidores monoprocesador) y la forma cmo se
estructura el servidor. Por ejemplo, en general un servidor de archivos espera una
peticin de entrada para una operacin de archivo, posteriormente ejecuta la peticin
(operacin bloqueante al disco) y luego enva la respuesta de regreso. Tenemos la
alternativa del Modelo Servidor/Trabajador; Las peticiones son enviadas por los
clientes hasta el servidor. Despus de examinar la peticin el hilo servidor elige un hilo
trabajador sin utilizar y le encarga la peticin. El hilo trabajador realiza la lectura, lo cual
puede provocar que se suspenda hasta que los datos sean recuperados. Si el hilo se
suspende, el procesador, selecciona otro para su ejecucin.
Uno de los principales aspectos para obtener un buen rendimiento de estos sistemas es
la distribucin de carga.

Es un componente muy importante, ya que de l depende el buen uso que se hace de


la capacidad global de rendimiento del sistema (eficiencia). El rendimiento global
depende en gran medida del algoritmo elegido para la distribucin de carga.

La distribucin de carga es el mtodo para que los sistemas distribuidos obtengan el


mayor grado de eficiencia posible. La distribucin de carga consiste en el reparto de la
carga entre los nodos del sistema para que la eficiencia sea mayor. La carga se
distribuye y se traslada de los nodos ms cargados a los nodos menos cargados del
sistema. Con esto se consigue una reduccin del tiempo de ejecucin de las tareas en
el sistema distribuido, y se consigue aproximar el tiempo de finalizacin de la ejecucin
de las tareas de cada uno de los nodos, es decir, se consigue que los nodos terminen
de ejecutar al mismo tiempo, y que no haya grandes diferencias entre el trmino de
uno de ellos y l de los dems. Con todo esto se consigue que no haya nodos
sobrecargados, y otros libres de trabajo, porque estos nodos sobrecargados
trasladaran parte de su trabajo a esos otros nodos ms libres de trabajo.

Los algoritmos de distribucin de carga se basan en unos componentes, que marcan


las diferencias entre unos algoritmos y otros:
Poltica de informacin: La cul decide qu tipo de informacin debe recoger de
los nodos, de qu nodos debe recoger sta informacin, y cundo debe
recogerla.
Poltica de transferencia: Decide si cada uno de los nodos es apto o no para
llevar a cabo una transferencia, tanto de emisor como de receptor.
Poltica de seleccin: Decide cul es la carga que se va a transferir en una
transferencia.
Poltica de localizacin: Localiza el nodo adecuado para realizar una
determinada transferencia.
De ste aspecto depende en gran medida el rendimiento global, ya que dependiendo de
la eleccin del algoritmo de distribucin, se puede conseguir que todos los nodos del
sistema estn trabajando en todo momento para minimizar el tiempo de ejecucin de
los procesos, o una mala eleccin del algoritmo de distribucin puede hacer que tan
solo unos pocos nodos estn sobrecargados mientras que otros no tengan nada de
trabajo.

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:

Centralizado vs Distribuido: Las polticas centralizadas son aquellas en las que la


informacin se concentra en una nica ubicacin fsica, que toma todas las
decisiones de planificacin. Esta solucin presenta problemas de cuellos de
botella, y tiene un lmite en su grado de escalabilidad. Por otro lado las polticas
distribuidas son aquellas en las que la informacin est repartida entre los
distintos nodos, y las decisiones son tomadas entre todos. Los problemas son
que la informacin puede no ser coherente, se replica la informacin y necesita
ms comunicaciones.
Estticas vs Dinmicas: Las polticas estticas toman decisiones de forma
determinista o probabilstica 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 falla al ajustar las fluctuaciones
del sistema. Las polticas dinmicas utilizan informacin sobre el estado del
sistema para tomar decisiones, por lo que potencialmente mejoran a las polticas
estticas mejorando la calidad de las decisiones. Incurren en mayor sobrecarga
al tener que recoger informacin de estado en tiempo real.
Todos estos conceptos y otros ms son los que habr que tener en cuenta para llegar a
disear un algoritmo de distribucin de carga, para un sistema distribuido, que consiga
obtener el mayor rendimiento global posible de dicho sistema.

El balanceo de carga es parte del amplio problema de asignacin de recursos. El


problema de balanceo de carga (llamado algunas veces planificacin distribuida) es
cmo distribuir procesos entre los elementos de procesamiento conectados por una red
para equilibrar la carga de trabajo entre ellos y lograr algunas metas de desempeo
tales como: minimizar el tiempo de ejecucin, minimizar los retardos de comunicacin,
y/o maximizar la utilizacin de recursos.
Mientras la comparticin de carga usa migracin de procesos solamente cuando hay
un procesador ocioso, el balanceo de la carga debe de requerir migracin aun cuando
un nodo no este ocioso. Antes de entrar de lleno en el balanceo de carga, se deben
clarificar tres trminos bsicos que son de uso comn en la literatura: balanceo de
carga, planificacin distribuida y asignacin de recursos.
A menudo existe una distincin implcita entre esos conceptos, pero la pregunta sera,
existe alguna distincin real entre ellos?. Dando un vistazo al problema de manejo de
recursos propuesto por Casavant y Kuhl 1988. Se Recuerda que el manejo de recursos
es una poltica para acceder y usar recursos efectiva y eficientemente por los clientes
(procesos y objetos activos). Esto es, en este problema se pueden distinguir los
siguientes componentes: clientes, recursos y polticas.

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.

La asignacin de recursos esta principalmente envuelta en la planificacin de trabajos y


recursos perifricos en el procesador. La planificacin distribuida hace referencia a un
conjunto de polticas y mecanismos que gobiernan el orden en que se ejecutan los
trabajos. Un planificador es un mecanismo que selecciona el siguiente trabajo que hay
que admitir en el sistema y el siguiente trabajo que hay que ejecutar.

El balanceo de carga es la parte de la poltica de planificacin distribuida que es


responsable de la distribucin de la carga del sistema entre los elementos de
procesamiento a travs de la migracin de procesos. Esto es, el balanceo de carga
fuertemente refleja los requerimientos del cliente. Sin embargo, describe el hecho de
que balancear la carga es un trmino reducido ms que planificacin distribuida, porque
este refleja y cubre diferentes enfoques.
Conclusin

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

Aroquipa, E. T. (s.f.). http://www.unap.edu.pe. Obtenido de


http://www.unap.edu.pe/cidiomas/licing/pdf/sd.pdf

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.

Potrebbero piacerti anche