• Nebyly nalezeny žádné výsledky

2011Tom´aˇsJankovsk´y Anal´yzadistribuovan´ychalgoritm˚upomoc´ıPetrihos´ıt´ıAnalysisofDistributedAlgorithmsbyMeansofPetriNets VˇSB–Technick´auniverzitaOstravaFakultaelektrotechnikyainformatikyKatedrainformatiky

N/A
N/A
Protected

Academic year: 2022

Podíl "2011Tom´aˇsJankovsk´y Anal´yzadistribuovan´ychalgoritm˚upomoc´ıPetrihos´ıt´ıAnalysisofDistributedAlgorithmsbyMeansofPetriNets VˇSB–Technick´auniverzitaOstravaFakultaelektrotechnikyainformatikyKatedrainformatiky"

Copied!
83
0
0

Načítání.... (zobrazit plný text nyní)

Fulltext

(1)

Katedra informatiky

Anal ´yza distribuovan ´ych algoritm ˚u pomoc´ı Petriho s´ıt´ı

Analysis of Distributed Algorithms by Means of Petri Nets

2011 Tom ´aˇs Jankovsk´y

(2)

V Ostravˇe 2011 . . . .

Prohlaˇsuji, ˇze jsem tuto diplomovou pr´aci vypracoval samostatnˇe. Uvedl jsem vˇsechny liter´arn´ı prameny a publikace, ze kter ´ych jsem ˇcerpal.

V Ostravˇe 2011 . . . .

(3)
(4)

ritm ˚u pomoc´ı Petriho s´ıt´ı. Algoritmy typicky pˇredstaven´e pomoc´ı pseudok ´odu, jsou po- moc´ı popsan ´ych metod pˇrevedeny na Petriho s´ıtˇe. Pr´ace je doplnˇena ˇradou skript ˚u a ani- mac´ı, vytvoˇren ´ych ve volnˇe dostupn ´ych programov ´ych prostˇredc´ıch, pro dalˇs´ı pˇribl´ıˇzen´ı ˇcten´aˇri. Tato diplomov´a pr´ace obsahuje shrnut´ı a porovn´an´ı monografi´ı Elements of Dis- tributed Algorithms od W. Reisiga s monografi´ı Coloured Petri nets od K. Jensena a L. M.

Kristensena.

Kl´ıˇcov ´a slova: Distribuovan´e algoritmy, Petriho s´ıtˇe, anal ´yza, diplomov´a pr´ace

Abstract

This diploma thesis describes possibilities of modeling and analysis of distributed algo- rithms using Petri nets. Algorithms, typically introduced by pseudocode are converted to Petri nets using described methods. Thesis is extended by scripts and animations, created in freely available software, for further approach to reader. This diploma thesis contains summary and comparison between Elements of Distributed Algorithms by W.

Reisig and Coloured Petri nets by K. Jensen and L. M. Kristensen.

Keywords: Distributed algorithms, Petri Nets, Analysis, Master thesis

(5)

Obsah

1 Uvod´ 6

1.1 C´ıle diplomov´e pr´ace . . . 6

1.2 Shrnut´ı obsahu jednotliv ´ych kapitol . . . 7

2 Distribuovan´e algoritmy 8 2.1 Uvod . . . .´ 8

2.2 Distribuovan´e algoritmy . . . 8

2.3 Producent - konzument . . . 8

2.4 Definice Petriho s´ıtˇe, jej´ı struktura, pˇrechod . . . 11

2.5 Vz´ajemn´e vylouˇcen´ı . . . 14

2.6 Sd´ılen´ı zdroj ˚u . . . 16

2.7 Stavov´a anal ´yza Petriho s´ıt´ı . . . 19

2.8 Sd´ılen´ı zdroj ˚u - pokraˇcov´an´ı . . . 20

2.9 Grafov´a transformace Petriho s´ıtˇe . . . 23

2.10 V ´ybˇer vedouc´ıho . . . 27

2.11 Minim´aln´ı kostra grafu . . . 29

3 Vz´ajemn´e vylouˇcen´ı - model 32 3.1 Uvod . . . .´ 32

3.2 Probl´em . . . 32

3.3 Model . . . 33

3.4 Z´avˇer . . . 41

4 Vz´ajemn´e vylouˇcen´ı - anal ´yza 42 4.1 Uvod . . . .´ 42

4.2 Algebraick´e metody anal ´yzy Petriho s´ıt´ı . . . 42

4.3 Grafov´e metody anal ´yzy Petriho s´ıt´ı . . . 44

4.4 Anal ´yza model ˚u vz´ajemn´eho vylouˇcen´ı . . . 44

4.5 Z´avˇer . . . 47

5 Monografie Elements of Distributed Algorithms 49 5.1 Uvod . . . .´ 49

5.2 Z´akladn´ı syst´emov´e modely . . . 49

5.3 Pokroˇcil´e syst´emov´e modely . . . 54

5.4 Anal ´yza z´akladn´ıch syst´emov ´ych model ˚u . . . 58

5.5 Anal ´yza pokroˇcil ´ych syst´emov ´ych model ˚u . . . 65

5.6 Form´aln´ı anal ´yza pˇr´ıpadov ´ych studi´ı . . . 66

5.7 Zhodnocen´ı . . . 66

6 Animace 68 6.1 Uvod . . . .´ 68

6.2 Proces tvorby . . . 68

6.3 Popis jednotliv ´ych animac´ı . . . 68

(6)

6.4 Z´avˇer . . . 69

7 Z´avˇer 70 Pˇr´ılohy 72 A Literatura 72 B jPNS 73 B.1 Uvod . . . .´ 73

B.2 Instalace a spuˇstˇen´ı . . . 73

B.3 Ovl´ad´an´ı . . . 73

C CPN Tools 75 C.1 Uvod . . . .´ 75

C.2 Instalace a spuˇstˇen´ı . . . 75

C.3 Monografie Coloured Petri nets . . . 75

C.4 Popis aplikace CPN Tools . . . 76

C.5 Srovn´an´ı s Elements of distributed algoritms . . . 77 D Programov´e prostˇredky pouˇzit´e pro vytvoˇren´ı animac´ı 79

(7)

Seznam obr ´azk ˚u

1 Stavov´e zobrazen´ı syst´emu producent - konzument . . . 9

2 Syst´em producent - konzument . . . 10

3 Jednoduch´a s´ıˇt . . . 11

4 Jednoduch´a s´ıˇt po proveden´ı pˇrechodu . . . 12

5 Proveden´ı pˇrechodu v s´ıti s n´asobn ´ymi hranami . . . 13

6 Producent - konzument po proveden´ı pˇrechod ˚u . . . 14

7 Vz´ajemn´e vylouˇcen´ı . . . 14

8 Algoritmus vz´ajemn´eho vylouˇcen´ı . . . 16

9 Distribuovan ´y algoritmus hladov ´ych filozof ˚u . . . 17

10 Uv´aznut´ı v algoritmu hladov ´ych filozof ˚u . . . 18

11 Algoritmus hladov ´ych filozof ˚u bez uv´aznut´ı . . . 21

12 Fragment Lehmann-Rabinova algoritmu uchopen´ı h ˚ulek . . . 23

13 Spojen´ı sekvence m´ıst a pˇrechod ˚u . . . 24

14 Syst´em producent - konzument pro dva objekty . . . 24

15 Syst´em producent - konzument pro x objekt ˚u . . . 25

16 Algoritmus hladov ´ych filozof ˚u pro 3 filozofy . . . 26

17 Algoritmus hladov ´ych filozof ˚u se spojen ´ymi m´ısty . . . 26

18 Zobecnˇen ´y algoritmus 3 hladov ´ych filozof ˚u . . . 27

19 S´ıˇt typu token ring . . . 27

20 V ´ybˇer vedouc´ıho . . . 29

21 Minim´aln´ı kostra . . . 30

22 Minim´aln´ı kostra grafu . . . 30

23 Model vz´ajemn´eho vylouˇcen´ı ˇc. 1 . . . 34

24 Model vz´ajemn´eho vylouˇcen´ı ˇc. 2 . . . 36

25 Opraven ´y model vz´ajemn´eho vylouˇcen´ı ˇc. 2 . . . 37

26 Koneˇcn ´y model vz´ajemn´eho vylouˇcen´ı ˇc. 2 . . . 38

27 Dekker ˚uv algoritmus . . . 40

28 Pˇr´ıklad pasti a z´amku . . . 44

29 P-invariant algoritmu vz´ajemn´eho vylouˇcen´ı . . . 45

30 P-invariant modelu vz´ajemn´eho vylouˇcen´ı ˇc.1 . . . 46

31 Past v upraven´em algoritmu vz´ajemn´eho vylouˇcen´ı . . . 47

32 Maxim´aln´ı jedineˇcn´a soubˇeˇzn´a sekvence syst´emu producent - konzument z obr´azku ˇc´ıslo 2 . . . 50

33 Pr ˚ubˇeh algoritmu hladov ´ych filozof ˚u zapsan ´y zkr´acenou formou . . . 52

34 Dekker ˚uv algoritmus podle W. Reisiga . . . 53

35 Distribuovan ´y algoritmus Eratosthenova s´ıta . . . 54

36 Distribuovan ´y algoritmus hled´an´ı maxim´aln´ı hodnoty . . . 55

37 Distribuovan ´y algoritmus konsensu . . . 57

38 Distribuovan ´y algoritmus . . . 59

39 Invariant A + C + D = 1 . . . 60

40 Past A, D . . . 61

41 Vedouc´ı formule A, B→D . . . 62

(8)

42 Asymetrick ´y algoritmus vz´ajemn´eho vylouˇcen´ı . . . 62

43 D ˚ukazov ´y graf|=B→C . . . 64

44 Soubˇeˇzn ´y bˇeh A7→B . . . 64

45 Soubˇeˇzn ´y bˇeh A7→B . . . 66

46 Pracovn´ı prostˇred´ı aplikace jPNS . . . 74

47 CPN Tools . . . 77

(9)

Seznam v ´ypis ˚ u zdrojov ´eho k ´odu

1 Producent - konzument . . . 9

2 Vz´ajemn´e vylouˇcen´ı . . . 15

3 ˇZivot filozofa . . . 16

4 Lehmann-Rabin ˚uv algoritmus . . . 22

5 Popis probl´emu vz´ajemn´eho vylouˇcen´ı . . . 32

6 Model vz´ajemn´eho vylouˇcen´ı ˇc. 1 . . . 34

7 Model vz´ajemn´eho vylouˇcen´ı ˇc. 2 . . . 35

8 Opraven ´y model vz´ajemn´eho vylouˇcen´ı ˇc. 2 . . . 36

9 Koneˇcn ´y model vz´ajemn´eho vylouˇcen´ı ˇc. 2 . . . 37

10 Dekker ˚uv algoritmus . . . 39

(10)

1 Uvod ´

Jak se v souˇcasn´e dobˇe rozˇsiˇruje pokryt´ı obor ˚u lidsk´e ˇcinnosti automatick ´ymi syst´emy, t´ım tak´e nar ˚ust´a potˇreba tyto syst´emy korektnˇe ˇr´ıdit, zajistit jejich optim´aln´ı spolupr´aci a souˇcinnost. Souˇc´ast´ı tˇechto ˇr´ıd´ıc´ıch prvk ˚u jsou tak´e takzvan´e distribuovan´e algoritmy.

Term´ın distribuovan ´y algoritmus se zpoˇc´atku vztahoval pouze na syst´emy, kter´e byly vytvoˇreny pro pr´aci s mnoha procesory rozm´ıstˇen ´ymi ve velk´e geografick´e oblasti.

V pr ˚ubˇehu ˇcasu se tento term´ın pˇrenesl a nyn´ı popisuje i algoritmy pracuj´ıc´ımi v m´ıstn´ı s´ıti nebo pˇr´ıpadnˇe ve sd´ılen´e pamˇeti multiprocesoru. Distribuovan´e algoritmy jsou dnes souˇc´ast´ı cel´e ˇrady aplikac´ı, zahrnuj´ıc´ı telekomunikace, distribuovan´e informaˇcn´ı procesy nebo sledov´an´ı proces ˚u v re´aln´em ˇcase. Vˇetˇsina souˇcasn ´ych kontroln´ıch syst´em ˚u, jako jsou syst´emy ˇr´ızen´ı letov´eho provozu nebo syst´emy kontroluj´ıc´ı jadern´e elektr´arny, jsou kriticky z´avisl´e na distribuovan ´ych syst´emech. Proto je nutn´e, aby tyto syst´emy byly maxim´alnˇe spolehliv´e a efektivn´ı, a to i v pˇr´ıpadˇe velmi sloˇzit ´ych proces ˚u.

Tato diplomov´a pr´ace se zab ´yv´a problematikou z´akladn´ıch distribuovan ´ych syst´em ˚u, jejich reprezentac´ı pomoc´ı Petriho s´ıt´ı a anal ´yzou, kterou tato reprezentace umoˇz ˇnuje.

1.1 C´ıle diplomov ´e pr ´ace

C´ılem t´eto diplomov´e pr´ace je sezn´amit ˇcten´aˇre s nˇekolika vybran ´ymi probl´emy dis- tribuovan ´ych algoritm ˚u a jejich obvyklou reprezentac´ı pomoc´ı programov´eho pseudok ´o- du. Algoritmy obsaˇzen´e v t´eto diplomov´e pr´aci jsem studoval z jejich p ˚uvodn´ıch zdroj ˚u, a jako jeden z pˇr´ınos ˚u t´eto diplomov´e pr´ace vid´ım sezn´amen´ı ˇcten´aˇre s tˇemito d´ıly.

Programov ´y pseudok ´od vybran ´ych algoritm ˚u bude porovn´an s reprezentac´ı pomoc´ı Petriho s´ıt´ı. ˇCten´aˇr se tak m ˚uˇze sezn´amit se z´akladn´ımi prvky teorie Petriho s´ıt´ı a bude schopen porozumˇet, navrhnout a analyzovat jednoduch´e algoritmy s´am.

Reprezentace distribuovan ´ych algoritm ˚u pomoc´ı Petriho s´ıt´ı je pops´ana v monografii Reisig, W. : Elements of distributed algorithms (Springer 1998). ˇCten´aˇr se bude moci sezn´amit s obsahem tohoto d´ıla. Dalˇs´ı pˇr´ınos t´eto diplomov´e pr´ace nab´ız´ı porovn´an´ı v ´yˇse uveden´e monografie s monografi´ı Coloured Petri nets (Springer 2009), kterou jsem prostudoval aˇz v pr ˚ubˇehu vytv´aˇren´ı animac´ı, a kter´a na problematiku vyuˇzit´ı Petriho s´ıt´ı nahl´ıˇz´ı z jin´eho ´uhlu.

D ˚uleˇzitou souˇc´ast´ı m´e diplomov´e pr´ace jsou elektronick´e animace popisuj´ıc´ı distribuo- van´e algoritmy, vybran´e po dohodˇe s vedouc´ım diplomov´e pr´ace. Algoritmy byly vybr´any tak, aby pokryly nejz´akladnˇejˇs´ı probl´emy v oblasti distribuovan´e informatiky. Z d ˚uvodu srovn´an´ı jsou uveden´e algoritmy tak´e obsaˇzeny v monografii Elements of distributed al- gorithms. Moˇznosti modelov´an´ı a anal ´yzy budou pˇredvedeny na algoritmu vz´ajemn´eho vylouˇcen´ı v nˇekolika variant´ach, ve kter ´ych se pokus´ım zhodnotit vyuˇzit´ı v ´ypoˇcetn´ı s´ıly Petriho s´ıt´ı k tomuto ´uˇcelu. Spolu s elektronick ´ymi animacemi vytvoˇr´ım ve volnˇe dostupn ´ych aplikac´ıch soubor pˇr´ıklad ˚u distribuovan ´ych algoritm ˚u, popisovan ´ych v t´eto diplomov´e pr´aci, kter´e detailnˇeji pˇribl´ıˇz´ı problematiku budouc´ım diplomant ˚um. Z´avˇerem provedu i srovn´an´ı mezi pouˇzit ´ymi programov ´ymi n´astroji.

(11)

1.2 Shrnut´ı obsahu jednotliv ´ych kapitol

Teoretick´a ˇc´ast t´eto diplomov´e pr´ace se skl´ad´a ze ˇctyˇr hlavn´ıch ˇc´ast´ı.

Kapitola 2 se zab ´yv´a z´aklady distribuovan ´ych algoritm ˚u. ˇCten´aˇr se sezn´am´ı s nˇekolika vybran ´ymi distribuovan ´ymi algoritmy a jejich reprezentac´ı pomoc´ı fragment ˚u pseudok ´o- d ˚u. Na tˇechto algoritmech bude pˇredstaveno i pouˇzit´ı Petriho s´ıt´ı jako alternativy pro modelov´an´ı chov´an´ı a vlastn´ı anal ´yzu distribuovan ´ych syst´em ˚u. Pro ˇcten´aˇre, kteˇr´ı se s Petriho s´ıtˇemi dosud nesetkali, tato kapitola pˇrin´aˇs´ı i form´aln´ı z´aklady teorie Petriho s´ıt´ı.

Kapitola 3 je zamˇeˇrena na algoritmus vz´ajemn´eho vylouˇcen´ı. V t´eto kapitole je zn´azor- nˇeno postupn´e modelov´an´ı tohoto algoritmu spoleˇcnˇe s anal ´yzou jednotliv ´ych krok ˚u.

Jednoduch ´y model je podroben anal ´yze a na z´akladˇe zjiˇstˇen ´ych nedostatk ˚u je k nˇemu pˇripojov´ana dalˇs´ı konstrukce, kter´a zajist´ı vˇsechny poˇzadovan´e vlastnosti, a cel ´y tento proces je nˇekolikr´at zopakov´an. Na tomto konkr´etn´ım pˇr´ıpadu bude moci ˇcten´aˇr porov- nat rozd´ıly modelov´an´ı pomoc´ı pseudok ´odu a s pomoc´ı Petriho s´ıt´ı.

N´asleduj´ıc´ı kapitola 4 popisuje form´aln´ı anal ´yzu algoritm ˚u z pˇredeˇsl´e kapitoly s ohle- dem na ˇz´adouc´ı vlastnosti. V r´amci t´eto kapitoly se ˇcten´aˇr sezn´am´ı se dvˇema z´akladn´ımi pˇr´ıstupy anal ´yzy Petriho s´ıt´ı a to s algebraickou metodou pomoc´ı incidenˇcn´ı matice, a d´ale s metodou grafovou, kter´a pro anal ´yzu vyuˇz´ıv´a speci´aln´ı struktury obsaˇzen´e v Petriho s´ıti.

Kapitola 5 pˇrin´aˇs´ı ˇcten´aˇri n´ahled do monografie Reisig, W.: Elements of Distributed Algorithms (Springer 1998). ˇCten´aˇr se sezn´am´ı se zamˇeˇren´ım t´eto knihy, s pouˇzit ´ymi technikami jej´ıho autora a v neposledn´ı ˇradˇe se srovn´an´ım nˇekter ´ych jeho algoritm ˚u s algoritmy, kter´e vzeˇsly z t´eto diplomov´e pr´ace. Touto kapitolou konˇc´ı teoretick´a ˇc´ast diplomov´e pr´ace.

Kapitola 6 se vˇenuje vlastn´ımu postupu vytvoˇren´ı animac´ı pro tuto diplomovou pr´aci a jejich kr´atk´emu popisu.

(12)

2 Distribuovan ´e algoritmy

2.1 Uvod´

Tato kapitola je zamˇeˇrena na popis probl´emu distribuovan ´ych algoritm ˚u. Cten´aˇr seˇ sezn´am´ı s nˇekolika distribuovan ´ymi algoritmy, kter´e se pouˇz´ıvaj´ı pro ˇreˇsen´ı z´akladn´ıch v ´ypoˇcetn´ıch probl´em ˚u. S ohledem na moˇznosti srovn´an´ı jsem vyb´ıral pouze takov´e al- goritmy, kter´e jsou obsaˇzeny i v monografii Elements of Distributed Algorithms. Jed- notliv´e distribuovan´e algoritmy jsou reprezentov´any jak v programov´em pseudok ´odu, tak i Petriho s´ıtˇemi, kter´e jsou doplnˇeny odpov´ıdaj´ıc´ım teoretick ´ym z´akladem. Infor- mace k t´eto kapitole jsem ˇcerpal z monografi´ı [1], [2] a [3].

2.2 Distribuovan ´e algoritmy

V souˇcasn´e dobˇe jsme obklopeni mnoˇzstv´ım prvk ˚u a proces ˚u spojen ´ych navz´ajem v s´ıt´ıch a komunikuj´ıc´ıch mezi sebou za ´uˇcelem splnˇen´ı spoleˇcn´eho ´ukolu. Tyto pro- cesy mus´ı jednat spont´annˇe a nez´avisle na sobˇe, ale s ohledem na ostatn´ı, a tak vytv´aˇrej´ı spoleˇcn´e - distribuovan´e v ´ypoˇcetn´ı prostˇred´ı. I kdyˇz jednotliv´e procesy tohoto prostˇred´ı jsou schopn´e nez´avisl´e pr´ace, pouze jejich spojen´ı umoˇz ˇnuje splnˇen´ı zadan´eho ´ukolu.

Abychom tyto spoleˇcn´e ´ukoly mohli vyˇreˇsit, mus´ıme vytvoˇrit sadu pravidel urˇcuj´ıc´ıch, kdo m´a co dˇelat, pokud moˇzno bez synchronizace a dohledu zvenˇc´ı. Mus´ıme tedy vytvoˇrit distribuovan ´y algoritmus, kter ´y zaruˇcuje jak korektnost (tedy spr´avn´e vyˇreˇsen´ı zadan´eho probl´emu) tak i efektivnost (vytvoˇren ´y algoritmus mus´ı m´ıt pˇrimˇeˇrenˇe mal´e n´aklady).

Distribuovan´e algoritmy jsou tedy celky, spojuj´ıc´ı algoritmy jednotliv ´ych proces ˚u.

Tyto procesy jsou ˇcasto prov´adˇeny soubˇeˇznˇe na nez´avisl ´ych procesorech a maj´ı pouze ˇc´asteˇcnou informaci o tom, co dˇel´a zbytek algoritmu.

Proto z´akladn´ım c´ılem pˇri tvorbˇe distribuovan´eho algoritmu je ´uspˇeˇsn´a spolupr´ace jeho jednotliv ´ych ˇc´ast´ı nez´avisle na moˇzn ´ych chyb´ach ˇci pˇreruˇsen´ı komunikace. Jen tyto algoritmy mohou b ´yt ´uspˇeˇsnˇe implementov´any pro ˇr´ızen´ı kritick ´ych proces ˚u, jako jsou syst´emy ˇr´ızen´ı letov´eho provozu nebo syst´emy ˇr´ızen´ı jadern ´ych elektr´aren. V ´ybˇer odpov´ıdaj´ıc´ıho algoritmu potom z´avis´ı na charakteristice probl´emu a tak´e na charakte- ristice samotn´eho algoritmu.

2.3 Producent - konzument

Jedn´ım z nejjednoduˇsˇs´ıch distribuovan ´ych algoritm ˚u je syst´em producent - konzument.

M ˚uˇzeme si ho pˇredstavit jako soustavu dvou proces ˚u, producenta a konzumenta, kter´e vykon´avaj´ı nˇekolik akc´ı - vyrob, dodej na sklad, vyjmi ze skladu, spotˇrebuj. D´ale budeme uvaˇzovat o skladov´em m´ıstˇe s kapacitou jedn´e poloˇzky. Tento algoritmus bˇeˇznˇe nach´az´ı uplatnˇen´ı v r ˚uzn ´ych oblastech, od datab´az´ı, pˇres komunikaˇcn´ı protokoly, aˇz po operaˇcn´ı syst´emy.

(13)

Ps´ano v programov´em pseudok ´odu vypad´a tento algoritmus takto:

(sklad : integer; sklad := 0);

begin parbegin

producent: beginP1: vyrob;

if sklad = 0thensklad := 1; gotoP1 end;

konzument:beginK1: if sklad = 1thensklad := 0; spotˇrebuj;

gotoK1;

end;

parend end;

V ´ypis 1: Producent - konzument

Pseudopˇr´ıkazyparbeginaparendvymezuj´ı oblast, ve kter´e oba procesy, producent i konzument, prob´ıhaj´ı paralelnˇe.

Dalˇs´ı moˇznost´ı, jak tento syst´em popsat, je pomoc´ı reprezentace stav ˚u jednotliv ´ych proces ˚u. Pro tento popis si cel ´y syst´em rozdˇel´ıme na tˇri podsyst´emy - producent, sklad a konzument. Kaˇzd ´y z tˇechto podsyst´em˚u m ˚uˇze nab ´yt pouze dvou lok´aln´ıch stav ˚u. Pro- ducent se m ˚uˇze nach´azet bu ˇd ve stavupˇripraven k v´yrobˇe(pv) nebopˇripraven k dod´an´ına sklad (pd). Konzument m´a stavypˇripraven k odebr´an´ıze skladu (po) apˇripraven ke spotˇrebˇe (ps) a sklad m´a stavypln´y(s1) apr´azdn´y(s0).

pv pd

s0 s1

po ps

producent sklad konzument

Figure 1: Stavov´e zobrazen´ı syst´emu producent - konzument

Nicm´enˇe tento diagram nepopisuje syst´em jako celek, a je proto nutn´e dodat infor- maci o tom, jak se chovaj´ı jednotliv´e procesy. Procespdpva process0s1prob´ıhaj´ı souˇcasnˇe. To stejn´e plat´ı pro procesypopsas1s0. Tato informace mus´ı b ´yt poskyt- nuta dodateˇcnˇe.

(14)

Jin ´y pohled na tento algoritmus pˇredstavuje popis akc´ı, kter´e jednotliv´e podsyst´emy prov´adˇej´ı. Producent stˇr´ıd´a akciv´yroba (v) adod´an´ına sklad (d) a nekoneˇcn´a sekvence vdvdvd... popisuje jeho chov´an´ı. To stejn´e plat´ı pro akce konzumenta -odbˇerze skladu (o) aspotˇreba(s). Akce skladu jsou spojeny sdod´an´ımaodbˇerem, oznaˇc´ıme je proto ¯da ¯o.

Vˇsechny tyto sekvence m ˚uˇzeme zapsat pomoc´ı rovnice:

producent = v.d.producent konzument = o.s.konzument

sklad = ¯d. ¯o.sklad

Cel ´y syst´em pak m ˚uˇzeme zapsat pomoc´ı paraleln´ıho oper´atoruk, kde pro kaˇzd´e x a ¯x plat´ı, ˇze probˇehnou souˇcasnˇe.

producentkskladkkonzument

Obˇe v ´yˇse zm´ınˇen´e metody popisu syst´emu se d´ıvaj´ı na celek jen pod jedn´ım ´uhlem, bu ˇd jako soustavu r ˚uzn ´ych stav ˚u, nebo jako soustavu r ˚uzn ´ych akc´ı, doplnˇenou o dalˇs´ı potˇrebn´e informace.

Na druh´e stranˇe stoj´ı metoda popisu pomoc´ı Petriho s´ıt´ı, kter´a sama o sobˇe poskytuje v ´yˇse zm´ınˇen´e informace, a nav´ıc umoˇz ˇnuje z´ıskat informace dalˇs´ı.

Na n´asleduj´ıc´ım obr´azku stejn ´y syst´em reprezentovan ´y Petriho s´ıt´ı.

• • •

Figure 2: Syst´em producent - konzument

Z tohoto obr´azku, i bez pˇredchoz´ı znalosti Petriho s´ıt´ı, je moˇzn´e intuitivnˇe pochopit tento algoritmus i jeho pr ˚ubˇeh. Lev´a ˇc´ast je syst´em producent, ve stˇredu se nal´ez´a sklad a vpravo je syst´em konzument.

(15)

2.4 Definice Petriho s´ıt ˇe, jej´ı struktura, pˇrechod

Na pˇr´ıkladu algoritmu producent konzument si definujeme z´akladn´ı prvky Petriho s´ıt´ı.

Petriho s´ıtˇe se skl´adaj´ı z m´ıst (stav ˚u), kter´e vyjadˇruj´ı podm´ınku, a ud´alost´ı, kter´e jsou reprezentovan´e pˇrechody. M´ısta jsou graficky zn´azornˇena kruˇznic´ı, pˇrechody oznaˇcuje- me obd´eln´ıkem, nebo ´useˇckou. M´ısta jsou spojena s pˇrechody pomoc´ı orientovan ´ych hran. Vˇzdy je spojeno m´ısto s pˇrechodem nebo pˇrechod s m´ıstem. Nikdy nejsou spo- jeny pˇrechody s jin ´ym pˇrechodem a m´ısto s jin ´ym m´ıstem. V ´ysledkem je bipartitn´ı graf s dvˇema typy uzl ˚u, m´ısty a pˇrechody, a s orientovan ´ymi hranami. Na n´asleduj´ıc´ım obr´azku ˇc´ıslo 3 je jednoduch´a s´ıˇt, kter´a m ˚uˇze reprezentovat podsyst´em producent.

Figure 3: Jednoduch´a s´ıˇt Nyn´ı si definujeme form´alnˇe Petriho s´ıˇt.

Definice 2.1 Struktura Petriho s´ıtˇe je pˇeticehP, T, I, O, Hi, kde

P je koneˇcn´a mnoˇzina m´ıst

T je koneˇcn´a mnoˇzina pˇrechod ˚u

I,O,H jsou zobrazen´ı typu TPMS,po ˇradˇe vstupn´ı funkce, v´ystupn´ı funkce a vstupn´ı inhibiˇcn´ı funkce

PMSje mnoˇzina vˇsech multimnoˇzin nad mnoˇzinou P

Pro naˇse ´uˇcely budeme uvaˇzovat speci´aln´ı pˇr´ıpad, kdy inhibiˇcn´ı funkce pˇriˇrazuje vˇsem pˇrechod ˚um t∈T pr´azdnou multimnoˇzinu z PMS. V tomto pˇr´ıpadˇe nen´ı potˇreba inhibiˇcn´ı funkci H ve struktuˇre PN uv´adˇet.

Souˇcasn ´y stav cel´eho syst´emu se zn´azor ˇnuje pomoc´ı znaˇcek zvan ´ych tokeny, kter´e se umisˇtuj´ı do jednotliv ´ych m´ıst. Syst´em vˇzdy vych´az´ı z poˇc´ateˇcn´ıho znaˇcen´ı, coˇz je v ´ychoz´ı znaˇcen´ı pˇred proveden´ım jak´ehokoliv pˇrechodu. Form´alnˇe ˇreˇceno:

(16)

Definice 2.2 Syst´em Petriho s´ıtˇe (PN syst´em) je pˇeticehP, T, I, O, M0i, kde

• hP, T, I, O,ije struktura PN

M0 je zobrazen´ı typu PN, tzv. poˇc´ateˇcn´ı znaˇcen´ı, kde N je mnoˇzina pˇrirozen´ych ˇc´ısel Obecnˇe symbolem M oznaˇcujeme jak´ekoliv zobrazen´ı PN.

Pˇrechod do nov´eho m´ısta je umoˇznˇen splnˇen´ım podm´ınek pˇrechodu, kter ´y urˇcuj´ı poˇcty odeb´ıran ´ych a um´ısˇtovan ´ych token ˚u. V grafu je to zn´azornˇeno ohodnocen´ım ori- entovan ´ych hran. Pokud nen´ı explicitnˇe uvedeno hodnocen´ı hrany, m´a implicitnˇe hodno- cen´ı 1. Pˇrechod se m ˚uˇze uskuteˇcnit tehdy, kdyˇz vˇsechna vstupn´ı m´ısta obsahuj´ı dostateˇc- n ´y poˇcet token ˚u.

Definice 2.3 Pˇrechod t je provediteln´y pˇri znaˇcen´ı M, jestliˇze plat´ı

(∀p∈t)[M(p)≥I(t,p)]

Kde

t je mnoˇzina vstupn´ıch m´ıst pˇrechodu t

M(p) je pˇrirozen´e ˇc´ıslo urˇcuj´ıc´ı poˇcet token ˚u v m´ıstˇe p

I(t,p) je n´asobnost hrany z m´ısta p do pˇrechodu t

Po proveden´ı pˇrechodu se tokeny odeberou ze vstupn´ıch m´ıst v z´avislosti na ohod- nocen´ı orientovan ´ych hran vystupuj´ıc´ıch ze vstupn´ıch m´ıst a um´ıst´ı do v ´ystupn´ıch m´ıst opˇet v z´avislosti na ohodnocen´ı orientovan ´ych hran, kter´e do nich vstupuj´ı.

Figure 4: Jednoduch´a s´ıˇt po proveden´ı pˇrechodu

Mnoˇzinu pˇrechod ˚u provediteln ´ych pˇri znaˇcen´ı M oznaˇc´ıme jako E(M). Znaˇcen´ı, pˇri kter´em nen´ı ˇz´adn ´y pˇrechod provediteln ´y, oznaˇcujeme uzamˇcen´ı. Tomuto speci´aln´ımu stavu syst´emu se budeme vˇenovat pozdˇeji.

(17)

Definice 2.4 Proveden´ı pˇrechodu t pˇri znaˇcen´ı M, vede od znaˇcen´ı M k znaˇcen´ı M’ takov´emu, ˇze plat´ı:

(pP)[M’(p)=M(p)+O(t,p)-I(t,p)] Kde O(t,p) je n´asobnost hrany z pˇrechodu t do m´ısta p

Proveden´ı pˇrechodu v s´ıt´ıch, kter´e obsahuj´ı n´asobn´e hrany, je zn´azornˇeno na obr´azku ˇc´ıslo 5.

=⇒

•••

••

2

2

2

2

Figure 5: Proveden´ı pˇrechodu v s´ıti s n´asobn ´ymi hranami

Jak je vidˇet na tomto obr´azku, mohou se tokeny v syst´emu Petriho s´ıt´ı ztr´acet. M ˚uˇze vˇsak nastat situace, kdy se tokeny mohou i generovat. Tyto vlastnosti vyuˇz´ıvaj´ı speci´aln´ı struktury Petriho s´ıt´ı, ke kter ´ym se vr´at´ıme pozdˇeji.

Vybaveni touto teori´ı se jiˇz m ˚uˇzeme vr´atit k syst´emu producent a konzument a uk´azat si stav syst´emu po proveden´ı nˇekolika pˇrechod ˚u. Pro lepˇs´ı n´azornost si vˇsechna m´ısta a pˇrechody syst´emu pojmenujeme. Syst´em jiˇz proˇsel nˇekolika cykly a nyn´ı je podsyst´em producent ve stavupˇripraven k dod´an´ı, je pln ´y sklad a podsyst´em konzument je pˇripraven ke spotˇrebˇe. Popsanou situaci zn´azor ˇnuje n´asleduj´ıc´ı obr´azek ˇc´ıslo 6.

Jak je vidˇet na obr´azku ˇc´ıslo 6, je v uveden´em znaˇcen´ı moˇzn´e prov´est pouze jedin ´y pˇrechod a toodbˇer. Ostatn´ı pˇrechody nen´ı moˇzn´e prov´est, protoˇze nˇekter´a jejich vstupn´ı m´ısta nemaj´ı dostateˇcn ´y poˇcet token ˚u. Po proveden´ı pˇrechoduodbˇerse vypr´azdn´ı sklad a syst´em bude moci prov´est bu ˇd doplnˇen´ı skladu, nebo akci spotˇreby.

Reprezentace pomoc´ı Petriho s´ıt´ı umoˇz ˇnuje postihnout cel ´y syst´em, prov´az´an´ı jed- notliv ´ych soubˇeˇzn ´ych akc´ı, podm´ınky pro jejich proveden´ı a z´arove ˇn pomoc´ı token ˚u m ˚uˇzeme nasimulovat i dynamiku cel´eho syst´emu a vˇsechny jeho moˇzn´e stavy. V nepo- sledn´ı ˇradˇe, d´ıky grafov´e struktuˇre, m ˚uˇzeme pouˇz´ıt cel ´y apar´at teorie graf ˚u na anal ´yzu tohoto syst´emu a d´ıky nˇemu napˇr´ıklad urˇcit, zda je syst´emreverzibiln´ı(tedy je moˇzn´e se

(18)

pˇripraven k v ´yrobˇe pr´azdn ´y sklad pˇripraven k odebr´an´ı ze skladu

pˇripraven k dod´an´ı pˇripraven ke spotˇrebˇe

pln ´y sklad

v ´yroba dod´an´ı odbˇer spotˇreba

Figure 6: Producent - konzument po proveden´ı pˇrechod ˚u

vr´atit do poˇc´ateˇcn´ıho stavu), nebo zda je syst´emuzavˇren´y(jestliˇze z poˇc´ateˇcn´ıho znaˇcen´ı je dosaˇziteln´e znaˇcen´ı, ve kter´em nen´ı ˇz´adn ´y pˇrechod provediteln ´y.)

2.5 Vz ´ajemn ´e vylou ˇcen´ı

Dalˇs´ım jednoduch ´ym, ale ˇcasto se vyskytuj´ıc´ım probl´emem v informatice je probl´em vz´ajemn´eho vylouˇcen´ı. Algoritmus vz´ajemn´eho vylouˇcen´ı, kter ´y byl poprv´e pops´an E. W. Dijkstrou v [5], zaruˇcuje pˇr´ıstup ke sd´ılen´emu zdroji pouze jedin´emu procesu v dan ´y okamˇzik. Tento probl´em se bˇeˇznˇe vyskytuje v operaˇcn´ıch syst´emech, datab´az´ıch, poˇc´ıtaˇcov ´ych s´ıt´ıch, vˇsude tam kde je potˇrebn´e vyˇreˇsit konflikt, ke kter´emu doch´az´ı v pˇr´ıpadˇe pokusu o pˇr´ıstup k jedin´emu sd´ılen´emu zdroji v´ıce procesy.

Pˇr´ıkladem mohou b ´yt dva procesy, proces 1 a proces 2, kter´e pracuj´ı nez´avisle na sobˇe a kaˇzd ´y z nich m´a urˇcitou ˇc´ast, zvanoukritick´a sekce, do kter´e mus´ı m´ıt voln ´y pˇr´ıstup, ale vstoupit do n´ı m ˚uˇze v jednom okamˇziku pouze jeden z proces ˚u.

proces 1

proces 2

sd´ılen´e zdroje crit1

crit2

A

B

Figure 7: Vz´ajemn´e vylouˇcen´ı

(19)

Takovou kritickou sekc´ı m ˚uˇze b ´yt napˇr´ıklad pˇr´ıstup ke sd´ılen´e pamˇeti, do kter´e m ˚uˇze pˇristupovat pouze jedin ´y proces. ˇReˇsen´ı tohoto probl´emu zahrnuje nejen pouh´e zajiˇstˇen´ı pˇr´ıstupu pouze jednoho procesu v dan´em okamˇziku, ale je nutn´e vyˇreˇsit i dalˇs´ı probl´emy s t´ımto spojen´e, ke kter ´ym patˇr´ı uv´aznut´ı v nˇejak´e f´azi pr ˚ubˇehu algoritmu, nebo nemoˇz- nost faktick´eho vstupu jednoho z proces ˚u do sv´e kritick´e sekce.

Nejjednoduˇsˇs´ım ˇreˇsen´ım je pouˇzit´ı kl´ıˇce, kdy pouze proces maj´ıc´ı kl´ıˇc m ˚uˇze vstoupit do sv´e kritick´e sekce. Pro form´aln´ı z´apis programov ´ym pseudok ´odem budeme uvaˇzovat dva procesy P1 a P2 a promˇennou kl´ıˇc. Z´apis vypad´a takto:

( kl´ıˇc : integer; kl´ıˇc := 1);

begin parbegin

proces 1: beginP1: if kl´ıˇc := 0then gotoP1;

kl´ıˇc := 0 kritick ´a sekce 1 kl´ıˇc := 1

zbytek procesu 1;gotoP1 end;

proces 2: beginP2: if kl´ıˇc := 0then gotoP2;

kl´ıˇc := 0 kritick ´a sekce 2 kl´ıˇc := 1

zbytek procesu 2;gotoP2 end;

parend end;

V ´ypis 2: Vz´ajemn´e vylouˇcen´ı

Jiˇz z tohoto z´apisu je zˇrejm´e, ˇze zde chyb´ı jak ´ykoliv mechanismus, ˇr´ıd´ıc´ı pˇridˇelov´an´ı kl´ıˇce proces ˚um. Pokud se pod´ıv´ame na grafickou reprezentaci tohoto distribuovan´eho algoritmu pomoc´ı Petriho s´ıtˇe, dojdeme ke stejn´emu zjiˇstˇen´ı. Pokud proces 1 vezme kl´ıˇc a vstoup´ı do sv´e kritick´e sekce, nem ˚uˇze proces 2 udˇelat to sam´e.

Avˇsak toto trivi´aln´ı ˇreˇsen´ı s sebou nese nˇekolik probl´em ˚u, zejm´ena chybˇej´ıc´ı mecha- nismus pˇridˇelov´an´ı kl´ıˇce a tak´e moˇznost v ´yskytu situace, ˇze jeden z proces ˚u se do sv´e sekce nemus´ı nikdy dostat.

Algoritmu vz´ajemn´eho vylouˇcen´ı se budu vˇenovat podrobnˇeji v kapitole ˇc´ıslo 3, ale tato jednoduch´a s´ıˇt v sobˇe skr ´yv´a zaj´ımavou strukturu, kterou si bl´ıˇze pop´ıˇseme jiˇz nyn´ı.

V poˇc´ateˇcn´ım stavu jsou oba vstupy do kritick ´ych sekc´ı provediteln´e, protoˇze je ve vstupn´ıch m´ıstech dostateˇcn ´y poˇcet token ˚u pro proveden´ı pˇrechodu. Jak jiˇz bylo ˇreˇceno, pokud ale jeden z proces ˚u pˇrevezme kl´ıˇc a vstoup´ı do kritick´e sekce, odstran´ı t´ımto to- ken z m´ıstakl´ıˇca zamez´ı tak druh´emu procesu v proveden´ı vlastn´ıho pˇrechodu do sv´e kritick´e sekce. Form´alnˇe se tato situace naz ´yv´akonflikt.

Je to stav, kdy proveden´ı jednoho pˇrechodu sniˇzuje stupe ˇn proveditelnosti druh´eho pˇrechodu. Konflikty rozdˇelujeme nasymetrick´e (proveden´ı kter´ehokoliv pˇrechodu sn´ıˇz´ı stupe ˇn pˇrechodu toho druh´eho) aasymetrick´e(proveden´ı jednoho pˇrechodu sn´ıˇz´ı stupe ˇn

(20)

• • •

krit 1 kl´ıˇc krit 2

Figure 8: Algoritmus vz´ajemn´eho vylouˇcen´ı

proveditelnosti druh´eho pˇrechodu, ale ne naopak). V naˇsem pˇr´ıpadˇe se tedy jedn´a o konflikt symetrick ´y.

2.6 Sd´ılen´ı zdroj ˚u

Zobecnˇen´ım probl´emu vz´ajemn´eho vylouˇcen´ı dost´av´ame probl´em vz´ajemn´eho sd´ılen´ı v´ıce zdroj ˚u. Pˇr´ıkladem m ˚uˇze b ´yt proces vyˇzaduj´ıc´ı pro sv´e spuˇstˇen´ı v´ıce prostˇredk ˚u, jako je tisk´arna spolu s datab´az´ı a spolu se s´ıˇtov ´ym portem.

Vˇseobecnˇe zn´amou a popul´arn´ı verz´ı tohoto probl´emu je konfigurace nˇekolika sub- syst´em ˚u, kde je kaˇzd ´y zdroj sd´ılen dvˇema subsyst´emy a z´arove ˇn kaˇzd ´y z tˇechto sub- syst´em ˚u vyˇzaduje dva zdroje. Tento speci´aln´ı pˇr´ıpad byl pops´an poprv´e E. W. Dijsktrou [5] jako probl´em hladovˇej´ıc´ıch filozof ˚u. V tomto probl´emu filozofov´e pˇredstavuj´ı jed- notliv´e procesy a j´ıdeln´ı h ˚ulky pˇredstavuj´ı jejich zdroje. Filozofov´e sed´ı u spoleˇcn´eho stolu a po obou jejich stran´ach leˇz´ı h ˚ulky potˇrebn´e k j´ıdlu. Z tohoto nastaven´ı vypl ´yv´a, ˇze ˇz´adn ´y ze soused´ıc´ıch filozof ˚u nem ˚uˇze j´ıst z´arove ˇn. ´Ukolem tohoto algoritmu je za- jistit, aby kaˇzd ´y z filozof ˚u mˇel spravedliv ´y pˇr´ıstup k j´ıdeln´ım h ˚ulk´am, tedy aby kaˇzd ´y proces mˇel moˇznost se dostat ke sd´ılen ´ym zdroj ˚um.

Jednoduch ´y algoritmus popisuj´ıc´ı ˇzivot filozofa vypad´a takto:

cycle beginpˇrem´yˇslej;

uchop (pravou h ˚ulku);uchop (levou h ˚ulku);

jez ;

poloˇz (pravou h ˚ulku);poloˇz (levou h ˚ulku);

end;

V ´ypis 3: ˇZivot filozofa

(21)

Toto jednoduch´e ˇreˇsen´ı vˇsak opˇet obsahuje probl´em spravedliv´eho pˇr´ıstupu ke zdroj ˚um a nav´ıc m ˚uˇze doj´ıt kuv´aznut´ı(uzamˇcen´ı) syst´emu. Tento speci´aln´ı stav je moˇzn´e demon- strovat na Petriho s´ıti tohoto algoritmu. Z d ˚uvodu zjednoduˇsen´ı zn´azor ˇnuje n´asleduj´ıc´ı Petriho s´ıˇt pouze ˇctyˇri procesy.

At al

a2

a3 a4

Bl

Ce

Dp

Al Be

Cp

Dt

Ae Bp

Ct

Dl

Ap Bt

Cl

De

app arp brl

brp

cpl

crl

dpp

dpl

apl arl bpp

bpl

cpp

crp

drl drp

Figure 9: Distribuovan ´y algoritmus hladov ´ych filozof ˚u

Pro lepˇs´ı pochopen´ı si tento syst´em pop´ıˇseme. Filozofy si oznaˇc´ıme A, B,C,Da ti mohou b ´yt v jednom ze ˇctyˇr stav ˚u. Napˇr´ıklad filozof A proch´az´ı stavy At - pˇrem ´yˇsl´ı (poˇc´ateˇcn´ı stav kaˇzd´eho filozofa. Je ohodnocen jedn´ım tokenem), Ap- uchopil pravou h ˚ulku, Ae- j´ı (po uchopen´ı druh´e h ˚ulky), Al - odevzdal levou h ˚ulku. D´ale zde m´ame reprezentov´any samotn´e j´ıdeln´ı h ˚ulky - a1, a2, a3, a4. Token v tˇechto m´ıstech znaˇc´ı moˇznost uchopen´ı filozofem.

(22)

Uveden´a Petriho s´ıˇt obsahuje symetrick´e konflikty pr´avˇe pˇri procesech uchopen´ı jed- notliv ´ych h ˚ulek. Proces, kter ´y ji uchop´ı, znemoˇzn´ı sv´emu sousedovi vstup do stavuj´ı.

Protoˇze zde nen´ı ˇz´adn ´y mechanismus ˇr´ızen´ı pˇrevzet´ı h ˚ulek, m ˚uˇze nastat situace, kdy pouze proces A a proces C budou nekoneˇcnˇe dlouho prob´ıhat a na proces B a D nikdy nepˇrijde ˇrada.

Druh´e nebezpeˇc´ı, kter´e tato konstrukce skr ´yv´a, se naz ´yv´auv´aznut´ı(deadlock). Obecnˇe to je situace, kdy ˇz´adn ´y z proces ˚u nem ˚uˇze pokraˇcovat ve sv´e pr´aci. V nˇekter ´ych pˇr´ıpadech je uzamˇcen´ı ˇz´adouc´ı, tedy vyˇzadujeme, aby napˇr´ıklad program po urˇcit´em poˇctu krok ˚u skonˇcil. Naopak u operaˇcn´ıho syst´emu vyˇzadujeme, aby bˇeˇzel nepˇretrˇzitˇe, tedy neobsa- hoval ˇz´adn´a uzamˇcen´ı.

Vr´at´ıme-li se k naˇsemu pˇr´ıkladu, jistˇe vyˇzadujeme, aby mˇel kaˇzd ´y proces moˇznost vyuˇz´ıt sd´ılen´e prostˇredky a nav´ıc s relativnˇe spravedlivou ˇcetnost´ı. V tomto algoritmu dojde k uv´aznut´ı v okamˇziku, kdy kaˇzd ´y z filozof ˚u uchop´ı svou pravou h ˚ulku, tedy kaˇzd ´y z proces ˚u pˇrejde do stavup. V tuto chv´ıli jsou procesy uv´azl´e, protoˇze pro pˇrechod do dalˇs´ı f´aze potˇrebuj´ı pˇr´ıtomnost sv´e lev´e h ˚ulky, ale ta jiˇz nen´ı voln´a. Tuto situaci zn´azor ˇnuje n´asleduj´ıc´ı fragment Petriho s´ıtˇe.

Ap Ae

Bp

a2

apl bpp

Figure 10: Uv´aznut´ı v algoritmu hladov ´ych filozof ˚u

Filozof A i B uchopil svou pravou h ˚ulku, tedy i filozof B uchopil h ˚ulku a2. Nyn´ı budou procesy pouze nekoneˇcnˇe dlouho uv´aznut´e v situaci, kdy druhou h ˚ulku nemohou dostat.

(23)

2.7 Stavov ´a anal ´yza Petriho s´ıt´ı

Abychom si form´alnˇe popsali situaci uv´aznut´eho syst´emu, pop´ıˇseme si nˇekolik vlastnost´ı Petriho s´ıt´ı potˇrebn ´ych k jejich stavov´e anal ´yze.

• Znaˇcen´ı M’ jedosaˇziteln´eze znaˇcen´ı M, jestliˇze existuje posloupnost pˇrechod ˚u, kter´a je provediteln´a ve znaˇcen´ı M a kter´a pˇrev´ad´ı Petriho s´ıˇt ze znaˇcen´ı M do znaˇcen´ı M’.

• Znaˇcen´ı M Petriho s´ıtˇe se naz ´yv´avˇzdy dosaˇziteln´ym, jestliˇze je dosaˇziteln´e z kaˇzd´eho dosaˇziteln´eho znaˇcen´ı.

• PN syst´em se naz ´yv´a reversibiln´ı, je-li poˇc´ateˇcn´ı znaˇcen´ı vˇzdy dosaˇziteln´e, a tedy i kaˇzd´e libovoln´e dosaˇziteln´e znaˇcen´ı je dosaˇziteln´e z libovoln´eho dosaˇziteln´eho znaˇcen´ı.

• PN syst´em se naz ´yv´a syst´emembez uzamˇcen´ı, jestliˇze z poˇc´ateˇcn´ıho znaˇcen´ı M0 nen´ı dosaˇziteln´e ˇz´adn´e znaˇcen´ı, ve kter´em nen´ı ˇz´adn ´y pˇrechod provediteln ´y.

• PN-syst´em jeˇziv´y, jestliˇze pˇri v ´yvoji syst´emu ˇz´adn ´y pˇrechod nikdy neztr´ac´ı moˇznost, ˇze bude nˇekdy v budoucnu znovu proveden, tedy z kaˇzd´eho dosaˇziteln´eho znaˇcen´ı je moˇzn´e spustit v ´ypoˇcetn´ı posloupnost obsahuj´ıc´ı vˇsechny pˇrechody.

• M´ısto p PN-syst´emu se naz ´yv´ak-omezen´e(k-bounded), jestliˇze pro kaˇzd´e dosaˇziteln´e znaˇcen´ı je poˇcet token ˚u v tomto m´ıstˇe nanejv ´yˇse rovn ´y k.

• PN-syst´em se naz ´yv´ak-omezen´y, jestliˇze vˇsechna jeho m´ısta jsou k-omezen´a.

• PN-syst´emy se naz ´yvaj´ıbezpeˇcn´ymi(safe), jestliˇze jsou 1-omezen´e.

Metoda stavov´e anal ´yzy PN syst´emuhP, T, I, O, M0ise zakl´ad´a na konstrukci mnoˇziny dosaˇziteln ´ych znaˇcen´ı RS(M0)a grafu dosaˇzitelnosti RG.

Definice 2.5 Mnoˇzina dosaˇzitelnosti PN syst´emuhP, T, I, O, M0ije mnoˇzina RS(M0) defino- van´a induktivnˇe takto:

M0∈RS(M0)

M0∈RS(M0)V

(∃t∈T)M−→t M’

Kde Mt

M’znaˇc´ı ˇze znaˇcen´ı M’ je bezprostˇrednˇe dosaˇziteln´e ze znaˇcen´ı M.

Graf dosaˇzitelnosti PN syst´emu s mnoˇzinou dosaˇzitelnosti RS(M0) je hranovˇe ohodnocen´y orien- tovan´y graf RG(M0) s n´asleduj´ıc´ımi vlastnostmi:

RG(M0) je mnoˇzina uzl ˚u grafu

Mnoˇzina hran A grafu je definov´ana takto:

(24)

A⊆RS x RS x T

◦ hMi, Mj, ti∈A⇐⇒Mi−→tMj

M0 je poˇc´ateˇcn´ı uzel grafu

M´ame-li pops´an PN syst´em grafem dosaˇzitelnosti, redukuje se probl´em anal ´yzy PN- syst´emu na probl´em anal ´yzy orientovan´eho grafu. Plat´ı n´asleduj´ıc´ı vlastnosti:

• Znaˇcen´ı M’ je dosaˇziteln´e ze znaˇcen´ı M ⇐⇒ V grafu RG vede orientovan´a cesta z uzlu M do uzlu M’

• Znaˇcen´ı M je v PN syst´emu vˇzdy dosaˇziteln ´ym stavem⇐⇒Z kaˇzd´eho uzlu grafu RG vede orientovan´a cesta do uzlu M

• PN syst´em je reversibiln´ı⇐⇒V grafu RG vede z kaˇzd´eho uzlu orientovan´a cesta do uzlu M0⇐⇒V RG grafu vede orientovan´a cesta z kaˇzd´eho uzlu do kaˇzd´eho - graf je silnˇe souvisl ´y

• PN syst´em neobsahuje uzamˇcen´ı ⇐⇒ V RG grafu neexistuje uzel, ze kter´eho by nevedla ˇz´adn´a hrana

• PN syst´em je ˇziv ´y⇐⇒Pro vˇsechny koncov´e silnˇe souvisl´e komponenty RG grafu plat´ı: kaˇzd ´y pˇrechod ohodnocuje aspo ˇn jednu hranu komponenty

• PN syst´em je omezen ´y⇐⇒Graf RG je koneˇcn ´y

Podrobnˇejˇs´ı prohl´ıdka grafu dosaˇzitelnosti umoˇz ˇnuje tak´e identifikovat vz´ajemnou v ´yluˇcnost m´ıst a pˇrechod ˚u, nebo n´am umoˇzn´ı nal´ezt takov´e znaˇcen´ı, pˇri kter´em vznikaj´ı konflikty.

2.8 Sd´ılen´ı zdroj ˚u - pokra ˇcov ´an´ı

Pod´ıv´ame-li se nyn´ı na Petriho s´ıˇt algoritmu hladov ´ych filozof ˚u z obr´azku ˇc´ıslo 9, m ˚uˇzeme o nˇem ˇr´ıct, jak ´ych nab ´yv´a vlastnost´ı:

• Vˇsechna m´ısta syst´emu mohou z´ıskat pouze 1 token.=⇒Syst´em je tedy 1-omezen ´y a bezpeˇcn ´y

• Syst´em obsahuje znaˇcen´ı, ve kter´em nen´ı provediteln ´y ani jeden pˇrechod. =⇒ Syst´em tedy obsahuje uzamˇcen´ı.

• Pˇri v ´yvoji syst´emu m ˚uˇze doj´ıt k okamˇziku (uzamˇcen´ı) kdy vˇsechny pˇrechody ztr´ac´ı moˇznost v budoucnosti.=⇒Syst´em nen´ı ˇziv ´y.

• D´ıky uzamˇcen´ı syst´emu nen´ı moˇznost n´avratu do poˇc´ateˇcn´ıho znaˇcen´ı.=⇒Syst´em tedy nen´ı reversibiln´ı.

(25)

Jak z t´eto anal ´yzy vypl ´yv´a, nen´ı takto navrˇzen ´y syst´em optim´aln´ı. Pokus´ıme se tedy odstranit uv´aznut´ı, kter´e je z´avaˇznˇejˇs´ım probl´emem neˇz nespravedliv´e rozdˇelov´an´ı sd´ılen ´ych zdroj ˚u. Z uveden´eho algoritmu vypl ´yv´a, ˇze k uv´aznut´ı dojde ve chv´ıli, kdy kaˇzd ´y proces symetricky zabere jednu ze sd´ılen ´ych hodnot. ˇReˇsen´ım proto mus´ı b ´yt syst´em, kter ´y sd´ılen´e zdroje zab´ır´a v jedin´em okamˇziku. K mechanismu kontroly moˇznosti zabr´an´ı obou sd´ılen ´ych zdroj ˚u se vr´at´ıme pozdˇeji. Petriho s´ıˇt upraven´eho distribuo- van´eho algoritmu potom vypad´a takto:

a1 At

Ae a2

Bt Be

a3 Ct Ce a4

Dt

De

ap bp

cp

dp

ar br

cr

dr

Figure 11: Algoritmus hladov ´ych filozof ˚u bez uv´aznut´ı

Z Petriho s´ıtˇe je patrn´e, ˇze algoritmus nem´a uv´aznut´ı, protoˇze pokud chce pˇrej´ıt do stavu e, mus´ı m´ıt moˇznost vz´ıt oba sd´ılen´e zdroje. Nicm´enˇe st´ale nem´ame zajiˇstˇen ´y spravedliv ´y pˇr´ıstup vˇsech proces ˚u ke sd´ılen ´ym zdroj ˚um.

Po proveden´ı stavov´e anal ´yzy doch´az´ıme ke zjiˇstˇen´ı, ˇze uveden ´y syst´em m´a zmˇenˇen´e nˇekter´e vlastnosti:

• Vˇsechna m´ısta syst´emu mohou st´ale z´ıskat pouze 1 token. =⇒ Syst´em je tedy 1-omezen ´y a bezpeˇcn ´y

(26)

• Syst´em jiˇz neobsahuje znaˇcen´ı, ve kter´em nen´ı provediteln ´y ani jeden pˇrechod.=⇒ Syst´em tedy neobsahuje uzamˇcen´ı.

• Pˇri v ´yvoji tohoto syst´emu nem ˚uˇze nastat situace, kdy nˇejak ´y pˇrechod ztr´ac´ı moˇznost budouc´ıho proveden´ı.=⇒Syst´em je tedy ˇziv ´y.

• V syst´emu vˇzdy existuje sekvence pˇrechod ˚u, kter´a vrac´ı syst´em do poˇc´ateˇcn´ıho znaˇcen´ı=⇒Syst´em je tedy reversibiln´ı.

Nyn´ı se vr´at´ıme k mechanismu, kter ´y n´am zaruˇc´ı, ˇze pˇri pokusu o z´ısk´an´ı obou sd´ılen ´ych promˇenn ´ych nedojde k uv´aznut´ı proces ˚u. Jedn´ım z moˇzn ´ych ˇreˇsen´ı je Lehmann- Rabin ˚uv algoritmus pojmenovan ´y po jeho tv ˚urc´ıch [7]. Kaˇzd ´y proces zde pracuje pouze se soused´ıc´ımi zdroji, na kter´e se odvol´av´a pomoc´ı relativn´ıch jmen - Res(i,zleva) aRes(i,zprava)s hodnotami voln´a, obsazen´a. D´ale definujeme lok´aln´ı promˇenou ui∈zl- eva, zprava a oper´atoropp, kter ´y je dopl ˇnkem k hodnotˇe sv´eho argumentu, t.j.opp(zprava)

= zleva aopp(zleva) = zprava

cycle beginpˇrem´yˇslej;

T: ui := random (n ´ahodn ˇe vybr ´ano zleva ˇci zprava) P1: if Res(i, ui ) = voln ´athenRes(i,ui) := obsazen ´a;

else gotoP1;

P2: if Res(i,opp(ui)) = voln ´athenRes(i,opp(ui)) := obsazen ´a;gotoE;

E: jez i

ui := random (n ´ahodn ˇe vybr ´ano zleva ˇci zprava) Res(i, ui ) = voln ´a; Res(i,opp(ui)) = voln ´a;

end;

V ´ypis 4: Lehmann-Rabin ˚uv algoritmus

C´ast tohoto fragmentu pseudok ´odu si m ˚uˇzeme pro lepˇs´ı porozumˇen´ı zobrazit tak´eˇ jako Petriho s´ıˇt pro proces A.

Tento algoritmus jiˇz obsahuje mechanismus, kter ´y v pˇr´ıpadˇe uchopen´ı jedn´e h ˚ulky a zjiˇstˇen´ı, ˇze druh´a je obsazen´a, vr´at´ı svoji h ˚ulku zpˇet do voln´e a zaˇcne s novou kontrolou pˇr´ıstupu ke sd´ılen ´ym h ˚ulk´am. V tomto pˇr´ıpadˇe nedojde k ´upln´emu uzamˇcen´ı, protoˇze procesy jsou pˇr´ıpadnˇe restartov´any. Obr´azek 12 zn´azor ˇnuje pouze proces uchopen´ı h ˚ulek, proces jejich vr´acen´ı je trivi´aln´ı.

Pokud bychom chtˇeli tyto detailn´ı struktury zaˇclenit do v ´yˇse zm´ınˇen´e struktury algo- ritmu hladov ´ych filozof ˚u z obr´azku 11, zjistili bychom, ˇze v ´ysledn´a struktura je znaˇcnˇe nepˇrehledn´a. Toto je tak´e jeden z omezuj´ıc´ıch faktor ˚u vyuˇzit´ı Petriho s´ıt´ı pro modelov´an´ı sloˇzit ´ych distribuovan ´ych syst´em ˚u.

Tento nedostatek m ˚uˇzeme ˇc´asteˇcnˇe kompenzovat pouˇzit´ım metody transformace grafu.

Pro lepˇs´ı pochopen´ı tohoto probl´emu si tuto transformaci nejdˇr´ıve form´alnˇe definujeme.

(27)

Pˇrem ´yˇsl´ı

prav´a h ˚ulka lev´a h ˚ulka

J´ı

uchop L uchop P

vraˇt L vraˇt P

uchop L uchop P

Figure 12: Fragment Lehmann-Rabinova algoritmu uchopen´ı h ˚ulek 2.9 Grafov ´a transformace Petriho s´ıt ˇe

Pro pops´an´ı grafov´e transformace Petriho s´ıtˇe vyuˇzijeme modely algoritm ˚u z pˇredeˇsl ´ych kapitol. Vyuˇzijeme toho, ˇze je Petriho s´ıˇt orientovan ´y bipartitn´ı graf a na jeho uzly pouˇzijeme metodu redukce. Vyuˇz´ıv´ame redukˇcn´ı pravidla pro transformaci syst´emu na jednoduˇsˇs´ı, tedy na syst´em, jehoˇz anal ´yza bude ˇcasovˇe m´enˇe n´aroˇcn´a, pˇr´ıpadnˇe trivi´aln´ı.

Pouˇzit´a redukˇcn´ı pravidla mus´ı b ´yt vhodnˇe zvolena tak, aby zachov´avala vybran´e vlast- nosti PN syst´em ˚u. Pˇr´ıkladem m ˚uˇze b ´yt ˇzivost, reverzibilita nebo omezenost. Syst´em vznikl ´y pomoc´ı takov ´ychto redukˇcn´ıch pravidel pak bude m´ıt stejn´e vlastnosti jako syst´em origin´aln´ı. N´asleduj´ıc´ı obr´azek pˇredstavuje pravidla spojen´ı sekvence m´ıst a spojen´ı sekvence pˇrechod ˚u.

K pravidlu spojen´ı sekvence m´ıst je nutn´e dodat, ˇze kaˇzd´a pˇr´ıpadn´a dalˇs´ı vstupn´ı hrana m´ısta p1 je tak´e vstupn´ı hranou m´ısta p12 a podobnˇe kaˇzd´a v ´ystupn´ı hrana m´ısta p2 je i v ´ystupn´ı hranou m´ısta p12. Poˇcet token ˚u v m´ıstˇe p12 mus´ı b ´yt z´arove ˇn roven souˇctu token ˚u v m´ıstech p1 a p2. V pˇr´ıpadˇe spojen´ı sekvence pˇrechod ˚u plat´ı stejn´a pozn´amka ohlednˇe vstupn´ıch a v ´ystupn´ıch hran, a nav´ıc m´ısto mezi obˇema pˇrechody nesm´ı obsahovat ˇz´adn´e tokeny.

Dalˇs´ı moˇznou metodou transformace sloˇzitˇejˇs´ıho syst´emu na syst´em jednoduˇsˇs´ı je spojen´ı podobn ´ych struktur. V tomto pˇr´ıpadˇe se podobn´e ˇc´asti struktury Petriho s´ıtˇe spoj´ı v jednu, kter´a je na vyˇsˇs´ı ´urovni. Jej´ı ˇc´asti jsou pak reprezentov´any popisem jed- notliv ´ych uzl ˚u a hran. Tato metoda je pops´ana na n´asleduj´ıc´ıch obr´azc´ıch ˇc´ıslo 14 a 15, kter´e popisuj´ı diagram syst´emu producent - konzument pro v´ıce objekt ˚u.

V pˇr´ıpadˇe, ˇze bychom chtˇeli m´ıt diagram pro 10 objekt ˚u, nebylo by jiˇz pˇr´ıliˇs vhodn´e postupovat takto. Proto spoj´ıme podobn´e struktury do struktury jedin´e. V ´ysledkem je

(28)

p1

p2

p12

t1

t2

⇐⇒ ⇐⇒ t12

Figure 13: Spojen´ı sekvence m´ıst a pˇrechod ˚u

pˇripraven k produkci pr´azdn ´y sklad pˇripraven ke spotˇrebˇe pˇripraven k dod´an´ı a pˇripraven ke spotˇrebˇe a

sklad pln ´y a

pˇripraven k dod´an´ı b pˇripraven ke spotˇrebˇe b

sklad pln ´y b

v ´yroba a dod´an´ı a

v ´yroba b dod´an´ı b

pˇrevzet´ı a spotˇreba a pˇrevzet´ı b spotˇreba b

b b

b b

b b

a a a a

a a

Figure 14: Syst´em producent - konzument pro dva objekty

(29)

diagram syst´emu producent - konzument pro jak ´ykoliv objekt, kter ´y je zn´azornˇen na obr´azku ˇc´ıslo 15.

pˇripraven k produkci pr´azdn ´y sklad pˇripraven ke spotˇrebˇe

pˇripraven k dod´an´ı pˇripraven ke spotˇrebˇe

sklad pln ´y x

v ´yroba x dod´an´ı x pˇrevzet´ı x spotˇreba x

x x x x

x x

Figure 15: Syst´em producent - konzument pro x objekt ˚u

Nyn´ı se m ˚uˇzeme vr´atit k algoritmu hladov ´ych filozof ˚u. Pro snazˇs´ı pochopen´ı prin- cipu transformace si tento diagram uprav´ıme pouze pro tˇri filozofy A,B,C a troje h ˚ulky f1,f2,f3, tak jak je zobrazen na obr´azku ˇc´ıslo 16.

V tomto diagramu m ˚uˇzeme nyn´ı identifikovat tˇri ”podobn´e” skupiny m´ıst a dvˇe

”podobn´e” skupiny pˇrechod ˚u. Na z´akladˇe v ´yˇse uveden´e metody spojen´ı podobn ´ych m´ıst m ˚uˇzeme vytvoˇrit nov ´y syst´em, kter ´y m´a jiˇz pouze tˇri m´ısta nazvan´aobˇedvaj´ıc´ı filo- zofov´e, pˇrem´yˇslej´ıc´ı filozofov´e a voln´e h ˚ulky. Grafick´e zn´azornˇen´ı tohoto syst´emu ukazuje obr´azek ˇc´ıslo 17.

Posledn´ı vˇec, kter´a n´am zb ´yv´a pro zobecnˇen´ı algoritmu, je spojit i podobn´a m´ısta.

Pro tento ´uˇcel si take definujeme funkce, kter´e jednotliv ´ym filozof ˚um pˇridˇeluj´ı levou a pravou h ˚ulku:

• l(a) = r(b) = f1

• l(b) = r(c) = f2

• l(c) = r(a) = f3

Tyto funkce m ˚uˇzeme zobecnit na l(x) a r(x). V ´ysledn ´y algoritmus je zn´azornˇen na obr´azku ˇc´ıslo 18.

Vid´ıme, ˇze tento diagram je mnohem jednoduˇsˇs´ı, s vˇetˇs´ı m´ırou abstrakce a zobecnˇen´ı.

Pro n´asleduj´ıc´ı algoritmy se jiˇz omez´ıme, z d ˚uvodu vyˇsˇs´ı sloˇzitosti struktury, pouze na tyto typy diagram ˚u.

(30)

A pˇrem ´yˇsl´ı

B pˇrem ´yˇsl´ı

C pˇrem ´yˇsl´ı

f1 voln´a

f2 voln´a

f3 voln´a

A j´ı B j´ı C j´ı

a bere h ˚ulky

b bere h ˚ulky

c bere h ˚ulky a vrac´ı h ˚ulky

b vrac´ı h ˚ulky

c vrac´ı h ˚ulky

Figure 16: Algoritmus hladov ´ych filozof ˚u pro 3 filozofy

a b

f1

c

pˇrem ´yˇslej´ıc´ı filozofov´e

voln´e h ˚ulky

obˇedvaj´ıc´ı filozofov´e

a bere h ˚ulky

b bere h ˚ulky

c bere h ˚ulky a vrac´ı h ˚ulky

b vrac´ı h ˚ulky

c vrac´ı h ˚ulky

f1 f3

f1 f2 f2 f3 f1 f3

f1 f2 f2 f3

a

c a

c

c c

b b

b b

a a

Figure 17: Algoritmus hladov ´ych filozof ˚u se spojen ´ymi m´ısty

(31)

a b

f1

c

pˇrem ´yˇslej´ıc´ı filozofov´e

voln´e h ˚ulky

obˇedvaj´ıc´ı filozofov´e

uchopen´ı vr´acen´ı

x x

x x

l(x) r(x)

l(x) r(x)

Figure 18: Zobecnˇen ´y algoritmus 3 hladov ´ych filozof ˚u 2.10 V ´yb ˇer vedouc´ıho

Tento zn´am ´y a pouˇz´ıvan ´y algoritmus se poprv´e objevuje v lok´aln´ıch s´ıt´ıch typutoken ring. Tyto kruhov´e s´ıtˇe funguj´ı na principu pˇred´av´an´ı speci´aln´ıho r´amce (tzv. tokenu) mezi uzly. Uzel, vlastn´ıc´ı tento token, m´a jako jedin ´y pr´avo vys´ılat. M ˚uˇze se ale st´at, ˇze je tento token ztracen, a potom nast´av´a potˇreba nˇejak ´ym zp ˚usobem tento token znovu vytvoˇrit.

n−2 n−1

0

1

2

i

Figure 19: S´ıˇt typu token ring

Pokud se na tyto uzly pod´ıv´ame jako na procesy pracuj´ıc´ı v jedn´e s´ıti, m ˚uˇzeme tento princip rozˇs´ıˇrit i mimo pouh´e vys´ıl´an´ı zpr´av na probl´em ˇr´ızen´ı pr´ace vˇsech tˇechto uzl ˚u v r´amci distribuovan´e s´ıtˇe.

Jednoduch ´ym ˇreˇsen´ım tohoto probl´emu je takzvan ´y ”Bully” algoritmus popsan ´y v [8]. Tento algoritmus je moˇzn´e pouˇz´ıt pouze v pˇr´ıpadˇe oˇc´ıslovan ´ych proces ˚u. Algorit- mus zaˇc´ın´a v okamˇziku, kdy jak ´ykoliv proces P zjist´ı, ˇze po pevnˇe urˇcen´e dobˇe nedostal

(32)

zpr´avu od aktu´aln´ıho vedouc´ıho, nebo s n´ım nem ˚uˇze nav´azat spojen´ı. Od t´eto chv´ıle zaˇc´ın´a sekvence krok ˚u tohoto algoritmu.

• P rozeˇsle zpr´avu o volbˇe vˇsem proces ˚um, kter´e maj´ı vˇetˇs´ı ID.

• pokud P nedostane zpˇet zpr´avu od ˇz´adn´eho procesu s vˇetˇs´ım ID, vyhr´av´a volbu a rozeˇsle zpr´avu o v´ıtˇezstv´ı.

• pokud P dostane zpˇet zpr´avu od nˇejak´eho procesu s vˇetˇs´ım ID, vyˇck´a pevnˇe urˇcenou dobu, zda se proces s vyˇsˇs´ım ID prohl´as´ı za v´ıtˇeze. Pokud tuto zpr´avu nedostane, spust´ı nov´e kolo volby.

V pˇr´ıpadˇe, ˇze proces dostane zpr´avu o volbˇe od procesu s niˇzˇs´ım ID, ihned spust´ı nov´e kolo volby.

Dalˇs´ım zn´am ´ym ˇreˇsen´ım tohoto probl´emu je Chang-Roberts algoritmus, poprv´e pop- san ´y v [9]. Tento algoritmus pˇredpokl´ad´a, ˇze kaˇzd ´y proces m´a univerz´aln´ı ID (UID) a jednotliv´e procesy mohou vytvoˇrit kruhovou s´ıˇt. Algoritmus se skl´ad´a ze dvou ˇc´ast´ı.

• Kaˇzd ´y proces je oznaˇcen jakonez ´uˇcastnˇen´y

• Uzel, kter ´y zjist´ı nepˇr´ıtomnost vedouc´ıho, zah´aj´ı volbu. Oznaˇc´ı se zaz ´uˇcastnˇen´eho a odeˇslezpr´avu o zah´ajen´ı volbypo smˇeru hodinov ´ych ruˇciˇcek se sv ´ym UID.

• Kdyˇz proces obdrˇz´ızpr´avu o zah´ajen´ı volby, porovn´a sv´e UID s UID ve zpr´avˇe volby.

Pokud m´a sv´e aktu´aln´ı UID vˇetˇs´ı neˇz to ve zpr´avˇe, pˇrep´ıˇse UID vezpr´avˇe o zah´ajen´ı volbysv ´ym a odeˇsle ji po smˇeru hodinov ´ych ruˇciˇcek. Oznaˇc´ı se zaz ´uˇcastnˇen´eho.

• V pˇr´ıpadˇe ˇze tutozpr´avu o zah´ajen´ı volby obdrˇz´ı jiˇz za stavuz ´uˇcastnˇen´y, je postup odliˇsn ´y. Opˇet porovn´a sv´e UID s UID ve zpr´avˇe, ale odeˇsle tuto zpr´avu d´ale pouze v pˇr´ıpadˇe, ˇze je nutn´e UID zpr´avy pˇrepsat.

Prvn´ı ˇc´ast algoritmu skonˇc´ı ve chv´ıli, kdy proces obdrˇz´ı zpr´avu o zah´ajen´ı volby se sv ´ym UID. V tuto chv´ıli se spouˇst´ı ˇc´ast druh´a.

• Tento v´ıtˇezn ´y proces se oznaˇc´ı jakonez ´uˇcastnˇen´y a odeˇslezpr´avu o v´ysledku volby, oznamuj´ıc´ı jeho zvolen´ı a jeho UID sv´emu sousedovi.

• Kdyˇz uzel obdrˇz´ı zpr´avu o v ´ysledku volby, oznaˇc´ı se jakonez ´uˇcastnˇen´y, zaznamen´a si UID zvolen´eho vedouc´ıho azpr´avu o v´ysledku volbypoˇsle zase d´al.

• Kdyˇz zpr´ava o v ´ysledku volby doputuje k novˇe zvolen´emu vedouc´ımu, je tento algoritmus v ´ybˇeru vedouc´ıho ukonˇcen.

Variantou tˇechto ˇreˇsen´ı je algoritmus, kter ´y z celkov´e mnoˇziny moˇzn ´ych kandid´at ˚u jejich postupn ´ym porovn´av´an´ım odstra ˇnuje nevhodn´e kandid´aty. V z´avˇeru v ´ypoˇctu tak z ˚ust´av´a pouze jedin ´y, nejlepˇs´ı kandid´at. Princip tohoto algoritmu reprezentuje Petriho s´ıˇt na obr´azku ˇc´ıslo 20 uveden´a v [1].

(33)

V

zpr´avy

ˇcek´a aktualizuje

a

b

c

zy

z > y M(x,y)

(x,z) (x,z)

(x,y) (x,y)

(x,y) (x,z)

(x,y)

(x,y)

Figure 20: V ´ybˇer vedouc´ıho

Na zaˇc´atku jsou vˇsechny m´ısta ve stavu ˇcek´a. Pozdˇeji se tu budou objevovat st´ale lepˇs´ı kandid´ati na vedouc´ıho. Jak´ekoliv m´ısto x z ˇcekaj´ıc´ıch m ˚uˇze pomoc´ı akce a d´at vˇedˇet sv ´ym soused ˚um o sobˇe a sv´em aktu´aln´ım kandid´atu na vedouc´ıho y. T´ım se m´ısto stane aktualizuj´ıc´ı. Aktualizuj´ıc´ı m´ısto (x,y) m ˚uˇze dostat zpr´avu o nov´em kan- did´atu (x,z). Pokud tento novˇe navrˇzen ´y kandid´at nepˇres´ahne st´avaj´ıc´ıho kandid´ata, m´ısto(x,y)z ˚ustane aktualizuj´ıc´ı pomoc´ı akceb. V opaˇcn´em pˇr´ıpadˇe se doˇcekaj´ıc´ıchm´ıst vr´at´ı s nov ´ym kandid´atemzpomoc´ı akcec. Na konci pak z ˚ustanou pouze dvojice sloˇzen´e ze vˇsech m´ıst a nejlepˇs´ıho kandid´ata.

2.11 Minim ´aln´ı kostra grafu

Posledn´ım algoritmem, kter´emu se budu vˇenovat v t´eto kapitole, je algoritmus hled´an´ı minim´aln´ı kostry grafu. Podgraf grafu, kter ´y spojuje vˇsechny uzly a je stromem, se naz ´yv´a kostra grafu. Graf m ˚uˇze m´ıt nˇekolik rozd´ıln ´ych koster. Pokud jsou hrany grafu ohodnoceny, souˇcet tˇechto ohodnocen´ı se naz ´yv´av´aha grafu. V takov´emto grafu s ohod- nocen ´ymi hranami je moˇzn´e naj´ıt minim´aln´ı kostru grafu, kter´a m´a v´ahu menˇs´ı nebo rovnu vah´am vˇsech ostatn´ıch koster tohoto grafu.

Hled´an´ı minim´aln´ı kostry grafu se pouˇz´ıv´a vˇsude tam, kde je vhodn´e minimalizo- vat zdroje potˇrebn´e na komunikaci mezi procesy v r´amci s´ıtˇe. Dalˇs´ı vyuˇzit´ı tohoto al- goritmu pˇredstavuj´ı aplikace s komplexn´ımi s´ıtˇemi a mnoˇzstv´ım potencion´aln´ıch kon- troln´ıch probl´em ˚u. Vyuˇzit´ım vys´ıl´an´ı pouze po kostˇre tˇechto s´ıt´ı je v ´yraznˇe sn´ıˇzena jejich komplexnost a t´ım p´adem i sn´ıˇzen ´y v ´yskyt probl´em ˚u.

Distribuovan´e ˇreˇsen´ı tohoto probl´emu spoˇc´ıv´a v komunikaci mezi jednotliv ´ymi uzly [10]. Na poˇc´atku jednotliv´e uzly znaj´ı v´ahu pouze pˇrilehl ´ych hran. Kaˇzd ´y z uzl ˚u pak prov´ad´ı lok´aln´ı algoritmus, kter ´y se sest´av´a z pos´ıl´an´ı zpr´av po tˇechto hran´ach a jejich zpracov´an´ı. Pot´e je schopen urˇcit, kter´e hrany tvoˇr´ı minim´aln´ı kostru grafu.

Uv´ad´ım zde tento algoritmus pro demonstraci vhodnosti pouˇzit´ı grafov´e reprezen- tace, jak ji uv´ad´ı W. Reisig ve sv´e monografii [1]. Vyuˇz´ıv´a k tomuto ´uˇcelu v ´yˇse popsan ´y algoritmus V ´ybˇeru vedouc´ıho. Tento algoritmus je ukonˇcen s t´ım, ˇze vˇsechny uzly znaj´ı sv´eho vedouc´ıho. Pokud se k t´eto informaci pˇripoj´ı vzd´alenost k nˇemu a bliˇzˇs´ı soused

(34)

3 2

2 8

8 6

4

9 9

9

Figure 21: Minim´aln´ı kostra

vzhledem k vedouc´ımu, m ˚uˇze uzel komunikovat s vedouc´ım pr´avˇe pˇres tohoto souseda.

Linky spojuj´ıc´ı takto uzly s vedouc´ım pˇres bliˇzˇs´ı sousedy tvoˇr´ı minim´aln´ı kostru grafu.

Tento algoritmus reprezentuje diagram z obr´azku ˇc´ıslo 22.

(x,y,0) V

zpr´avy

ˇcek´a aktualizuje

a

b

c

j+ 1i

j+ 1< i N(x,i)

(x,z,j) (x,z,j)

(x,y,i) (x,y,i)

(x,y,i) (x,z,j+1)

(x,y,i)

(x,y,i)

Figure 22: Minim´aln´ı kostra grafu

Na poˇc´atku vedouc´ı r ˇcek´a s d´elkou 0 k vedouc´ımu. Ostatn´ı uzly jsou v m´ıstˇe ak- tualizace, zat´ım bez kandid´ata na vedouc´ıho a s nekoneˇcnou vzd´alenost´ı. V pozdˇejˇs´ıch f´az´ı obsahuje m´ıstoˇcek´atoken (x,y,i), kde je reprezentov´ana trasa d´elkyizxpˇresyk ve- douc´ımu. Cekaj´ıc´ıˇ uzel x zaˇsle svou aktu´aln´ı vzd´alenost i vˇsem sv ´ym soused ˚um pomoc´ı akce a a stane seaktualizuj´ıc´ım. Aktualizuj´ıc´ı uzel m ˚uˇze obdrˇzet zpr´avu (x,z,j). Pokud vzd´alenost ve zpr´avˇejodzk vedouc´ımu nevylepˇs´ı aktu´aln´ı vzd´alenosti, z ˚ust´av´a uzelx

(35)

u vzd´alenostiipˇresypomoc´ı akceb. V opaˇcn´em pˇr´ıpadˇe zmˇen´ıxvzd´alenost naj+1pˇres zpomoc´ı akcec.

Tento algoritmus potvrzuje vhodnost pouˇzit´ı Petriho s´ıt´ı pro reprezentaci distribuo- van ´ych algoritm ˚u, kter´a pˇrin´aˇs´ı na prvn´ı pohled podobn´e struktury, kter´e by nebyly tak zˇrejm´e pˇri pouˇzit´ı jin ´ych formalism ˚u.

(36)

3 Vz ´ajemn ´e vylou ˇcen´ı - model

3.1 Uvod´

V t´eto kapitole si vytvoˇr´ıme d ˚ukladn ´y model algoritmu vz´ajemn´eho vylouˇcen´ı podrobnˇe popsan ´y v [6].V kaˇzd´em kroku si pop´ıˇseme situaci, uk´aˇzeme si n´avrh ˇreˇsen´ı pomoc´ı z´apisu v pseudok ´odu a pro srovn´an´ı i pomoc´ı Petriho s´ıt´ı, kter´e je pro modelov´an´ı pouˇzito i v monografii Reisig, W.: Elements of distributed algoritms (Springer 1998). Pro z´apis v pseudok ´odu pouˇziji n´asleduj´ıc´ı pˇr´ıkazy:

• begin je zaˇc´atek procesu

• parbegin je zaˇc´atek paraleln´ıch proces ˚u

• parend je konec paraleln´ıch procesu

• end je konec procesu

Pˇr´ıklad: begin S1, parbegin S2, S3, S4, parend, end 3.2 Probl ´em

Synchronizace je v informatice fundament´aln´ı v ´yzvou. St´av´a se hlavn´ı otazkou v ´ykonu a n´avrhu soubˇeˇzn´eho programov´an´ı v modern´ıch architektur´ach.

Soubˇeˇzn ´y pˇr´ıstup ke sd´ılen ´ym prostˇredk ˚um nˇekolika procesy mus´ı b ´yt ˇr´ızen, aby nedoˇslo k neˇz´adouc´ımu ruˇsen´ı mezi konfliktn´ımi operacemi. Algoritmy vz´ajemn´eho vy- louˇcen´ı jsou mechanismy slouˇz´ıc´ı pr´avˇe pro ˇr´ızen´ı tˇechto soubˇeˇzn ´ych pˇr´ıstup ˚u. Proces m ˚uˇze pˇristoupit ke sd´ılen´emu zdroji pouze uvnitˇr kritick´e sekce, v n´ıˇz m´a tak´e garan- tov´an exkluzivn´ı pˇr´ıstup. Tento pˇr´ıstup je znaˇcnˇe popul´arn´ı zejm´ena d´ıky jednoduchosti sv´eho modelu a moˇznostem implementace, kter´e jsou efektivn´ı a pˇrenositeln´e. Vˇsechny souˇcasn´e soubˇeˇzn´e programy vyuˇz´ıvaj´ı nˇejak ´y ze syst´em ˚u vz´ajemn´eho vylouˇcen´ı pro svou synchronizaci. Tento probl´em se bˇeˇznˇe vyskytuje v operaˇcn´ıch syst´emech, datab´az´ıch, poˇc´ıtaˇcov ´ych s´ıt´ıch a vˇsude tam, kde je potˇrebn´e vyˇreˇsit konflikt, ke kter´emu doch´az´ı v pˇr´ıpadˇe pokusu o pˇr´ıstup k jedin´emu sd´ılen´emu zdroji v´ıce procesy.

Form´alnˇe je tento proces definov´an takto: kaˇzd ´y z proces ˚u vykon´av´a sadu instrukc´ı v nekoneˇcn´e smyˇcce. Tyto instrukce jsou seskupeny do ˇctyˇr skupin: zbytek, vstup, krit- ick´e sekce, v ´ystup.

Programov ´y z´apis t´eto struktury vypad´a n´asledovnˇe:

loop forever ; k ´od zbytku;

k ´od vstupu;

kritick ´a sekce};

k ´od v´ystupu;

endloop

V ´ypis 5: Popis probl´emu vz´ajemn´eho vylouˇcen´ı

(37)

Proces vˇzdy zaˇc´ın´a spuˇstˇen´ım zbytkov´eho k ´odu. V urˇcit ´y okamˇzik m ˚uˇze nastat situ- ace, ve kter´e potˇrebuje spustit k ´od v kritick´e sekci. Pro vstup do kritick´e sekce mus´ı pro- ces proj´ıt celou procedurou, kter´a zajist´ı, ˇze bˇehem zpracov´av´an´ı sv´e kritick´e sekce ˇz´adn ´y j´ın ´y proces nespust´ı svoji kritickou sekci. Po v ´ystupu z kritick´e sekce spust´ı v ´ystupn´ı k ´od, kter ´y ostatn´ım proces ˚um ozn´am´ı, ˇze jiˇz d´ele nen´ı ve sv´e kritick´e sekci. Po t´e se proces vr´at´ı ke zbytku k ´odu.

Probl´em vz´ajemn´eho vylouˇcen´ı je tedy napsat takov ´y vstupn´ı a v ´ystupn´ı k ´od, ˇze cel ´y algoritmus dodrˇz´ı dvˇe z´akladn´ı podm´ınky.

Vz´ajemn´e vylouˇcen´ı: ˇZ´adn´e dva procesy nejsou ve sv´e kritick´e sekci ve stejn ´y okamˇzik.

Bez uzamˇcen´ı: Pokud se proces snaˇz´ı dostat do sv´e kritick´e sekce, pak nˇejak ´y pro- ces, ne nutnˇe ten stejn ´y, se do kritick´e sekce dostane.

Druh´a podm´ınka zajiˇsˇtuje, ˇze cel ´y syst´em jako celek m ˚uˇze vˇzdy pokraˇcovat ve v ´yvoji.

To nicm´enˇe neznamen´a, ˇze nem ˚uˇze doj´ıt k hladovˇen´ı(starvation) nˇekter´eho z proces ˚u.

Proto se pˇrid´av´a n´asleduj´ıc´ı podm´ınka:

Bez hladovˇen´ı: Pokud se proces snaˇz´ı dostat do kritick´e sekce, mus´ı do n´ı pozdˇeji i vstoupit.

I kdyˇz je tato podm´ınka mnohem silnˇejˇs´ı neˇz podm´ınka bez uzamˇcen´ı, st´ale umoˇz ˇnuje nˇekter ´ym proces ˚u n´asobnˇe v´ıckr´at neˇz proces ˚um, kter´e se zat´ım pouze chystaj´ı ke vstu- pu. K odstranˇen´ı tohoto chov´an´ı slouˇz´ı ˇctvrt´a podm´ınka vz´ajemn´eho vylouˇcen´ı:

Fairness: ˇZ´adn ´y ze vstupuj´ıc´ıch proces ˚u nesm´ı vstoupit do kritick´e sekce pˇred t´ım, neˇz tam vstoup´ı procesy jiˇz ˇcekaj´ıc´ı pˇred nimi.

V n´asleduj´ıc´ı kapitole se detailnˇeji zamˇeˇr´ıme na modelov´an´ı distribuovan´eho vz´ajem- n´eho vylouˇcen´ı od nejjednoduˇsˇs´ıch syst´emu po sloˇzitˇejˇs´ı. Zamˇeˇr´ıme se na jednotliv´e podm´ınky, kter´e mus´ı vz´ajemn´e vylouˇcen´ı dodrˇzet a jak ´ym zp ˚usobem je m ˚uˇzeme za- komponovat do samotn´eho algoritmu.

3.3 Model

Jak jiˇz bylo zm´ınˇeno v ´uvodu, prvn´ı podm´ınka algoritmu vz´ajemn´eho vylouˇcen´ı zn´ı takto:

Ve sv´e kritick´e sekci m ˚uˇze b´yt v dan´y okamˇzik pouze jeden proces.

Jednoduch ´ym ˇreˇsen´ım tohoto probl´emu je pouˇzit´ı speci´aln´ı promˇenn´e tah, kter´a urˇc´ı, kter ´y z proces ˚u je na ˇradˇe se vstupem do sv´e kritick´e sekce. V ´ysledkem je potom n´asledu- j´ıc´ı algoritmus:

Odkazy

Související dokumenty

Na z´ akladˇ e zjiˇ stˇ en´ ych uˇ zivatelsk´ ych poˇ zadavk˚ u a detailn´ı anal´ yzy jsem vy- bral jako nejvhodnˇ ejˇ s´ı ˇ reˇ sen´ı jiˇ z existuj´ıc´ı informaˇ

Pˇri pr´aci na modulu importu jsem mˇel za ´ukol pˇrev´adˇen´ı nˇekter ´ych datab´az´ı ze starˇs´ıho firemn´ıho syst´emu do souˇcasn´eho syst´emu po- moc´ı

Nejsp´ıˇ se to bude pr´ avˇ e bal´ıˇ cek sluˇ zeb: tvorba vˇ edeck´ ych prac´ı a jejich distribuce, vz´ ajemn´ e propojen´ı uˇ zivatel˚ u na ´ urovni soci´ aln´ı

V´yrokem rozum´ıme kaˇzd´e sdˇelen´ı, u kter´eho m´a smysl se pt´at, zda je ˇci nen´ı pravdiv´e, a pro kter´e nast´av´a pr´avˇe jedna z tˇechto

BOOTP klient m˚uˇze b´yt jak´ekoli zaˇr´ızen´ı nastavovan´e pomoc´ı BOOTP protokolu.. BOOTP server je s´ıˇtov´e zaˇr´ızen´ı, kter´e bylo speci´alnˇe nastaven´e

Nejprve jsou demonstrov´any sp´ıˇse klasick´e metody zaloˇzen´e na triangulaci a teselaci, d´ale r˚uzn´e varianty shlukov´e anal´yzy vˇcetnˇe zohlednˇen´ı hustoty

Pˇri modelov´an´ı pomoc´ı L-syst´em˚ u vyvstanou dalˇs´ı poˇzadavky, kter´e by pˇrinesly praktick´e v´ yhody, at’ uˇz v podobˇe snadnˇejˇs´ı a intuitivnˇejˇs´ı

Abstrakt: V t´eto pr´aci studuji moˇznost zjiˇst’ovat bˇeˇzn´e zaˇc´ateˇcnick´e chyby v jazyce C pomoc´ı statick´ ych anal´ yz zdrojov´eho k´odu a generov´an´ı