Privacy Policy Cookie Policy Terms and Conditions Echo-Algorithmus - Wikipedia

Echo-Algorithmus

aus Wikipedia, der freien Enzyklopädie

Echo Algorithmus
vergrößern
Echo Algorithmus

Inhaltsverzeichnis

[Bearbeiten] Anwendung

Der Echo-Algorithmus ist für folgende Anwendungen in einem Verteilten System geeignet:

[Bearbeiten] Voraussetzungen

Der Echo-Algorithmus ist auf jeder zusammenhängenden Topologie möglich.

[Bearbeiten] Idee

Es gibt zwei Nachrichtentypen: Explorernachrichten, die die Knoten rot färben und Echo-Nachrichten, die die Knoten grün färben. Vor der Ausführung des Algorithmus sind alle Knoten weiß.

  • Ein Initiator wird rot und schickt an alle seine Nachbarn einen Explorer.
  • Ein weißer Knoten, der einen Explorer erhält wird rot
  • Treffen sich zwei Explorer auf einer Kante, so werden sie verschluckt
  • Ein Explorer, der über all seine Kanten einen Explorer erhalten hat, wird grün und sendet ein Echo über die Kante, über die er den ersten Explorer erhalten hatte
  • Ein Knoten, der einen Echo erhält, wird grün und sendet einen Echo über die Kante, über die er den Explorer erhalten hatte
  • Der Algorithmus terminiert, wenn der Initiator das letzten Echo erhalten hat


Die Kanten über die die Echo-Nachrichten gelaufen sind ergeben einen Spannbaum.

[Bearbeiten] Pseudocode

Anm: Alle Knoten sind am Anfang weiß, Anzahl ist 0 und ErsterNachbar ist leer

Initiator

sende <explorer> an alle Nachbarn;



Ein Knoten K empfängt <nachricht> von einem Nachbarn N

  wenn K weiß ist und <nachricht> == <explorer>   
     K wird rot;
     sende <explorer> an alle Nachbarn außer N;
     ErsterNachbar := N;
     Anzahl += 1;
wenn Anzahl == AnzahlNachbarn oder Nachricht == <echo> K wird grün; wenn K der Initiator ist EXIT; sonst sende <echo> an ErsterNachbar

[Bearbeiten] Nachrichtenkomplexität

Über jede Kante e läuft entweder ein Explorer und ein Echo oder zwei Explorer, die sich aufheben. Demnach ist die Nachrichtenkomplexität e.

[Bearbeiten] Verbesserungen

[Bearbeiten] Verbesserung der Nachrichtenkomplexität

Wenn in einer Topologie eindeutige IDs vergeben sind und jeder Knoten die Identität seiner Nachbarn kennt, so ist es möglich mit dem Explorer seinem Nachbarn mitzuteilen welchen Knoten er außerdem noch einen Explorer gesendet hat. So können in manchen Fällen Explorer eingespart werden. Der Nachteil dabei ist allerdings, dass die Nachrichtenlänge dabei auf O(n) ansteigt.

[Bearbeiten] Der Echo-Algorithmus als Auswahlalgorithmus

Um den Echo-Algorithmus als Auswahlalgorithmus benutzen zu können, muss jeder Knoten eine eigene ID haben.
Jeder Knoten startet irgendwann einen Echo-Algorithmus, wobei sowohl die Echos, als auch die Explorer die ID ihres Initiators mitführen. Knoten geben Nachrichten nur weiter, wenn deren Initiator eine höhere ID hat als der Knoten selbst. Wenn ein Initiator von allen seinen Nachbarn ein Echo erhält, weiß er, dass er gewonnen hat. Alle anderen Knoten wissen dass sie verloren haben, wenn sie ein Echo oder einen Explorer empfangen haben.

[Bearbeiten] Weblinks

Vorlesung "Verteilte Systeme" an der Universität Mannheim

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -