-
1
Hijerahija konsenzusaDeo 2
-
2
FIFO (Red)
FIFO Objekt
),( xQenq
Q
glavarep
x
a
aQdeq )( x
b
ac b
c
bc
-
3
Poseban slučaj: prazan red
)(Qdeq
rep glava
-
4
Teorema: FIFO objekt ima brojkonsenzusa 2
Dokaz:1. Možemo rešiti WF (wait-free) konsenzus
korišćenjem FIFO (i read/write) objekataza 2 procesa
2. Ne možemo rešiti WF konsenzuskorišćenjem FIFO (i read/write) objekataza 3 ili više procesa
-
5
Jedan algoritam WF konsenzusaza 2 proc korišćenjem FIFO objekta(i read/write objekata)
Na početku:
rep glava
0
Dokaz – Deo 1
-
6
Deljena memorija
Red
Druge promenljive
0repglava
-
7
0x 1x0p 1p
Lokalne promenljive
}1,0{, ii yx
:početne vred za problem konsenzusa
0y 1y
ix
iy :vrednosti rezultata za problem konsenzusa
-
8
Deljena memorija
Red
Druge promenljive
0repglava
1x
0xPrefer[0]Prefer[1]
Početne vrednosti
-
9
Kod za procesor ip }1,0{i
If thenelse
0)( Qdeq
ii xy ]1[ ipreferyi
//da li sam ja prvi?//da, izaberi moju vred
//ne, izaberi vreddrugog procesora
Napomena: ovaj algoritam koristi FIFO objekti read/write objekte
ixiprefer ][
-
10
Primer izvršenja:
Deljena memorija
Red0repglava
01 x
10 xPrefer[0]Prefer[1]
10 x
01 x
0p
1p
0y
1y
-
11
Predpost. da prvi pristupa redu
Deljena memorija
Redrepglava
01 x
10 xPrefer[0]Prefer[1]
10 x
01 x
0p
1p
0y
01 y
1p
)(0 Qdeq
odluči se zasvoju vrednost
-
12
Predpost. da drugi pristupa redu
Deljena memorija
Redrepglava
01 x
10 xPrefer[0]Prefer[1]
10 x
01 x
0p
1p
00 y
01 y
2p
odluči se za vred. drugog procesora
)(Qdeq
Konsenzus postignut
-
13
Ne postoji algoritam WFkonsenzusa koji koristi samo FIFOi read-write objekte za 3n
Razmotrimo tri procesora(isti dokaz se generalizuje za više)
Dokaz - Deo 2
Dokazaćemo da:
-
14
Postoji neka bivalentna početna konfiguracija(ovo smo dokazali ranije)
Pokazaćemo da svaka bivalentna konfiguracijaima neki procesor koji nije kritičan
Zbog toga, možemo konstruisati beskonačnoizvršenje sa bivalentnim konfiguracijama gdese konsenzus nikada ne postiže
-
15
Predpost. radi kontradikcije da su svi procesori kritični
C
0C
1C
1nC
bivalentna0p
1p
2p
univalentna
univalentna
univalentna
Mogućaizvršenja
-
16
bivalentna
valentna
Ne može biti da svi imaju istu valencu
v
)1 ili 0( v
valentnav
valentnav
valentnav
Kontradikcija
C
0C
1C
2C
0p
1p
2p
-
17
Moraju postojati dva procesora sarazličitim valencama
valentna-0
valentna-1C
0C
1C
2C
bivalentna0p
1p
2p
univalentna
-
18
Deljena memorija
1QRed
2QRed
zQRed
Read/WriteObjekti
-
19
Deljena memorija
1QRed
2QRed
zQRed
Read/WriteObjekti
valentna-0
valentna-1
C
0C
1C
2C
bivalentna0p
1p
2p
Sluč.: procesori pristupajurazličitim objektima
0p
1p
Napomena: da je objekt bio čitan/pisan, analiza bi bila slična
univalentna
-
20
valentna-0
valentna-1
C
0C
1C
2C
bivalentna0p
1p
2p
C
C
1p
0p
valentna-0
valentna-1
CCp
2
Nemoguće jer je
Dva moguća izvršenja
univalentna
-
21
Deljena memorija
1QRed
QRed
zQRed
Read/WriteObjekti
valentna-0
valentna-1
C
0C
1C
2C
bivalentna0p
1p
2p
Sluč.: procesori pristupajuistom objektu
0p
1p
Napomena: da je objekt bio čitan/pisan, analiza bibila ista kao u slučaju sa read/write objektima
univalentna
-
22
valentna-0
valentna-1
C
0C
1C
2C
bivalentna0p
1p
2punivalentna
Podslučaj: deq/deq
-
23
valentna-0
valentna-1
C
0C
1C
2C
bivalentna0p
1p
2punivalentna
C
C
1p
0p
valentna-0
valentna-1
CCp
2
Nemoguće jer je
Red Q pre operacija: bc
a b
a d
a b
-
24
valentna-0
valentna-1
C
0C
1C
2C
bivalentna0p
1p
2punivalentna
Podslučaj: deq/enq
-
25
valentna-0
valentna-1
C
0C
1C
2C
bivalentna0p
1p
2punivalentna
C
C
1p
0p
valentna-0
valentna-1
CCp
2
Nemoguće jer je
Predpost. Q nije bio prazan a bc
a bx
a bx
-
26
valentna-0
valentna-1
C
0C
1C
2C
bivalentna0p
1p
2punivalentna
C 1pvalentna-0
1
2
CCp
Nemoguće jer je
Predpost. da je Q bio prazan
x
x
-
27
valentna-0
valentna-1
C
0C
1C
2C
bivalentna0p
1p
2punivalentna
Podslučaj: enq/enq
-
28
valentna-0
valentna-1
C
0C
1C
2C
bivalentna0p
1p
2punivalentna
C
C
1p
0p
valentna-0
valentna-1
Predpost. Q nije bio prazan yx
yx
yx
a
a
b
b
-
29
valentna-1
C 1C
2C
bivalentna
0p
1p
2punivalentna
C 0pvalentna-1
valentna-0
0C C 1p
yxab b
0p
z w t w
1p0D
yxa b z w t w
0p 1p1D
a
valentna-0
Dequeue a Dequeue b
Dequeue b Dequeue a
Nemoguće jer je
10
2
DDp
-
30
Cbivalentna
0p
valentna-0
0C C 1p
yxab b
0p
a
0 odlučujevalentna-0
Predopst., ne radi dequeue a
0
Neka odluka će biti doneta pošto jealgoritam konsenzusa oslobođen-čekanja
0p
Objašnjenje
0p
-
31
valentna-1
C 1Cbivalentna
0p
1p C 0p
valentna-0
0C C 1p
yxab
0p
yxa b
0p
0
0
valentna-0
valentna-1
će se odlučiti za iste vrednosti,pošto vidi iste vred. u deljenojmemoriji u oba izvršenja
0p
odlučuje 00p
odlučuje 00p
kontadikcija
0
ba
ba
0p
-
32
U svim slučajevima smo dobili kontradikciju;Zbog toga, postoji procesorkoji nije kritičan
C
0C
1C
1nC
bivalentna0p
1p
1np
univalentna
univalentna
univalentna
kC bivalentna(nije kritičan)
-
33
Zbog toga, možemo konstruisati izvršenje
0C 1C 2C
Početnakonfiguracija
0ip
1ip
2ip Nema
kraja
bivalentna bivalentna bivalentna
Konsenzus se nikada ne može postići
Kraj dokaza teoreme
-
34
Compare&Swap
Compare&Swap(X,A,B) { Temp X;
If X==A then X B;Return Temp; }
Deljena memorija
X
-
35
Teorema: Broj konsenzusa zaCompare&Swap objekt je
Dokaz:
Sa procesa, za bilo koje , možemo rešiti WF konsenzuskoristeći Compare&Swap objekt(i read/write objekte)
n n
-
36
Jedan algoritam WF konsenzusaza n procesora sa korišćenjem C&S objekta
Deljena memorija
1nx
0x
1np
0p
1ny
0y
First
Lokalna memorija
(compare&swapobjekt)
Početna vred
Konačna vred
-
37
Kod za procesor ip }1,0{i
If thenelse
),,(& ii xFirstSwapComparev
ii xy ii vy
//da li sam ja prvi?//da, izaberi moju vred
Napomena: ovaj algoritam koristi compare&swapi read/write objekte
iv
//ne, izaberi vrednostod prvog procesakoja je smeštena u First
-
38
Deljena memorija00 x
0p0y
First
Lokalna memorija
Primer izvršenja:
11 x1p
1y
02 x2p
2y
-
39
00 x0p
0y
Lokalna memorija
Predpost. da se izvršava prvi
11 x1p
1y
02 x2p
2y
2p
Compare&Swap(First, ,0)
Deljena memorija
First
-
40
00 x0p
0y
Lokalna memorija
11 x1p
1y
02 x2p
02 y
0
Deljena memorija
First
Shvata da je prvi, odlučuje se za svoju vred
Predpost. da se izvršava prvi2p
-
41
00 x0p
0y
Lakalna memorija
Predpost. da se izvršava drugi
11 x1p
1y
02 x2p
1p
Compare&Swap(First, ,1)
Deljena memorija
First0
02 y
-
42
00 x0p
0y
Lokalna memorija
11 x1p
01 y
02 x2p
Deljena memorija
First0
0
Shvata da nije prvi, odlučuje se za vred First02 y
Predpost. da se izvršava drugi1p
-
43
00 x0p
00 y
Lokalna memorija
11 x1p
01 y
02 x2p
Deljena memorija
First0
0
02 y
Slično za 0p Konsenzus jepostignut
Shvata da nije prvi, odlučuje se za vred First
-
44
Ovaj algoritam je WF, pošto poslezavršetka Compare&Swap operacije, svaki procesor odlučuje (bez razmatranjašta drugi procesori rade)
-
45
Hijerahija konsenzusaDeo 3
-
46
Broj konsenzusa
Broj konsenzusa za objekt datog tipa:
Maksimalan broj procesa za kojese objekt može koristiti za rešavanjeproblema WF konsenzusa(zajedno sa read/write objektima)
-
47
Tip objekta Broj konsenzusa
Read/Write 1
FIFO 2
Compare&Swap (beskonačno)
-
48
Simulacija:Objekt tipa B
Objekt tipa A
Objekt tipa A
Read/Write objekt
Objekt tipa A simulira objekt tipa B
-
49
Teorema: Objekt tipa A sabrojem konsenzusane može da simuliradrugi objekt tipa B sabrojem konsenzusa
n
nm
Dokaz: Jer bi inače, objekt tipa Aimao broj konsenzusa m
Kraj dokaza
-
50
Univerzalnost
može da simulira na WF načinbilo koji proizvoljni objekt
Univerzalni objekt:
-
51
Objekti sa brojem konsenzusa nmogu da simuliraju na WF načinbilo koji proizvoljan objekt za doprocesora
n
Možemo da pokažemo:
-
52
new-state
Compare&Swap
inv
responsebefore
new-stateinv
responsebefore
initial
glava
kotva
Simulacija bez blokiranja (Non-Blocking)
-
53
new-state
Simulacija bez blokiranja (Non-Blocking)
inv
responseafter
new-stateinv
responseafter
initial
Glava
kotvaseq seq 1
Polje after je objekt konsenzusa sa CN = nProcesi se bore da se ulančaju na vrh liste
Glava[i] je pokazivač za i-ti proces
-
54
new-stateinv
responseafter
Najava
seq=0
Prioritet ima proces pi, i = (seqmax + 1) % nAko čeka, svi mu pomažu, inače pomažu sebi
Simulacija oslobođena čekanja (Wait-free)
Najava[i] je pokazivač za i-ti proces
Glava
new-stateinv
responseafter
seq