You are on page 1of 64

Sistemas Distribuidos

Algunos esquemas de esta presentacin estn tomados de:


A.Silberschat, P.Galvin, G.Gagne Operating System
Concepts 6 edicin, cuyo copyright pertenece a John Wiley &
Sons, INC. 2003.

CC331

HOD

Estructura de SD

Un SD es un conjunto de procesadores
dbilmente acoplados, interconectados por una
red de comunicaciones
Dbilmente acoplados, significa que los
procesadores no comparten memoria ni reloj
Recurso remotos y locales
Razones para construir SD

CC331

Comparticin de recursos
Aceleracin de clculos compartir carga
Confiabilidad
Comunicacin
HOD

Estructura de SD (I)

CC331

HOD

Tipos de Sistemas Operativos


Distribuidos

Sistemas operativos de red


Usuarios conscientes de multiplicidad de
mquinas
El acceso a los recursos remotos es explcito
Por ej. telnet, ftp, etc.
Los archivos no se comparten realmente
(copias)
Peligro de inconsistencias y desperdicio de
espacio

CC331

HOD

Tipos de SO Distribuidos (I)

Sistemas operativos distribuidos


Usuarios no son conscientes de la
multiplicidad de mquinas
Acceso a recursos remotos similar al acceso
a recursos locales
Migracin de datos y procesos de una
instalacin a otra estn bajo el control del
SO distribuido

CC331

HOD

SO Distribuidos

Migracin de datos
Transferir todo el archivo a la instalacin
local, todo acceso posterior es local
(Andrew)
Una vez utilizado, se devuelve una copia del
archivo (si existe modificacin)
O transferir slo las porciones del archivo
necesarias para la tarea actual (NFS)
Se devuelve una copia de cada porcin
modificada

CC331

HOD

SO Distribuidos (I)

Migracin de clculos
Transferir el clculo en vez de los datos
Ejemplo,
aplicacin que necesita varios
archivos de gran tamao para generar algn
resumen
Mediante
una llamada a procedimiento
remoto
O mediante mensaje de instalacin para
crear un nuevo proceso

CC331

HOD

SO Distribuidos (II)

Migracin de procesos

Ejecutar un proceso completo o parte de l en


diferentes mquinas:

CC331

Equilibrio de carga, distribucin de procesos para


nivelar la carga de trabajo
Aceleracin
de
clculos,
subprocesos
pueden
ejecutarse concurrentemente sobre varias mquinas
Preferencias de hardware, la ejecucin del proceso
puede necesitar un procesador especializado
Preferencias de software, la ejecucin del proceso
puede necesitar software disponible en un sitio
particular
Acceso a datos, la ejecucin remota puede ser ms
conveniente en lugar de transferir datos
HOD

Asuntos de Diseo

Transparencia

Tolerancia a fallos

CC331

Un sistema distribuido debera parecer un sistema


centralizado, convencional para sus usuarios
Usuarios deben acceder a los recursos remotos como
si fueran locales
Un sistema distribuido debera continuar su
funcionamiento, quizs de manera degradada,
cuando se enfrente a fallas de sus componentes
La degradacin (rendimiento, funcionalidad) debe ser
proporcional a la cantidad de fallas que la
ocasionaron

HOD

Asuntos de Diseo (I)

Escalabilidad
Capacidad de un sistema para adaptarse a
un incremento en el servicio
Cuando
la demanda crece, el sistema
debera permitir una fcil incorporacin de
nuevos recursos

Agrupamiento (clusters)
Coleccin de mquinas semi-autnomas que
actan como un sistema
Normalmente existe un servidor dedicado al
agrupamiento, que controla las solicitudes

CC331

HOD

10

Coordinacin Distribuida

Ordenacin de eventos

Relacin de ocurrencia previa

CC331

Si A y B son eventos en el mismo proceso y A se


ejecut antes que B AB
Si A es el evento de envo de un mensaje y B es el
evento de recepcin del mismo AB
Si AB y BC AC
La relacin es irreflexiva ya que un evento no
puede ocurrir antes de s mismo
Adems si AB y BA A||B
(A y B
concurrentes)

HOD

11

Tiempo relativo para tres procesos


concurrentes

CC331

HOD

12

Coordinacin Distribuida (I)

Implementacin de

Asociar marca de tiempo a cada evento, AB marca


de tiempo de A < marca de tiempo de B
En cada Pi se define un reloj lgico LRi, que se puede
implementar como un simple contador
LRi se incrementa entre cualquier par de eventos
consecutivos ejecutados en un proceso
Un proceso avanza su reloj lgico cuando recibe un
mensaje, supongamos que el mensaje trae una marca
de tiempo t, luego

CC331

RL = max(RL,t) + 1

Si las marcas de tiempo de dos eventos son iguales,


entonces stos son concurrentes (utilizar id-proceso)
HOD

13

Exclusin Mutua Distribuida

Suposiciones
Sistema consiste de N procesos, cada
proceso reside en un procesador diferente
Cada proceso desea acceder a una SC que
requiere exclusin mutua

Requerimiento

CC331

Si Pi se est ejecutando en su SC, ningn


otro Pj puede estar ejecutando su SC
respectiva

HOD

14

Enfoque Centralizado

Un servidor se encarga de controlar el


ingreso a la SC:
Un proceso solicita permiso para entrar y espera
Si ningn proceso est en la SC, el servidor
responde inmediatamente y se da el permiso
Si hay otro proceso en la SC, el servidor no
responde y coloca la peticin en una cola
Cuando un proceso sale de la SC, enva un
mensaje al servidor
Si la cola no est vaca el servidor selecciona
una peticin y la responde otorgando el permiso

CC331

HOD

15

Enfoque Centralizado (I)


Servidor

Colade
peticiones

4
2

1.Peticinde
testigo

2.liberacin
detestigo

CC331

3.concesin
detestigo

HOD

16

Enfoque Centralizado (II)

Evaluacin:
Entrada a la SC conlleva dos mensajes, incluso
si no hay proceso en la SC
Se retrasa al proceso debido a la duracin del i/v
La salida de la SC involucra un mensaje
No se retrasa al proceso que sale (asncrono)
Retraso
de sincronizacin est asociado al
tiempo de i/v (liberacin-concesin)
El servidor se puede convertir en cuello de
botella

CC331

HOD

17

Enfoque Completamente Distribuido

Algoritmo que usa multidifusin y relojes lgicos:

CC331

Si Pi desea entrar a SC genera una nueva marca de


tiempo MT y enva solicitud(Pi,MT) a todos los procesos
del sistema (N-1)
Pi, slo puede ingresar a la SC si recibe respuestas de
todos los dems procesos del sistema, una vez en ella,
encola cualquier solicitud de ingreso a la SC que reciba
Cuando Pi abandona la SC responde las solicitudes que
ha recibido de los dems procesos
Cuando Pj, recibe un mensaje de solicitud puede
responder inmediatamente o retrasar su respuesta

HOD

18

Enfoque Completamente Distribuido (I)

La decisin si Pj responde inmediatamente a


una solicitud(Pi,MT) o retrasa su respuesta
est basada en:

Si Pj est en SC retrasa su respuesta a Pi

Si Pj no desea entrar a SC responde de inmediato

Si Pj desea entrar a SC; pero an no ha ingresado,


compara su MT con la que recibe en la solicitud

CC331

Si MT de Pj > MT en solicitud, responde inmediatamente

En otro caso retrasa su respuesta

HOD

19

Una implementacin

En la inicializacin:
estado := LIBERADA;

Para entrar en SC
estado := BUSCADA;
Multitransmite peticin a todos los procesos; se aplaza el procesamiento de
peticiones
T := marca temporal de la peticin;
Espera hasta que (nmero de respuestas recibidas = (N 1));
estado := TOMADA;

Al recibir una peticin <Ti, pi> en el proceso pj (i j)


Si (estado = TOMADA o (estado = BUSCADA y (T, pj) < (Ti, pi)))
entonces
poner en la cola la peticin de pi sin responder;
sino
responder inmediatamente a pi;
finsi
Para salir de la SC
estado := LIBERADA;
responda a cualquier peticin en la cola;

CC331

HOD

20

Ejemplo: MT1=41, MT2=34


41

41

Respuesta

Respuesta

41

34

CC331

HOD

34

Respuesta

34

21

Enfoque Completamente Distribuido (II)

Comportamiento deseable:
Se obtiene la exclusin mutua
Se asegura la no existencia de bloqueos
mutuos
Se asegura la no existencia de bloqueo
indefinido, ya que la entrada a la SC se
planifica de acuerdo a las marcas de tiempo,
lo que asegura orden FIFO
Nmero de mensajes por entrada a SC es
2*(N-1), nmero mnimo de mensajes cuando
los
procesos
actan
independiente
y
concurrentemente

CC331

HOD

22

Enfoque Completamente Distribuido (III)

Consecuencias indeseables
Los procesos necesitan conocer la identidad de
todos los dems procesos en el sistema, lo que
hace ms complejos el aadir o quitar procesos
Si falla uno de los procesos, se viene abajo todo
el esquema. Se puede resolver monitoreando
continuamente el estado de todos los procesos
Los procesos que no han entrado a SC deben
efectuar pausas frecuentes para asegurar, a los
dems procesos, que pretenden entrar a SC

CC331

HOD

23

Algoritmo Basado en un Anillo

Los N procesos forman un anillo lgico:

Cada proceso pi tiene un canal de comunicacin


hacia el siguiente proceso en el anillo, p[(i+1) mod N]

Se consigue la exclusin mediante un testigo


que se pasa de proceso en proceso en una
direccin
Si un proceso no quiere ingresar a la SC cuando
recibe el testigo, lo pasa inmediatamente
Si un proceso quiere ingresar a la SC espera el
testigo, una vez que le llega, lo retiene y cuando
sale de la SC lo pasa a su vecino

CC331

HOD

24

Algoritmo Basado en un Anillo (I)


p

p
4

Testigo

CC331

HOD

25

Algoritmo Basado en un Anillo (II)

Evaluacin:
Consume continuamente ancho de banda,
excepto cuando un proceso est en la SC
Retraso que experimenta un proceso que desea
entrar a la SC est entre 0 y N mensajes
Para salir de la SC se necesita slo un mensaje
Retraso de sincronizacin est entre 1 y N
transmisiones de mensajes

CC331

HOD

26

Prevencin de Bloqueos Mutuos

Prevencin
de
bloqueos
mutuos
ordenando los recursos del sistema:
Definir un ordenamiento global entre los
recursos del sistema
Asignar un nmero nico a todos los recursos
del sistema
Proceso solicita recurso con nmero nico i
slo si no retiene un recurso con un nmero
mayor que i
Simple
de implementar y genera poco
overhead

CC331

HOD

27

Prevencin de Bloqueos Mutuos (I)

Algoritmo del banquero


Designar uno de los procesos en el sistema
como
el
proceso
que
mantiene
la
informacin necesaria para ejecutar el
algoritmo del banquero
Fcil de implementar, pero puede generar
mucho overhead

CC331

HOD

28

Prevencin de Bloqueos Mutuos (II)

Enfoque de ordenacin por marcas de tiempo


A cada proceso se le asigna un nmero de
prioridad nico
Los nmero de prioridad se utilizan para decidir si
un proceso Pi debe espera a un proceso Pj; en otro
caso Pi se retrocede

Previene los BM, ya que para cada arista PiPj del


grafo de esperas, Pi tiene mayor prioridad que Pj,
por lo que no puede existir un ciclo
Presenta problema de bloqueo indefinido, siempre
se retroceda a un proceso de baja prioridad

CC331

HOD

29

Prevencin de Bloqueos Mutuos (III)

El esquema no expropiativo

Si Pi solicita un recurso retenido por Pj, se


permite que Pi espere slo si tiene una marca de
tiempo menor a la de Pj (Pi ms viejo que Pj) de
lo contrario Pi retrocede

El esquema expropiativo

CC331

Si Pi solicita un recurso retenido por Pj, se


permite que Pi espere slo si tiene una marca de
tiempo mayor a la de Pj (Pi ms joven que Pj) de
lo contrario Pj retrocede (Pj es expulsado por Pi)
HOD

30

Prevencin de Bloqueos Mutuos (IV)

Consideraciones:
Esquema no expropiativo, el proceso ms
viejo debe esperar a que otro ms joven
libere su recurso
Mientras ms viejo el proceso ms tiende a
esperar
Esquema expropiativo, un proceso viejo
nunca espera a uno joven
Existen menos retrocesos en el esquema
expropiativo

CC331

HOD

31

Deteccin de Bloqueos Mutuos

Construir un grafo de esperas que describa


el estado de asignacin de los recurso
Suponemos un recurso por cada tipo, luego un
ciclo representa un bloqueo mutuo
El mayor problema es decidir cmo mantener
el grafo de esperas
Cada instalacin construye su propio grafo de
esperas local
Los nodos corresponden a todos los procesos
(locales o no), que en ese momento poseen o
solicitan alguno de los recursos locales

CC331

HOD

32

Grafos locales de espera

CC331

HOD

33

Deteccin de Bloqueos Mutuos (I)

Los grafos de espera local, se construyen de


la manera usual:

Cuando Pi de la instalacin A necesita un recurso


que retiene Pj de la instalacin B, Pi enva un
mensaje de solicitud a B Pi Pj

Obviamente si un grafo de espera local tiene un


ciclo hay un bloqueo mutuo
Pero si no existe no significa que no haya!!
Para demostrar que no hay BM, debemos mostrar
que la unin de todos los grafos locales es
acclica

CC331

HOD

34

Grafo global de espera (A y B)

CC331

HOD

35

Deteccin de Bloqueos Mutuos (II)

Enfoque centralizado
El grafo global se construye como la unin
de todos los grafos locales de espera
Se
mantiene en un proceso nico: el
coordinador de deteccin de BM
Debido
a que hay demora en las
comunicaciones:

CC331

Grafo real, describe el estado real; pero


desconocido
Grafo construido, aproximacin generada por el
coordinador durante la ejecucin de su algoritmo
HOD

36

Deteccin de Bloqueos Mutuos (III)

Enfoque centralizado

CC331

Tres opciones (instantes en el tiempo) en


las que se puede construir el grafo de
espera:
Al insertar o eliminar una arista de uno de
los grafos locales
Peridicamente, cada vez que ocurra
determinado nmero de cambios en el
grafo de espera
Cada vez que el coordinador necesite
invocar el algoritmo de deteccin de ciclos
HOD

37

Deteccin de Bloqueos Mutuos (IV)

Consideremos la opcin 1

CC331

Por cada modificacin en el grafo local se


debe avisar al coordinador
Podramos
ahorrar
mandando
varias
modificaciones en un solo mensaje
El coordinador invoca al algoritmo de
deteccin de ciclos, si encuentra uno, se
selecciona una vctima para retroceso
El coordinador debe notificar a todas las
instalaciones que se ha seleccionado un
proceso determinado como vctima
HOD

38

Deteccin de Bloqueos Mutuos (V)

Consideremos la opcin 1

Podran existir retrocesos innecesarios debido a dos


situaciones:

CC331

Pueden existir ciclos falsos en el grafo global, debido a que


los mensajes de actualizacin pueden llegar en distinto
orden
Ejemplo:

P2 libera recurso en A, P1P2 se elimina

P2 solicita un recurso que posee P3 en B, P2P3 se


agrega

Si insertar P2P3 llega antes que eliminar P1P2

El coordinador descubrira el ciclo falso P1P2P3P1,


despus de la insercin; pero antes de la eliminacin

As, inicia una recuperacin de BM, sin que haya ocurrido


HOD

39

Grafo local y global de esperas

CC331

HOD

40

Deteccin de Bloqueos Mutuos (VI)

La otra situacin sera:

CC331

Se produce un BM y se selecciona la vctima


Al mismo tiempo alguno de los procesos
involucrados en el BM aborta por motivos ajenos
Luego, se retrocede a la vctima cuando ya no era
necesario

Los problemas vistos en la opcin 1 tambin


sucede en las otras dos opciones
Habr que buscar un algoritmo centralizado
de deteccin de BM que detecte todos los BM
que realmente ocurren y no los falsos
La solucin pasa por poner marcas de tiempo
HOD

41

Deteccin de Bloqueos Mutuos (VII)


El algoritmo

1.

2.

3.

Controlador enva mensaje de inicio a cada


instalacin del sistema
Al recibir este mensaje, una instalacin enva al
coordinador su grafo local de esperas
Cuando el controlador ha recibido una
respuesta de cada instalacin, construye el
grafo global:

CC331

Contiene un vrtice para cada proceso en el sistema


Arista PiPj si y slo si:

Existe PiPj en uno de los grafos de espera, o

Aparece PiPj con etiqueta MT en ms de un grafo


HOD

42

Deteccin de Bloqueos Mutuos (VIII)

Enfoque jerrquico

Cada instalacin mantiene su grafo local


El grafo global de esperas se distribuye entre varios
controladores organizados en un rbol

A, B y C controladores, C antepasado de A y B; si Pi
aparece en grafo local de A y B, entonces tambin
debe aparecer en los grafos de:

CC331

Cada hoja contiene el grafo local de una instalacin


Cada controlador mantiene un grafo con informacin
sobre los grafos de los controladores en su subrbol

El controlador C
Cada uno de los controladores en camino de C a A
Cada uno de los controladores en camino de C a B
HOD

43

Deteccin de Bloqueos Mutuos (IX)

CC331

Enfoque jerrquico

Si Pi y Pj estn en grafo de C y existe un


camino de Pi a Pj en alguno de los grafos
hijos de C, entonces PiPj est en grafo de C

Si existe un ciclo en cualquiera de los grafos,


entonces el sistema est en BM

HOD

44

Ejemplo grafo enfoque jerrquico


P2
P3
Instalacin C

P1

P2

P5

P3

P2
P4
P3
Instalacin B

Instalacin A
CC331

HOD

45

Deteccin de Bloqueos Mutuos (X)


Enfoque completamente distribuido

Todos los controladores comparten de manera


equitativa la responsabilidad de detectar BM
Cada instalacin construye un grafo de esperas
que representa una parte del grafo global
Se aade un nodo especial Pex a cada grafo
local

CC331

PiPex, si Pi espera de otra instalacin, un recurso


retenido por cualquier proceso
PexPj, si existe un proceso en otra instalacin que
espera por un recurso que retiene Pj en esta
instalacin
HOD

46

Grafo de espera con Pex

CC331

HOD

47

Deteccin de Bloqueos Mutuos (XI)


Enfoque completamente distribuido

Si un grafo local contiene un ciclo:

Algoritmo distribuido de deteccin BM

CC331

Que NO incluye a Pex, entonces el sistema est en BM


Que SI incluye a Pex, entonces hay posibilidad de BM
y habr que invocar un algoritmo distribuido de
deteccin
Si en una instalacin Ii existe un ciclo que incuye a
Pex, entonces: PexPk1Pk2 PknPex
Luego, Ii enva un mensaje con informacin del ciclo
a la instalacin de la cual espera un recurso Pkn, Ij
Ij, construye su grafo con la nueva informacin y
repite la operacin hasta que alguna instalacin
detecte un ciclo sin Pex (BM) se determine que no
existe BM
HOD
48

Algoritmo distribuido de deteccin BM

CC331

HOD

49

Deteccin de Bloqueos Mutuos (XII)


Enfoque completamente distribuido

CC331

Ojo, si la otra instalacin, S2, es la que enva el


mensaje de deteccin el resultado sera el
mismo
Y que pasara si ambas los hacen al mismo
tiempo?
Mejor definimos un orden:

Cada Pi tiene asociado un ID(Pi) nico

Luego si se detecta un ciclo: PexPk1Pk2 PknPex

La instalacin enva un mensaje de deteccin slo si


ID(Pkn)<ID(Pk1), caso contrario deja que otra instalacin
asuma la carga de iniciar la deteccin de BM
HOD

50

Algoritmos de Eleccin

Algoritmo para escoger un proceso nico que


juegue un papel especfico, coordinador
Es esencial que todos los procesos estn de
acuerdo en la eleccin
Aplicaciones:

CC331

Determinacin de un nico coordinador


Generacin de testigo
Eleccin de una estacin maestra despus del
arranque del sistema
Coordinacin en una recuperacin de falla

HOD

51

Algoritmos de Eleccin (I)

Se asume que:

Existe un nmero de prioridad nico


asociado a cada proceso en el sistema, por
simplicidad, prioridad de Pi es i

Existe una correspondencia uno a uno entre


procesos e instalaciones
El coordinador siempre es el proceso con
mayor prioridad, cuando cae, el algoritmo
debe seleccionar el proceso activo de mayor
prioridad

CC331

HOD

52

Algoritmo del Grandulln (bully)

Generalidades:
Permite la cada de procesos durante la eleccin
Supone sistema sncrono (timeouts para detectar
fallo de procesos)
Supone que cada proceso conoce a los dems
(Id)
Proceso
que
detecta
no
respuesta
del
coordinador comienza el algoritmo
Tres tipos de mensajes:

CC331

Eleccin, se enva para anunciar un proceso de eleccin


Respuesta, responde a un mensaje de eleccin
Coordinador, se enva para anunciar la identidad del
proceso elegido
HOD

53

Algoritmo del Grandulln (I)

Funcionamiento
Proceso con Id ms alto se elige a s mismo como
coordinador, enviando un mensaje coordinador a
todos los procesos con menor Id
Proceso que inicia una eleccin, enva mensajes
de eleccin slo a procesos con mayor Id

CC331

Si no le llega ningn mensaje de respuesta durante T,


se considera a s mismo el coordinador y enva un
mensaje coordinador a todos los procesos con Id menor
T=2*Ttrans+Tprocesado
Si recibe un mensaje de respuesta, espera otro T para
que le llegue un mensaje coordinador, si no llega
comienza otra eleccin
HOD

54

Algoritmo del Grandulln (II)

Funcionamiento
Un
proceso
que
recibe
un
mensaje
coordinador, fija su variable elegidoi con el Id
en el mensaje
Si un proceso recibe un mensaje de eleccin,
devuelve una respuesta y comienza otra
eleccin (a no ser que ya haya comenzado
una)
Si se lanza un proceso nuevo, ste comienza
una eleccin, si tiene el Id ms alto decide que
es el coordinador y lo anuncia a todos

CC331

HOD

55

Algoritmo del Grandulln (III)


eleccin
C

eleccin

etapa1

respuesta

respuesta

p1

eleccin
eleccin

etapa2

respuesta

eleccin

timeout
etapa3

Alfinal.....

coordinador
C

etapa4

CC331

HOD

56

Algoritmo del Grandulln (IV)

Note que:
Procesos slo responde a procesos con menor Id
Proceso que recibe respuesta de uno con mayor
Id abandona la eleccin

Evaluacin
Mejor caso, proceso con segundo ms alto Id da
cuenta del fallo del coordinador, (N-2) mensajes
Peor caso, proceso con menor Id da cuenta del
fallo del coordinador, nmero de mensajes O(N2)

CC331

HOD

57

Un Algoritmo de Anillo

Supone
Enlaces unidireccionales, envo vecino de
derecha
Cada proceso mantiene lista de procesos activos

Funcionamiento
Si Pi detecta una falla del coordinador, crea una
nueva lista de procesos activos vaca
P
i enva mensaje eleccin(i) a su vecino y
agrega i a la lista de procesos activos

CC331

HOD

58

Un Algoritmo de Anillo (I)

Funcionamiento

Si Pi recibe mensaje eleccin(j), responde:

CC331

Si es el primer mensaje eleccin que ha visto o enviado,


crea una nueva lista con los nmeros i y j, luego enva
eleccin(i), seguido de eleccin(j)
Si ij, entonces aade j a la lista de procesos y pasa el
mensaje a su vecino
Si i=j, entonces la lista de procesos contiene los
nmeros de todos los procesos activos del sistema.
Luego, puede determinar el nmero mayor e identificar
al nuevo coordinador

HOD

59

Un Algoritmo de Anillo (II)

Evaluacin
Se necesita transmitir N2 mensajes para que
todos conozcan al nuevo coordinador
Una alternativa sera:

CC331

Una vez que un proceso conozca el coordinador podra


detener el flujo de mensajes y anunciarlo a los dems
Se necesitaran (N+1)*N + (N-1) mensajes para que
todos conozcan al nuevo coordinador (< N2, para N>2)

HOD

60

Otro algoritmo de eleccin basado en anillo

Chang y Roberts (1979)

Apropiado para procesos en anillo lgico


Inicialmente, cada proceso como no participante
Cualquier proceso puede iniciar la eleccin:

Cuando un proceso recibe un mensaje de eleccin,


compara el identificador que viene con el suyo:

CC331

Se marca como participante, coloca su identificador en un


mensaje de eleccin y lo enva a su vecino

Si el identificador es mayor, enva el mensaje a su vecino


Si el identificador es menor y receptor es no participante,
cambia el identificador por el suyo y lo enva a su vecino. Si
ya es participante, no lo vuelve a enviar
Al momento de enviar un mensaje de eleccin, el proceso se
marca como participante

HOD

61

Otro algoritmo de eleccin basado en anillo (I)

Chang y Roberts (1979)

Si identificador que se recibe es igual al propio,


se convierte en el coordinador:

Cuando un proceso recibe un mensaje de elegido:

CC331

Se seala a s mismo como no participante y enva un


mensaje de elegido a su vecino, incluyendo su
identidad
Se marca a s mismo como no participante
Fija su variable elegidoi al valor del identificador en el
mensaje
Enva el mensaje a su vecino (siempre que no sea el
nuevo coordinador)
HOD

62

Progreso de una eleccin


3

17

4
24
9
1
15
28

24

Nota:Laeleccinfueiniciadaporelproceso17
Elidentificadormselevadoencontradoacontinuacines24.
Procesosparticipantesestnsealadosconuntonomsoscuro
CC331

HOD

63

Otro algoritmo de eleccin basado en anillo (II)

Evaluacin:

El peor caso se da cuando el vecino previo


posee el identificador mayor (de quien inicio la
eleccin)

CC331

N-1 mensajes para llegar a l


No anuncia su eleccin hasta la prxima vuelta, dando
lugar a N mensajes ms
Luego, el mensaje elegido se enva N veces ms
As, se envan 3*N-1 mensajes para lograr la eleccin
El tiempo para completar la tarea est asociado a los
3*N-1 mensajes, ya que se envan secuencialmente

HOD

64

You might also like