Tipos de Algoritmos

July 5, 2022 | Author: Anonymous | Category: N/A
Share Embed Donate


Short Description

Download Tipos de Algoritmos...

Description

 

 

Introducción Muchos algoritmos distribuidos requieren que un proceso actúe como coordinador, iniciador, o que represente algún papel en especial. En general, no importa qué proceso tenga esta responsabilidad especial, pero alguno tiene que realizarla. En esta sección veremos algoritmos para elegir un coordinador (y utilizaremos éste como un nombre general para el proceso especial). Si todos los  procesos son exactamen exactamente te iguales, iguales, sin características características que que los distingan, distingan, no hay hay manera manera de seleccionar seleccionar a uno para que sea el especial. En consecuencia, supondremos que cada proceso tiene un número único, por ejemplo, su dirección de red (por simplicidad, supondremos un proceso por máquina). En general, la elección de algoritmos intenta localizar el proceso que tenga el número más grande y designarlo como coordinador. Los algoritmos difieren en la forma en que efectúan la localización. Muchas aplicaciones y servicios distribuidos se basan en la existencia de un proceso diferenciado que coordina el trabajo de un conjunto de procesos. En todas estas situaciones se requiere detectar que el  proceso coordinado coordinadorr falla y elegir elegir un nuevo proceso que asuma el papel de coordinador. coordinador. La La elección elección requiere el acuerdo sobre quién va a ser el nuevo y único coordinador. De nuevo, las decisiones se  basan en en la existencia existencia de plazos para para la recepción recepción de los mensajes mensajes de respuesta. Por otra parte, para determinar el criterio de elección de un proceso como coordinador se requiere definir un orden total entre el conjunto de procesos. Supondremos que los procesos tienen asociados identificadores únicos según los cuales pueden ordenarse.

elección n tradicional Algoritmo de elecció Comencemos analizando dos algoritmos tradicionales de elección para tener una idea de lo que han estado haciendo grupos completos de investigadores en las décadas pasadas. En secciones posteriores veremos las nuevas aplicaciones para el problema de elección.

  Algoritmo de Bully



El algoritmo abusón es un método, dentro de la computación distribuida, para la elección dinámica de un coordinador según el ID de los procesos. El proceso con el ID mayor será seleccionado como el coordinador del sistema distribuido. Tipos de mensaje:

  Mensaje de Elección: Enviados para comunicar que se va a seleccionar un nuevo



coordinador. ✓  Mensaje de Respuesta: Encargados de responder al mensaje de elección. ✓  Mensaje de Coordinador: Enviado para comunicar el ID del proceso seleccionado. Como primer ejemplo, consideremos el algoritmo del abusón, concebido por GarcíaMolina (1982). Cuando cualquier proceso advierte que el coordinador ya no está respondiendo peticiones, inicia una elección. elección. Un proceso, P, celebra una elección de la siguiente manera: 1. P envía un mensaje m ensaje de ELECCIÓN a todos los procesos con números superiores. 2. Si ningún proceso responde, P gana la elección y se convierte en el coordinador.

 

3. Si uno de los procesos pro cesos superiores responde, toma el mando. El trabajo de P está hecho. En cualquier momento, un proceso puede recibir un mensaje de ELECCIÓN de alguno de sus colegas con número menor. Cuando llega un mensaje de este tipo, el destinatario envía un mensaje de OK de vuelta al remitente para indicarle que está activo y que tomará el control. El destinatario celebra entonces una elección, a menos que ya tenga una. En algún momento, todos los procesos se rinden menos uno, que es entonces el nuevo coordinador. Éste anuncia su victoria enviando un mensaje a todos los procesos en el que les indica que a partir de ese momento es el nuevo coordinador. Si un proceso que previamente había fallado se recupera, celebra una elección. Si sucede que el proceso con el número más grande está en ejecución, él ganará la elección y asumirá el trabajo del coordinador. Así, el muchacho más grande del pueblo siempre gana, de ahí el nombre de “algoritmo del abusón”.

A)

C)

B)

D)

 

E) 

  Procesos:

Si un proceso sabe que tiene el ID más alto: ✓  Se elige a sí mismo coordinador enviando el mensaje coordinador a todos los procesos cuyo ID sea más bajo (proceso abusón). Si no tiene el ID más alto: ✓  Multidifunde el mensaje de elección entre todos los procesos con el ID más alto y espera un mensaje respuesta. 1.  Si tras un tiempo T no recibe ningún mensaje respuesta, se elige a si mismo como coordinador. 2.  Si recibe un mensaje respuesta, espera un mensaje coordinador. o  Si recibe un mensaje coordinador, almacena el ID del nuevo coordinador. Si no recibe ningún mensaje, comienza una nueva elección. o  Si un proceso se recupera, o se lanza un proceso sustituto con el mismo ID, éste comienza una nueva elección, aunque el coordinador actual esté funcionando. Características:

  Cumple la Pervivencia del sistema distribuido, ya que todos t odos los procesos conocen el



ID del coordinador al finalizar el proceso de elección. ✓  Presenta algunos problemas de Seguridad del sistema distribuido: 1.  Si se cae el proceso P (coordinador), pero se recupera al mismo m ismo tiempo que otro proceso Q decide ser el coordinador, algún proceso puede recibir dos mensajes coordinador con distintos IDs. 2.  Los valores de los tiempos de espera son imprecisos im precisos (el sistema no es síncrono).

  Rendimiento del sistema distribuido



Mejor caso El proceso con el segundo ID más alto detecta

Peor caso

El proceso con el ID más bajo detecta el fallo

el fallo del coordinador N-2 mensajes coordinador

del coordinador O(N2)

 

 

  Algoritmo de Anillo



Otro algoritmo de elección se basa en el uso de un anillo. A diferencia de algunos algoritmos de anillo, éste no utiliza un token. Suponemos que los procesos están física o lógicamente ordenados, de tal forma que cada proceso sabe cuál es su sucesor. Cuando cualquier proceso advierte que el coordinador no funciona, elabora un mensaje de ELECCIÓN que contiene su propio número de proceso y envía el mensaje a su sucesor. Si el sucesor falló, el remitente lo salta y se dirige al siguiente miembro del anillo, al siguiente después de él, hasta que localice un proceso en ejecución. En cada paso del camino, el remitente agrega su propio número de proceso a la lista del mensaje para volverse un candidato a elegir como coordinador. En algún momento, el mensaje regresa r egresa al proceso que inició todo. Ese proceso reconoce este evento cuando recibe un mensaje entrante que contiene su propio número de proceso. En ese punto, el tipo de mensaje cambia a COORDINADOR y circula una vez más, esta vez para informar a todos que es el coordinador (el miembro de llaa lista con el número mayor) y cuáles son los miembros del nuevo anillo. Cuando este mensaje ha circulado una vez, es eliminado y todos vuelven al trabajo.

 

 

Algoritmo del anillo Este algoritmo fue desarrollado por Chang y Roberts en 1974, el cual utiliza el “principio de extinción selectiva”.  Este algoritmo se usa en las siguientes circunstancias:

1.1.

-

Los procesos están organizados, en cualquier orden, en un anillo.

-

No conoce el número total de procesos.

-

Cada proceso se comunica con su vecino.

Descripción

Muchas aplicaciones y servicios distribuidos se basan en la existencia de un proceso diferenciado que coordina el trabajo de un conjunto de procesos. En todas estas situaciones se requiere detectar que el proceso coordinador falla y elegir un nuevo proceso que asuma el papel de coordinador. La elección elección requiere el acuerdo sobre quién va a ser el nuevo y único coordinador. De nuevo, las decisiones se basan basan en la existencia de plazos para la recepción de los mensajes de respuesta. A diferencia de algunos algoritmos de anillo, éste no utiliza un token. Suponemos que los procesos están física o lógicamente ordenados, de tal forma que cada proceso sabe cuál

 

es su sucesor. Cuando cualquier proceso advierte que el coordinador no funciona, elabora un mensaje de ELECCIÓN que contiene su propio número de proceso y envía el mensaje a su sucesor. Si el sucesor falló, el remitente lo salta y se dirige al siguiente miembro del anillo, al siguiente después de él, hasta que localice un proceso en ejecución. En cada paso del camino, el remitente agrega su propio número de proceso a la lista del mensaje para volverse un candidato a elegir como coordinador. En algún momento, el mensaje regresa al proceso que inició todo. Ese proceso reconoce este evento cuando recibe un mensaje entrante que contiene su propio número de proceso. En ese punto, el tipo de mensaje cambia a COORDINADOR y circula una vez más, esta esta vez para informar a todos que es el coordinador (el miembro de la lista con el número mayor) y cuáles son los miembros del nuevo anillo. Cuando este mensaje ha circulado una vez, es eliminado y todos vuelven al trabajo.

Se puede ver en la imagen anterior lo que ocurre si dos procesos, 2 y 5, descubren simultáneamente que el coordinador anterior, el proceso 7, ha fallado. Cada proceso elabora un mensaje de ELECCIÓN y comienza a circular su mensaje, de modo independiente uno de otro. En algún momento, ambos mensajes recorrerán todo el camino, y tanto el proceso 2 como como el 5 los convertirán en mensajes de COORDINADOR COORDINADOR con exactamente los mismos miembros y en el mismo orden. Cuando ambos hayan hecho el recorrido nuevamente serán eliminados. Tener más mensajes en circulación no ocasiona daños; a lo sumo, consume un poco de ancho de banda, pero no se considera un desperdicio. 1.2.

Funcionamiento

 

 

•  Utiliza un sistema síncrono síncrono.. Cada proceso tiene un canal con el siguiente

proceso en el anillo. Los mensajes circulan en sentido de las agujas del reloj.   •  El proceso que inicia el algoritmo se m marca arca como participante y

envía su identificador en un mensaje de elección a su vecino.  •  Cuando un proceso re recibe cibe un mensaje de eelección lección compara compara eell ident identificador ificador rec recibido ibido

con el suyo.  •  Si es m menor enor el recib recibido ido y el proceso no es un participante,

s u s t i t uy e e l i de denn t i fi c ad o r e n el men ensa sajje por por el suy uyoo y lo re reen enví víaa al veci vecinno oy se marca como participante.  •  Si es mayor el recibido, reenvía el mensaje y se marca como participante.  •  Si es menor e ell recibido y eell proceso es un participante, no hace nada (no en envía vía ningún ningún

mensaje).  •  Si e ell identificador coincide coincide con el del proceso, ese proceso es el líder.  •  El líder se m marca arca como no participante y envía un m mensaje ensaje elegido al sigu siguiente iente

proceso.  •  Cuando un proceso distinto a all líder recibe este mensaje, anota qué

proceso es el líder y reenvía el mensaje. 

 

 

A tomar tomar mu muyy encuentra encuentra eenn la implem implementación entación:: Cuand Cuando o un proceso proceso P Pii sosp so spec echa ha qu quee el coordinador falla, envía a su sucesor P(i+1) mod N un mensaje de elección que contiene el identificador de Pi. Si Pi+1 no responde (ACK), Pi repite el envío a Pi+2y así hasta que encuentra un proceso que confirma la recepción.  

ALGORITMO DE BULLY En sistemas distribuidos puede haber una necesidad de una operación para ser ejecutada exclusivamente exclusi vamente por un proceso. Para que un algoritmo de abusón sea realizado, se elegirá elegirá un proceso que será res responsable ponsable de la ope operación. ración. El algoritmo Bully es un algoritmo aplicado en sistemas distribuidos (sistemas compuestos por más de un nodo de cálculo) para elegir al coordinador. Para ello a grandes rasgos se puede decir que para aplicar este algoritmo cada

 

nodo proceso tiene un número de identificación ID. Cuando se inicia un proceso de elección de coordinador mediante envió de mensajes entre los nodos acaba por establecer el coordinador aquel aquel que tiene un ID más alto. Por ejemplo un algoritmo de bully se identifica por: -  Tener el propós propósito ito de elegir un líd líder er en sistemas sistemas distribuidos. -  Sus procesos son identificados por un único número, y es atribuido antes del inicio de bully. Busca elegir un proceso de mayor identificador, para que todos reconozcan al nuevo líder INCIDENCIAS: El algoritmo algoritmo de bully también llamado abusón en ingles ingles,, fue descubierto en el año de 1982 por HECTOR GARCIA MOLLINA, PROFESOR DEL DEPARTAMENTO DE CIENCIA Y COMPUTACION EN INGENIERIA ELECTRICA, POR LA UNIVERSIDAD DE STANFORD. - 

Por este motivo (siempre manda el de número más alto) se llama Bull y, abusón en inglés   El sistema es síncrono y utiliza tiempo de espera para la identificación identificación de fallos



en los procesos. •

  algoritmo. Se permite que los procesos se bloqueen/caigan durante la ejecución del   La entrega de mensajes entre procesos se supone fiable.   Los IDs de los l os procesos deben ser conocidos.





Comparación con el Algoritmo en Anillo:    Se supone que el sistema es síncrono.   Utiliza el tiempo de espera para detectar fallos/ fallos/caídas caídas en los procesos.   Cada proceso conoce qué procesos tienen el ID más alto que el suyo y puede

• •



comunicarse con ellos. ellos.1 

 

Tipos de mensaje    Mensaje de Elección: Enviados para comunicar que se va a seleccionar un



nuevo coordinador.   Mensaje de Respuesta: Encargados de responder al mensaje de elección.   Mensaje de Coordinador: Enviado para comunicar el ID del proceso

• •

seleccionado.

Como funciona :   Cuando un proceso P detecta que el coordinador actual, por mensaje de



tiempo de espera o fallo, está caído o bloqueado, se encarga de iniciar unas elecciones, este procedimiento se encargará de elegir el nuevo coordinador realizando las siguientes acciones: (Hay que tener en cuenta que es posible que varios procesos puedan descubr descubrir ir la caída del coordinador de forma concurrente).

1. P emite un mensaje de elección a todos los demás demás procesos con ID de proceso más alto, esperando un "estoy aquí" (mensaje de respuesta u OK) como respuesta de los procesos aún activos. 2. Si P no recibe ninguna contestación de algún proceso cuyo ID sea superior, automáticamente es elegido como coordinador y multidifunde al resto de procesos que es el nuevo coordinador (mensaje (mensaje de coordinador). coordinador). 3. Si P recibe una contestación de un proceso con ID más alto, P espera una cierta cantidad de tiempo para que el proceso multidifunda el mensaje comunicando al resto de procesos que ahora es él el coordinador. Si no recibe este mensaje a tiempo, reenvía el mensaje de elección. 4. Si P recibe un mensaje de elección de otro proceso con un ID menor, envía un mensaje "estoy aquí" de vuelta y empieza de nuevo la elección de coordinador. Aquél proceso con identificador más alto (el más "grandullón") es el que se hace coordinador. De esto le viene el nombre al algoritmo - un proceso con un ID más alto intimida a un proceso con un ID más bajo. Hay que tener en cuenta que si P recibe un mensaje de coordinador de un proceso con un ID más bajo, inmediatamente inmediatam ente inicia una nueva elección.  



 

El Proceso 4 detecta que el Coordinado Coordinadorr (Proceso 7) está caído.  



El Proceso 4 notifica a los procesos con un ID superior que el Coordinador está caído.  



Los procesos que están vivos y han recibido el mensaj mensaje, e, devuelven un OK.  



Los Procesos 5 y 6 repiten los pasos efectuados efectuados por el Proceso 4.

 

 



El Proceso 6 envía OK al proceso 5 y detecta que es el proceso con mayor ID.  



Como el Proceso 6 es el que tiene el mayor ID se proclama Coordinador y se lo comunica al resto de procesos. PROCESOS: Si un proceso sabe que tiene el ID más alto:   Se elige a sí mismo coordinador enviando el mensaje coordinador a todos los



procesos cuyo ID sea más bajo (proceso abusón). Si no tiene el ID más alto:   Multidifunde el mensaje de elección entre todos los procesos con el ID más



alto y espera un mensaje respuesta. 1. Si tras un tiempo T no recibe ningún mensaje respuesta, se elige a si mismo como coordinador. 2. Si recibe un m mensaje ensaje respuesta, espera un mensaje coordinador.   Si recibe un mensaje coordi coordinador, nador, almacena el ID del nuevo coordinador.   Si no recibe ningún mensaj mensaje, e, com comienza ienza un una a nueva nueva elección. •



Si un proceso se recupera, o se lanza un proceso sustituto con el mismo ID, éste comienza una nueva elección, aunque el coordinador actual esté funcionando. VENTAJAS:

 

  Es simplificado DESVENTAJAS: o  Tiene grandes tráfico de redes o  Mucho tiempo gasta pa para ra escoger un nuevo coordinador. o

CARACTERÍSTICAS.   Cumple la Permanencia la Permanencia del sistema distribuido, ya distribuido, ya que todos los l os procesos



conocen el ID del coordinador coordinador al finalizar el proceso de elección.

  Presenta algunos problemas de Seguridad de  Seguridad del sistema distribuido: distribuido:  



1. Si se cae el proceso P (coordinador), pero se recupera al mismo tiempo que otro proceso Q decide ser el coordinador, algún proceso puede recibir dos mensajes coordinador con distintos IDs. 2. Los valores de los tiem tiempos pos de espera son im imprecisos precisos (el sistem sistemaa no es síncrono). II.

Conclusiones

Para decidir sobre el valor de variables u otros asuntos debemos elegir un nodo coordinador. Los algoritmos de elección buscan el nodo con id más alto mediante comunicación en anillo o multidifusión (bully). La sincronización entre procesos con frecuencia requiere que uno de los procesos actúe como coordinador. En los casos donde el coordinador no es fijo, es necesario que los procesos de un cálculo distribuido decidan qué proceso será el coordinador. Tal decisión se toma mediante algoritmos de elección. Los algoritmos de elección se utilizan básicamente en los casos donde el coordinador puede fallar. Sin embargo, también pueden aplicarse para la selección de superpuntos en sistemas punto a punto. En general, la elección de algoritmos intenta localizar localizar el proceso que tenga el número más grande y designarlo como coordinador. El objetivo de un algoritmo de elección es garantizar que cuando inicie una elección, ésta concluya con todos los procesos de acuerdo con el que será el nuevo coordinador.

 

  Elecciones en sistemas de gran escala (Joel)

Durante la última década hemos presenciado el crecimiento explosivo de sistemas distribuidos de gran escala, con cientos, miles o millones de usuarios conectados. Desde telefonía y televisión sobre IP hasta juegos online y redes sociales, estas aplicaciones se han movido con vertiginosa velocidad de narrativas de ciencia ficción y bosquejos de diseño a componentes asumidos de nuestro contexto diario. La creciente inter-conexión y la capacidad potencialmente ilimitada de nuestros dispositivos computacionales han redefinido el “borde” de la red de estos sistemas, de universidades y laboratorios de investigación, a nuestras casas, autos y bolsillos. Este curso revisa ideas y proyectos investiga investigando ndo las implicaciones de estos cambios “demográficos”, inclu yendo los retos que presentan a nuestras ideas sobre el diseño, implementación implementación y evaluac evaluación ión de sistem sistemas as distribuidos. distri buidos. El objetivo principal del curso es prepararlos para hacer investigación en el área general de sistemas distribuidos y redes; con esto en mente, el curso cubre también temas generales tales como formas de leer y presentar artículos, la generación, critica, y comunicación de ideas de investigación, comunidades comunidades y sus conferencias, etc. Recomendaciones

Evitar las fuentes de retraso que pueden ser: sobrecarga de puntos hacia un solo superpunto, esto quiere decir que se repartan uniformemente los puntos a los superpuntos

Asignación para el laborator laboratorio. io. Los sistemas UNIX proporcionan muchas facilidades para man-tener las computadoras en sincronía, de manera notable la combinación de la herramienta Crontab (la cual permite agendar automáticamente las operaciones) y varios comandos de sincronizaciónresulta poderosa. Configure un sistema UNIX que mantenga exacto el tiempo local dentro del rangode un solo segundo. De igual forma, configure una herramienta automática de respaldo mediante laque cierto número de archivos cruciales se transfieran automáticamente a una máquina remota unavez cada 5 minutos. Su solución debe ser eficiente con respecto al uso del ancho de banda.

 

No es lo mismo decir punto a punto, que súper punto a varios puntos, bajo esa premisa se entiende entiende que la gran escala se manifiesta con un superpunto, asi también con un grupo de superpuntos que tiene como requisitos principales: 1

Los nodos normales deben tener acceso de baja latenci latenciaa a los superpuntos.

2.

Los superpuntos deben distribui distribuirse rse uniformemente a través de la red

3.

sobrepuesta. Debe haber una porción predefin predefinida ida de superpuntos, relativa al número total de nodos de la red sobrepuesta. sobrepuesta.

4. Cada superpunto no debe necesitar servir a más de un número fijo de nodos normales. Por fortuna estos requisitos son fáciles de cumplir con los sistemas punto a punto que son las bases de los Superpuntos a punto Por fortuna, estos requerimientos son relativamente fáciles de cumplir en la mayoría de los siste-mas punto a punto, dado que la red sobrepuesta es estructurada (como en los sistemas basados enDHT), o aleatoriamente no estructurada (como, por ejemplo, ejemp lo, puede notarse en las soluciones basa-das en el gossip). Demos un vistazo vi stazo a las soluciones propuestas por Lo y colaboradores (2005).En el caso de los sistemas basados en DHT, la idea básica es reservar una fracción del espacioidentificador para los superpuntos. Recuerde que en los sistemas basados en DHTcada nodo reci-be un identif i dentificador icador de M bits que es asignado aleatoria y uniformemente. Ahora suponga que reser-vamos los primeros k bits (es decir, los que están más a la izquierda) para identificar superpuntos.Por superpuntos. Por ejemplo, si ecesitamos N superpuntos superpuntos,, entonces los primeros [log2( N )] bits de cualquier cualquier clave puede ut utilizarse ilizarse para identi identificar ficar a estos nodos.

Bibliografía

• 

Mendoza Gatica, M. (2013). Algoritmo Algoritmo de Elección en Anillos [Blog]. Disponible een: n: http://distribui2.blogspot.pe/2013/06/de-anillo-de-fichas-los-procesos-estan.html

• 

Tanenbaum, A. (2008) SISTEMAS DISTRIBUIDOS Principios pios y Paradigmas. Estado de México, México: Pearson Educación

 

• 

Santamaría, R. (s.f.). Sistemas Distribuidos Coordinación y Acuerdo. [ebook] Rodrigo Santamaría.

Disponible

en:

http://vis.usal.es/rodrigo/documentos/sisdis/teoria/6-

coordinacion.pdf [20 Feb. 2018]. • 

Sistemas

Distribuidos

Sincronización

[ebook].

(s.f.).

Disponible

http://www.dia.eui.upm.es/asignatu/sis_dis/Paco/Sincronizacion.pdf [20 Feb. 2018].   Hector Garcia-Molina, Elections in a Distributed Distributed Computing System, IEEE



Transactions on Computers, Vol. C-31, No. 1, January (1982) 48-59   G. Colouris, J. Dollim Dollimore, ore, T. Kindberg and G. Blair. Distributed Systems: Concepts and Design (5th Ed). AddisonAddison-Wesley. Wesley.



  2011https: 2011https://youtu.be/K //youtu.be/K44x_VQmUs8 44x_VQmUs8tt



en:

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF