Distribuované systémy a výpočty

Podobné dokumenty
Distribuovaná synchronizace. Paralelní a distribuované systémy. 11. Přednáška Vzájemné vyloučení. Centralizovaný algoritmus - fronta procesů

Distribuované systémy a výpočty

Distribuované algoritmy - přehled. Přednášky z Distribuovaných systémů Ing. Jiří Ledvina, CSc.

Distribuované systémy poznámky k přednášce (založeno na Tel G., Introduction to distributed algorithms.)

Distribuované algoritmy

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem

Knihovna EpsnetLib TXV první vydání září 2012 změny vyhrazeny

Distribuované systémy a výpočty

Souhrn Apendixu A doporučení VHDL

Dynamic programming. Optimal binary search tree

ALG 04. Zásobník Fronta Operace Enqueue, Dequeue, Front, Empty... Cyklická implementace fronty. Průchod stromem do šířky

Základy programování Proměnné Procedury, funkce, události Operátory a podmínková logika Objekt Range a Cells, odkazy Vlastnosti, metody a události

Chapter 7: Process Synchronization

Příklad aplikace Klient/Server s Boss/Worker modelem (informativní)

Vzájemné vyloučení procesů

Server Internetu prostøednictvím slu eb (web, , pøenos souborù) poskytuje data. Na na í pracovní stanici Internet

Server Internetu prostøednictvím slu eb (web, , pøenos souborù) poskytuje data. Na na í pracovní stanici Internet

Synchronizace. Přednášky z distribuovaných systémů Ing. Jiří Ledvina, CSc.

PES lib (C + PASCAL) KNIHOVNY KOMUNIKAÈNÍCH FUNKCÍ 03/ PESlib KOMUNIKAČNÍ KNIHOVNY C, PASCAL 03/ stran 1

ALGORITMIZACE 2010/03 STROMY, BINÁRNÍ STROMY VZTAH STROMŮ A REKURZE ZÁSOBNÍK IMPLEMENTUJE REKURZI PROHLEDÁVÁNÍ S NÁVRATEM (BACKTRACK)

Cvičení 9 - Monitory. monitor m; var proměnné... procedure p; begin... end; begin inicializace; end;

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Příklady popisu základních obvodů ve VHDL

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

V praxi je běžné, že se ovlivňuje více prvků navzájem. Tady už si s jednou globální proměnnou nevystačíme.

IB109 Návrh a implementace paralelních systémů. Kolektivní komunikační primitava. RNDr. Jiří Barnat, Ph.D.

Operační systémy. Přednáška 5: Komunikace mezi procesy

PODMÍNKY POSKYTOVÁNÍ PŘÍSTUPU K PORTÁLU NAMĚŘENÝCH DAT POMOCÍ WEBOVÝCH SLUŽEB SPOLEČNOSTI ČEZ DISTRIBUCE, A. S.

Jazyk VHDL konstanty, signály a proměnné. Jazyk VHDL paralelní a sekvenční doména. Kurz A0B38FPGA Aplikace hradlových polí

Skripty základy VB, vestavěné objekty, příklady

Webové služby pro. CenovaMapa.cz

Local Interconnect Network - LIN

1. Nejkratší cesta v grafu

Programovací jazyk Pascal

Komunikace systémů pomocí Hradec Králové

Distribuované systémy a výpočty

Projekt k předmětu Směrované a přepínané sítě. Ověření kompatibility implementací OSPF na Cisco IOS a Linuxu - různé typy oblastí

Klasifikace a predikce. Roman LUKÁŠ

Koncept pokročilého návrhu ve VHDL. INP - cvičení 2

V kompletním grafu nenastává problém. Každý uzel je soused se zbytkem vrcholů a může s nimi kdykoliv komunikovat.

Logické obvody - sekvenční Formy popisu, konečný automat Příklady návrhu

Čipové karty Lekařská informatika

Logické obvody - sekvenční Formy popisu, konečný automat Příklady návrhu

1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1

Time-Stamp. protokol

1 III. FOUKÁ ZE STRNIŠŤ - LISTOPAD...

Logické obvody Kombinační a sekvenční stavební bloky

Postup objednávky Microsoft Action Pack Subscription

Synchronizace Mgr. Josef Horálek

Interpret jazyka IFJ2011

UPM3 Hybrid Návod na ovládání Čerpadlo UPM3 Hybrid 2-5 Instruction Manual UPM3 Hybrid Circulation Pump 6-9

prohled av an ı graf u Karel Hor ak, Petr Ryˇsav y 16. bˇrezna 2016 Katedra poˇ c ıtaˇ c u, FEL, ˇ CVUT

Spojová implementace lineárních datových struktur

Abstraktní datové typy FRONTA


Seminář z IVT Algoritmizace. Slovanské gymnázium Olomouc Tomáš Kühr

Počítačová simulace logistických procesů I. 11. přednáška Programování v SimTalk. ŠAVŠ, Fábry

Webové služby. služby OctopusPro

Operační systémy. Přednáška 4: Komunikace mezi procesy

IV113 Validace a verifikace. Převod LTL formule na Büchi automat. Jiří Barnat

Fronta (Queue) Úvod do programování. Fronta implementace. Fronta implementace pomocí pole 1/4. Fronta implementace pomocí pole 3/4

1. Maple - verze. 2. Maple - prostredi. Document Mode vs. Worksheet Mode


Homer. prvky. délka. přední 0 zadní 4. Použití fronty BUS STOP. 3 Lisa. 2 Bart. 4 Maggie. 1 Marge. Grafické znázornění předchozí animace:

Struktura a architektura počítačů

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh. Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_25 09

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Paralelní programování

MS ACCESS A MS WORD V KAŽDODENNÍ PRAXI

Basic256 - úvod do programování Příklady. ing. petr polách

Aktualizace GOM Softwaru pomocí GOM Maintenance Tool

Knihovna GalaxyLib TXV druhé vydání srpen 2012 změny vyhrazeny

Heuristické řešení problémů. Seminář APS Tomáš Müller

PRAVIDLA ZPRACOVÁNÍ STANDARDNÍCH ELEKTRONICKÝCH ZAHRANIČNÍCH PLATEBNÍCH PŘÍKAZŮ STANDARD ELECTRONIC FOREIGN PAYMENT ORDERS PROCESSING RULES

SQL injection jak ji možná neznáte Roman Kümmel

POPIS STANDARDU. Norma název (cz):dopravní a cestovní informace (TTI) TTI zprávy pomocí celulárních sítí Část 6: Vnější služby (ISO/DTR :2000)

Knihovny pro programování PLC Tecomat podle IEC

Abstraktní datové typy

DSA, První krok: máme dokázat, že pro left = right vrátí volání f(array, elem, left, right)

Distribuované systémy a výpočty

NEPSI Online vykazovací systém Návod Úroveň společností

VY_32_INOVACE_5 Anglický jazyk Vypracovala: Mgr. Marcela Minaříková Test 5-3 Opakování Theme 2 Birthday Vznik: listopad 2013 Číslo projektu:

NAS 269 Seznámení s Mail Serverem A S U S T O R C O L L E G E

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

KIV/PIA 2013 Jan Tichava

Jazyk VHDL zápis čísel, znaků a řetězců. Jazyk VHDL základní datové typy a operátory. Kurz A0B38FPGA Aplikace hradlových polí

NPRG030 Programování I, 2017/18 1 / :22:16

Čas a kauzalita v DS

Dynamické datové struktury I.

ADT prioritní fronta. Haldy. Další operace nad haldou. Binární halda. Binomické stromy. Časová složitost jednotlivých operací.

Stromy. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol.

Sada 1 - Základy programování

PRODEJNÍ EAUKCE A JEJICH ROSTOUCÍ SEX-APPEAL SELLING EAUCTIONS AND THEIR GROWING APPEAL


Řízení pohybu stanice v simulačním prostředí OPNET Modeler podle mapového podkladu

Implementace LL(1) překladů

Dynamické datové typy a struktury

Návštěvy. Jul 1, Jul 31, This report shows the number of visits to your web site during the selected period.

Svět kolem nás Understanding the Context

Knihovna TecoRouteLib

Transkript:

Dstrbuované systémy a výpočty X36DSV Jan Janeček (dnes Peter Macejko)

Výlučný přístup Algortmy na úplném grafu Lamport - základní algortmus, 3(n-1) zpráv/požadavek Rcart Agrawala - pozdržení souhlasů, 2(n-1) zpráv/požadavek Carvalho Roucarol - kredty pro přístup, 0 2(n-1) zpráv/požadavek Rcart Agrawala - požadavkový token, n zpráv/požadavek X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 2

Lamport Rq : queue Ts : array LC : nt [] { ntalzaton } LC := 0; for j := 1 to N do Ts[j] := 0; Rq[j] := Lega: LC local clock (lokální čas) Rq request queue (prortní fronta) Ts tme stamps (čas poslední zprávy) Komunkační prmtva: Request(LC, ) Response(LCj, j) Release(LC, ) X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 3

Lamport Rq : queue Ts : array [] X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 4

Lamport Rq Rq Rq : queue LC Ts : array LC [] Rq Odesláno (n-1) zpráv X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 5

Lamport Rq(LC, ) Rq(LC, ) Rq : queue LC Ts : array LC [] Rq(LC, ) X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 6

Lamport Rq : queue j LC Ts : array Rp LC [] X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 7

Lamport Rq : queue j LC Ts : array Rp(LCj, j) LC [] X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 8

Lamport j Rq : queue LC Ts : array LC [] LCj [j] Přjato (n-1) zpráv X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 9

Lamport when request { access request } [P] Rq[] := LC; Ts[] := LC; LC := LC+1; [V] for j:=1 to N do f j then s REQUEST(LC,) to j when receved REQUEST(ts,j) { j-th process request } [P] LC := max(lc,ts); LC := LC+1; [V] Rq[j] := ts; Ts[j] := ts; s RESPONSE(LC,) to j when receved RESPONSE(ts,j) { j-th process response } [P] LC := max(lc,ts); LC := LC+1; [V] Ts[j] := ts X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 10

Lamport Rq : queue Ts : array [] X < Y X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 11

Lamport Rq : queue j X Ts : array Rl(LC, ) Rl(LC, ) [] Rl(LC, ) Odesláno (n-1) zpráv X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 12

Lamport when (Rq[]<Rq[j] forall j ) and (Rq[]<Ts[j] forall j ) { crtcal secton } s RELEASE(LC) to j when receved RELEASE(ts,j) { j-th process release } [P] LC := max(lc,ts); LC := LC+1; [V] Rq[j] := ; Zprávy request + response + release (n-1) + (n-1) + (n-1) = 3x(n-1) X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 13

Rcart - Agrawala MyRq Req : array MaxRq { ntalzaton } MaxRq:=0; MyReq:=F; for j:=1 to N do Req[j]:=F Lega: MyRq sekvenční číslo vlastní žádost MaxRq maxmální sekvenční číslo Req pole regstrací žádostí na vstup do CS Komunkační prmtva: Request(MyRq, ) Response() X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 14

Rcart - Agrawala MyRq S+1 MaxRq S Rq Rq Req : array T [] Rq X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 15

Rcart - Agrawala MyRq S+1 MaxRq S Rq(MyRq, ) Rq(MyRq, ) Req : array T [] Rq(MyRq, ) Odesláno (n-1) zpráv X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 16

Rcart - Agrawala j Rq(MyRq, ) MyRq Req : array? [] MaxRq max [j] X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 17

Rcart - Agrawala MyRq MaxRq j Req : array Rp() [] Přjato (n-1) zpráv X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 18

Rcart - Agrawala MyRq MaxRq j Req : array? Rp() []? Rp() X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 19

Rcart - Agrawala when request { access request } [P] Req[] := T; MyRq := MaxRq+1; [V] RpCnt := 0; for j:=1 to N do f j then s REQUEST(MyRq,) to j; wat RpCnt=N-1; { crtcal secton } Req[] := F; for j:=1 to N do { delayed responses } f Req[j] then Req[j]:=F; s REPLY to j X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 20

Rcart - Agrawala when receved REQUEST(k,j) do { request of the k-th process } MaxRq := max(maxrq,k); [P] Delay := Req[] and ((k>myrq) or (k=myrq and j>)); [V] f Delay then Req[j] := T else s REPLY to j when receved REPLY do { response of any process } RpCnt:=RpCnt+1; Zprávy request + response (n-1) + (n-1) = 2x(n-1) X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 21

Carvalho - Roucarol MyRq MaxRq InUse { ntalzaton } Req : array Grant : array MaxRq := 0; MyRq := 0; for j:=1 to N do Req[j] := F; Grant[j] := F Lega: MyRq sekvenční číslo vlastní žádost MaxRq maxmální sekvenční číslo InUse dentfkátor krtcké sekce Req pole regstrací žádostí na vstup do CS Grant pole aktvních 'pověření' Komunkační prmtva: Request(MyRq, ) Reply() X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 22

Carvalho - Roucarol MyRq S+1 MaxRq S Req : array Rq Rq T [] Rq Grant : array; [] X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 23

Carvalho - Roucarol MyRq MaxRq j Req : array Rp() Rp() [] Rp() Grant : array; [] X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 24

Carvalho - Roucarol when request { access request } [P] Req[] := T; MyRq := MaxRq+1; [V] for j:=1 to N do f j and (not Grant[j]) then s REQUEST(MyRq,) to j; wat (Grant[j]=T forall j ); Req[] := F; InUse := T; { crtcal secton } InUse := F; for j:=1 to N do { delayed responses } f Req[j] then Grant[j] := F; Req[j] := F; s REPLY to j X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 25

Carvalho - Roucarol when receved REQUEST(k,j) do { j-th process request } MaxRq := max(maxrq,k); [P] Delay := ((k>myrq) or (k=myrq and j>)) [V] f InUse or (Req[] and Delay) then Req[j]:=T; f not (InUse or Req[]) or (Req[] and (not Grant[j]) and (not Delay)) then s REPLY() to j; f (Req[] and Grant[j] and (not Delay)) then Grant[j]:=F; s REPLY() to j; s REQUEST(MyRq,) to j X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 26

Carvalho - Roucarol when receved REPLY from j do { j-th process response } Grant[j] := T Zprávy request + response (n-1) + (n-1) = 2x(n-1) 0 + 0 = 0 X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 27

Rcart - Agrawala (token passng) Clock InUse TokenHeld Req : array Token : array { ntalzaton } for j:=1 to N do Req[j] := 0; Token[j] := 0; Clock := 0; InUse := F; TokenHeld := (myid == 0)?T:F Lega: Clock sekvenční číslo InUse dentfkátor krtcké sekce Req pole regstrací žádostí na vstup do CS Token pole s časy přjetí tokenu TokenHeld dentfkátor přítomnost tokenu Komunkační prmtva: Request(Clock, ) Token() X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 28

Rcart - Agrawala (token passng) Req : array; Token : array; [] Rq(Clock, ) Rq(Clock, ) [] Rq(Clock, ) X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 29

Rcart - Agrawala (token passng) Req : array; Token Token : array; [] [] X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 30

Rcart - Agrawala (token passng) when request do { access request } f not TokenHeld then Clock := Clock+1; broadcast REQUEST(Clock,); { broadcastng request } receve TOKEN; { watng for token } TokenHeld := T ; InUse := true; { crtcal secton } Token[] := Clock; InUse := F; j := (+1) mod N; whle j do f Req[j]>Token[j] and TokenHeld then { passng token } TokenHeld := F; s TOKEN to j; j := (j+1) mod N X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 31

Rcart - Agrawala (token passng) when receved REQUEST(k,j) do { j-th process request } Req[j]:=max(Req[j],k); f TokenHeld and not InUse then j:=(+1) mod N; whle <>j do f Req[j]>Token[j] and TokenHeld then TokenHeld:=F; s TOKEN to j; j:=(j+1) mod N; { passng token } X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 32

Výběr leader electon Rozbtí symetre Výběr na stromu - základní algortmus, - vyžaduje 3(n-1) zpráv Výběr na kruhu Chang Roberts - jednosměrná komunkace, - komunkační složtost n.log(n) n 2 Hrschberg Snclar - obousměrná komunkace - komunkační složtost n.log(n) Peterson/Dolev Klave Rodeh - jednosměrná komunkace, - komunkační složtost n.log(n) X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 33

Electon on tree X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 34

Electon on tree X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 35

Electon on tree X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 36

Electon on tree X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 37

Electon on tree var ws p : boolean; nt false; // wake-up sent wr p : boolean; nt 0; // wake-up receved rec p [q]: boolean; nt false; // receved from q v p : P; nt p; // node d state p : {sleep,leader,lost}; nt sleep; // node state f p s ntator then ws p := true; forall q n Negh p do s (wakeup) to q ; whle wr p <#Negh p do receve (wakeup); wr p := wr p +1; ; f not ws p then ws p := true; forall q n Negh p do s (wakeup) to q X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 38

Electon on tree /* start of the tree algorthm */ whle #{q : ~rec p [q]} > 1 do receve(tok,r) from q; rec p [q] := true; v p := mn(v p,r) ; s(tok,v p ) to q 0 wth ~rec p [q 0 ]; receve(tok,r) from q 0 ; v p := mn(v p,r); f v p =p then state := leader else state := lost; forall q n Negh p, q q 0 do s(tok,v p ) to q Zprávy 4x (n-1) -?-> 3x (n-1) X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 39

Electon on rng Chang - Roberts X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 40

Electon on rng Chang - Roberts ELECTION X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 41

Electon on rng Chang - Roberts ELECTION ELECTION X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 42

Electon on rng Chang - Roberts var Votng; Coordnator; { ncalzace } Votng:=F; Coordnator:=0 when decson INITIATE_ELECTION do { rozhodnutí volt } Votng:=T; sl ELECTION() X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 43

Electon on rng when receved ELECTION(j) do { příjem zprávy ELECTION } f j> then sl ELECTION(j); Votng:=T ; f j< and not Votng then sl ELECTION(MyNumber); Votng:=T ; f j= then sl ELECTED() X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 44

Electon on rng when receved ELECTED(j) do { příjem zprávy ELECTED } Coordnator:=j; Votng:=F; f j<> then sl ELECTED(j) Zprávy (n-1) mn 0.5n(n-1) max O(n log n) - avg X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 45

Electon on rng var state p ; f p s ntator then state p := cand; s(tok,p) to Next p ; repeat receve(tok,q); f q=p then state p := leader else f q<p then f state p =cand then state p := lost; s(tok,q) to Next p untl state p =leader else repeat receve(tok,q); s(tok,q) to Next p ; f state p =sleep then state p := lost untl false Chang - Roberts X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 46

Electon on rng Hrshberg - Snclar X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 47

Electon on rng Hrshberg - Snclar { ncalzace } Nresp := 0; RespOK := T when decson INITIATE_ELECTION do { rozhodnutí volt } State := CANDIDATE; lmax := 1; whle State=CANDIDATE do Nresp := 0; RespOK := T; slr CANDIDATURE(,0,lmax); // d, 0 vzd., Imax - hloubka wat NResp=2; f not RespOK then State := LOST; lmax := 2*lmax X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 48

Electon on rng Hrshberg - Snclar when receved CANDIDATURE(j,l,lmax) do { příjem zprávy CANDIDATURE } f j< then respond RESPONSE(F, j); f State=NOT_INVOLVED then INITIATE_ELECTION ; f j> then State := LOST; l := l+1; f l<lmax then pass CANDIDATURE(j, l, lmax) else respond RESPONSE(T, j) ; f j= then f State<>ELECTED then State:=ELECTED; Wnner := ; pass ELECTED() X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 49

Electon on rng Hrshberg - Snclar when receved RESPONSE(r,j) do { příjem zprávy RESPONSE } f j= then Nresp := NResp+1; RespOK := RestOK and r else pass RESPONSE(r,j) when receved ELECTED(j) do { příjem zprávy ELECTED } f Wnner<>j then pass ELECTED(j); Wnner := j; State := NOT_INVOLVED X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 50

Electon on rng Peterson/DKR var cp : P nt p ; {Current dentty of p} acnp : P nt udef ; {Id of antclockwse actve neghbor} wnp : P nt udef ; {Id of wnner} statep : (actve, passve, leader, lost) nt actve ;? X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 51

Electon on rng Peterson/DKR f p s ntator then state p := actve else state p := passve ; whle wn p = udef do { dokud neznáme vítěze } f state p = actve then s <one, c p > ; receve <one, q> ; acn p := q ; f acn p = c p then { acn p je mnmum } s <smal, acn p > ; wn p := acn p ; receve <small, q> ; ; else { acn p je současné Id souseda } s<two, acn p > ; receve<two, q> ; f acn p < c p and acn p < q then c p := acn p else state p := passve else { state p = passve } receve <one, q> ; s <one, q> ; receve m ; s m ; { m je <two, q> nebo <smal, q> } f m s a <small, q> message then wn p := q f p = wn p then state p := leader else state p := lost X36DSV - Dstrbuované systémy a výpočty (8) - v1.6 52