algoritmos distribuidos

Post on 17-Feb-2016

55 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Algoritmos distribuidos para los que deseen saber mas del tema

TRANSCRIPT

ALGORITMOS DISTRIBUIDOSDr. Dennis Barrios Aranibardennisbarrios@gmail.com

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

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

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

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

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]

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)

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

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

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

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

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.

top related