Professional Documents
Culture Documents
Plan kursu
1. Algorytmy rozproszone (ok. 4/5 wykadow).
System rozproszony
Definicja (Kshemkalyani): zbir niezalenych
autonomicznych jednostek wsppracujcych ze
sob dla osignicia celu, ktrego nie rozwizaaby
samodzielnie adna z nich.
Inne definicje
Leslie Lamport: wiesz, e uywasz systemu
rozproszonego gdy awaria komputera o ktrym nigdy
nie syszae sprawia, e nie moesz pracowa
Po co uywa systemu
rozproszonego?
1. Zadania maj rozproszono w swojej naturze (np
przelew z banku do banku).
2. Zasoby (np. dane, urzdzenia, biblioteki) nie mog
by zreplikowane w wielu miejscach (koszty). Nie
mog tez by w jednym miejscu (obcienie).
3. Rozproszono zwiksza dostpno i
niezawodno.
4. Zwikszony stosunek wydajno/koszt.
Podstawowe operacje w
systemie rozproszonym
Send() wysanie komunikatu, potrzeba poda odbiorc
i sam komunikat,
Receive() odebranie komunikatu, mona poda
nadawc, komunikat jest zwracany,
Send buforowane kopiuje komunikat z pamici
procesu do pamici jdra, nastpnie jest on wysyany.
Send niebuforowane wysya komunikat bezporednio
z pamici procesu.
Receive buforowane wymagany jest bufor w jdrze bo
komunikat moe przyby bez receive,
System rozproszony
System bdziemy reprezentowa jako graf
G=(V,E)
V zbir wzw obliczeniowych
E zbir krawdzi, krawd midzy dwoma wzami
oznacza, e jest bezporednia moliwo komunikacji
midzy nimi,
Bdziemy zakada, e graf jest nieskierowany, tzn.
kady kana komunikacyjny jest dwukierunkowy.
Bdziemy rwnie zakada, e graf jest spjny.
Taki graf nazywany jest topologi systemu
rozproszonego.
Oznaczenia
n(G) =|V| - ilo wzw
m(G) = |E| - ilo krawdzi
d(G) rednica grafu czyli najwiksza moliwa
dugo najkrtszej cieki midzy dwoma
wierzchokami
N(x) zbir wzw poczonych krawdzi z
wzem x (neighborhood). Wze x zna swoich
ssiadw. Moe po nich iterowa (np. celem
wysyania do nich wiadomoci).
Broadcast
Jeden wze obliczeniowy x ma komunikat, ktry chce
rozesa do wszystkich wzw. Nie moe zrobi tego
bezporednio bo zna dostp tylko do swoich ssiadw
N(x). Ci ssiedzi mog z kolei wysa komunikat dalej
itd.
Zakadamy, e mamy dwa moliwe statusy:
inicjator, pozostay. Pocztkowo jeden wze (ten ktry
wysya wiadomo) ma status inicjatora.
Broadcast: podejcie 1.
inicjator * i -> {for y in N(x) send(message, y)}
pozostay * i -> nil
inicjator * receive(message) -> nil
pozostay * receive(message) -> {for y in N(x)
send(message,y)}
Broadcast: podejcie 2.
Wprowadzamy trzeci status (done). Pocztkowo mamy
jednego inicjatora i wszystkich pozostaych.
inicjator * i -> {status = done;
for y in N(x)
send(message, y);}
pozostay * i -> nil
done * i -> //nie zdarzy si
inicjator * receive(message) -> //te si nie zdarzy
pozostay * receive(message) -> { status = done;
for y in N(x)
send(message,y);}
done * receive(message) -> nil
Broadcast: podejcie 3
inicjator * i -> {status = done;
for y in N(x)
send(message, y);}
pozostay * i -> nil
done * i -> //nie zdarzy si
inicjator * receive(message) -> //te si nie zdarzy
pozostay * receive(message) -> { status = done;
for y in N(x) - sender
send(message,y);}
done * receive(message) -> nil
Dugo najduszej cieki na takim diagramie to zoono czasowa algorytmu (bdziemy j oznacza
przez T), a ilo strzaek, to ilo komunikatw (bdziemy j oznacza przez M).
Wiedza wsplna
Common Knowledge
p CK(W,t) iff dla kadego i = 1 .. zachodzi pi EK(W,t)
gdzie p1 = p
p2 = [p1 EK(W,t)]
pn+1 = [pn EK(W,t)]
p1 fakt p
p2 wszyscy wiedz, e p
p3 wszyscy wiedz, e wszyscy wiedz, e p
. (po skoczonej ale by moe duej iloci nie wnosi ju
Problem cudzoocych
ludoercw cz 1
W pewnej spoecznoci ludoercw skadajcej si z 44
maestw zdarzaj si czasem ony, ktre cudzoo.
Jeli ona cudzooy to wiedz o tym wszyscy mczyni
poza jej mem.
Jeli pewnego dnia m dowie si, e jego ona
cudzooy, zabija j nastpnego dnia rano.
Problem cudzoocych
ludoercw cz 2
Do naszej spoecznoci ludoercw przyby misjonarz
ktry zosta natychmiast ugotowany i zjedzony.
Jego ostatnie sowa brzmiay: wrd was, s kobiety,
ktre cudzoo!!.
Po 44 dniach wszyscy ludoercy zabili swoje ony.
Co si stao? Ile on cudzooyo.
Rozumowanie indukcyjne
(wzgldem iloci cudzoocych
on)
k = 1 zdradzony m zabija on w pierwszy dzie
Zaoenie: dla i = 1k jeli dokadnie i mw jest
zdradzanych to kady z nich zabija on w i-ty dzie.
Teza: zaoenie zachodzi dla i = 1 k+1
Dowd ..
Wake-up problem
W systemach rozproszonych moemy spotka si z
nastpujcym problemem:
wrd n wzw mamy pewien podzbir wzw
aktywnych, pozostae wzy s upione; w obliczeniu
maj wzi udzia wszystkie wzy wic te aktywne
powinny wysa komunikaty do tych upionych;
wze aktywny nie wie ile poza nim jest wzw
aktywnych a ile upionych; wie tylko e sam jest
aktywny; na koniec aden wze nie moe by
upiony
Broadcast a wake-up
T<=d+1
Traversal problem
Mamy komunikat zwany tokenem. Token
pocztkowo znajduje si w jednym, ustalonym
wle. Celem algorytmu jest doprowadzenie do tego,
by token odwiedzi wszystkie wzy.
Algorytm bazuje na algorytmie DFS.
Traversal - DFS
Traversal DFS II
M=T=2m
M = 4m