algoritmos distribuidos

12
ALGORITMOS DISTRIBUIDOS Dr. Dennis Barrios Aranibar [email protected]

Upload: yhonatan-robles

Post on 17-Feb-2016

55 views

Category:

Documents


0 download

DESCRIPTION

Algoritmos distribuidos para los que deseen saber mas del tema

TRANSCRIPT

Page 1: Algoritmos Distribuidos

ALGORITMOS DISTRIBUIDOSDr. Dennis Barrios [email protected]

Page 2: Algoritmos Distribuidos

QUÉ ES PROGRAMACIÓN CONCURRENTE?

Programa “ordinario” Programa Concurrente

Declaraciones

.

.

.

Instrucciones

Ejecución Secuencial

Declaraciones

.

.

.

Instrucciones

Declaraciones

.

.

.

Instrucciones

Declaraciones

.

.

.

Instrucciones

...

Ejecución en Paralelismo Abstracto

Page 3: Algoritmos Distribuidos

SINCRONISMO Es importante que:

Varios procesos no accesen a un recurso compartido al mismo tiempo

Aceso exclusivo temporal Algunos procesos pueden necesitar ponerse

deacuerdo en el orden de ejecución de ciertos eventos

Page 4: Algoritmos Distribuidos

ALGORITMOS DE ELECCIÓN Se requiere de un processo que actue

como: Coordinador Iniciador Ejecute algun rol especial

El objetivo de la elección es que cuando la misma concluya, todos los procesos debe estar de acuerdo en quien debe ser el coordinador

Bully Algorithm – Algoritmo Abusón Ring Algorithm – Algoritmo basado en anillo

Page 5: Algoritmos Distribuidos

BULLY ALGORITHM Garcia-Molina 1982 Sistema Síncrono

Timouts para fallas Conocimiento de los

otros procesos ID de los mayores

Permite la caida de procesos durante elección

Construcción de detector de fallas T = 2*Ttrans + TProcesa

4

1

2

63

5

0

7

4

1

2

63

5

0

7X

4

1

2

63

5

0

7X

ElecciónElección

Elección

4

1

2

63

5

0

7X

Ok

Ok

4

1

2

63

5

0

7XElección

4

1

2

63

5

0

7XOk

4

1

2

63

5

0

7X

Coordinador

Page 6: Algoritmos Distribuidos

RING ALGORITHM Chang y Roberts

1979 pi tiene un canal de

comunicación con el siguiente proceso del anillo, p(i+1) mod N

Supuestos No hay fallas Sistema asíncrono

Se elige el proceso con identificador mas grande

4

1

2

63

5

0

7X[5]

[5,3]

[5,3,4][5,3,4,1]

[5,3,4,1,2]

[5,3,4

,1,2,6

]

[5,3,4,1,2,6,0]

[5,3,4,1,2,66,0]

[5,3,4,1,2,66,0]

[5,3,4,1,2,66,0] [5,3,4,1,2,66,0]

[5,3,4,1,2,66,0]

[5,3,4,1,2,66,0][5,3,4,1,2,66,0]

Page 7: Algoritmos Distribuidos

ALGORITMOS DE CONSENSO Consenso frente a caídas o fallas bizantinas Cuando existe replicación se debe llegar a un consenso para saber que información se envia Problemas:

Sensores replicados no necesariamente dan el mismo valor Sensor malogrado o procesador que falla

Como lograr consenso Cada proceso elige un valor inicial y Se requiere que todos los procesos decidan por uno de esos valores

Fallas Por caídas: proceso no envia mensajes Bizantinas: proceso envia mensajes arbitrarios

Algoritmo de una ronda Algoritmo de los generales bizantinos Algoritmo del rey (King Algorithm)

Page 8: Algoritmos Distribuidos

ALGORITMO DE UNA RONDA Si unos cuantos caen no

se llega a consenso Cada uno hace su tabla

de valores escojidos por los otros

1

2 3

A-

A

A

B

B

-AB AAB

B A

Page 9: Algoritmos Distribuidos

ALGORITMO DE LOS GENERALES BIZANTINOS

Se ejecutan mas rondas Primera ronda: igual a

anterior Segunda Ronda: enviar

a cada proceso la elección de los otros

1

2 3

A-

A

A

B

B

3:B

1:-

2:A

1:AAAB AAB

A A

Page 10: Algoritmos Distribuidos

ALGORITMO DEL REY Requiere menos mensajes

que el algoritmo de los generales bizantinos

En cada ronda un proceso recibe el titulo de rey y su voto vale mas

Algoritmo Cada general almacena el

voto de la mayoria en la primera ronda

Segunda ronda: Cuando el nodo recibe el plan

del rey Si mi mayoria es amplia:

>(n/2)+1 considerar mi voto mayoria

Caso contrario considerar voto del rey

Tercera ronda: Repetir segunda ronda con otro

rey

1

2 3

4 5

A:1B:0

A

A:1B:0

A

A:1B:0

A

A:1B:0

A

A:1B:0

A:1B:1

B

A:1B:1

B

A:1B:1B

A:1B:1

B

A:1B:1

Page 11: Algoritmos Distribuidos

BIBLIOGRAFIA UTILIZADA Distributed Systems: Principles and

Paradigms (Prentice Hall) Andrew S. Tanembaum Maarten Van Sten

Principles of Concurrent and Distributed Programming (Adison Wesley) M. Ben-Ari

Page 12: Algoritmos Distribuidos

TRABAJO EN GRUPO (GRUPOS DE 4) Realizar un trabajo sobre programación con

hebras en: Java C++ con POSIX Threads sobre Linux Las librerias process.h y windows.h para C/C++

en Windows La MFC de Microsoft Visual Studio

Presentar un informe Realizar una presentación con Slides, la cual

será expuesta por un miembro del grupo elegido al azar.