hijerahija konsenzusa deo 2 · 2020. 6. 28. · dokaz – deo 1. 6 deljena memorija red druge...

54
1 Hijerahija konsenzusa Deo 2

Upload: others

Post on 14-Feb-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

  • 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