Sunteți pe pagina 1din 41

Introducere........................................................................................................................................................2 1 Bufferul secvenial i paralel.........................................................................................................................3 2 Masa filozofilor ............................................................................................................................................6 3 Stiva asincron...............................................................................................................................................9 4 Crosstalk algoritms.....................................................................................................................................11 5 Excluderea mutual......................................................................................................................................17 5.1. Problema..............................................................................................................................................

17 5.2. Un algoritm mutex discutabil..............................................................................................................18 5.3. Algoritmul mutex alternativ................................................................................................................19 5.4. Algoritmul mutex de testare a strii....................................................................................................19 5.5. Algoritmul mutex cu pasarea punctului.............................................................................................20 5.6. Algoritmul mutex circular................................................................................................................21 5.7. Algoritmul mutex a lui Peterson.........................................................................................................22 5.8. Algoritmul mutual a lui Dekker.........................................................................................................25 5.9. Algoritmul mutual Owicki/Lamport.................................................................................................25 5.10. Algoritmul mutex asimetric..............................................................................................................27 .....................................................................................................................................................................28 II. Sisteme avansate.....................................................................................................................................28 2..1. Sistemul productor consumator revzut.......................................................................................28 2.2. Masa filosofilor revzut....................................................................................................................30 2.3. Ciurul lui Eratostene...........................................................................................................................34 Concluzie..............................................................................................................................................36 3 Conceptul sistemelor de reea......................................................................................................................36 4 Execuia concurent i simultan...............................................................................................................38

Introducere Sistemele distribuite ne ajut s studiem o clas larg de sisteme tehnice i netehnice, un sistem poate exista fizic sau poate fi modelat. Exemplele de sistem includ diferite tipuri de fluxuri. Schimbrile dinamice care au loc n sistem pot fi descrise ca nite funcii continue n timp. Modelele continue pot descrie diverse detalii fizice, folosind efecte descrete cum ar fi aciunile. Aciunile apar n procesul modelrii comportamentelor sistemelor i pot fi prezentate cu ajutorul algoritmilor. Formalismul utilizat pentru descrierea acestor algoritmi este cel al reelelor Petri, care pe parcursul celor aproape cinci decenii de la prezentarea tezei de doctorat a matematicianului german Carl Adam Petri, au artat o deosebit flexibilitate in abordarea numeroaselor tipuri de probleme practice, precum i o mare capacitate de extindere ca sfer de operare, prin inglobarea unor puncte de vedere tot mai complexe. Dup cum a fost menionat mai sus, reelele Petri au fost introduse de ctre Carl Adam Petri n anii 60, la acel moment modelele matematice folosite pentru modelarea sistemelor reale distribuite erau sistemele tranziionale de tip stareaciune (automate finite). Pornind de la aceste modele C.A. Petri a introdus ideea de modelare a sistemelor distribuite, diviznd sistemul n anumite elemente care ar caracteriza strile locale ale sistemului modelat i caracterind evoluia sistemului printr-o execuie concurent a unor aciuni locale. Ele formalizeaz descrierea concurenei, conflictului i sincronizrii in sistemele distribuite intr-o manier inductiv. Modelarea sistemelor distribuite cu ajutorul reelelor Petri se efectueaz la nivel de stare: se determin ce aciuni se produc in sistem, care stri preced acestor aciuni i n ce stri va trece sistemul dup producerea aciunilor. Simulnd modelul de stri prin reele Petri se obine descrierea comportamentului sistemului. n prezent reelele Petri au numeroase aplicaii i sunt utilizate in diverse domenii ca inginerie sau modelarea proceselor de afaceri, deoarece dispun de o reprezentare grafic foarte accesibil i au o semantic bine definit care permite o analiz formal a comportamentului i proprietilor sistemelor modelate.

1 Bufferul secvenial i paralel Se consider binecunoscutul exemplu care const dintr-un productor i un consumator, i se extinde acest exemplu considernd un depozit cu dou odi(celule) pentru a putea depozita mai multe obiecte produse de productor. Acest lucru poate fi fcut n dou moduri: utiliznd buferl secvenial sau paralel. Sistemul

1.1

ilustreaz varianta de soluionare n serie: dou locaii care rerezint celulele

depozitului sunt aranjate una dup alta. Varianta de soluionare n papelel este ilustrat cu ajutorul sistemul

1. 2

modelat printr-o reea Petri.

A - gata de a produce; B - gata de distribui; C - prima celul o bufferului liber; D - prima celul o bufferului ocupat; a - produce; b - livreaz;

E - a doua celul a bufferului liber; F - a doua celul a bufferului ocupat: G - gata de a lua din depozit; H - gata de a consuma; d ia din depozit; c consum.

Figura 1.1. Sistemul productor/ consumator cu celulele bufferului legate n serie Din Figura 1.2 se observ c fiind gata s expedieze (B), productorul trebuie s aleag una dintre cele dou celule ale bufferului (dac ambele sunt libere). Dac una sau ambele sunt ocupate, productorul trebuie s o foloseasc pe cea liber sau pe cea care va deveni liber cel mai curnd.

Figura 1.2. Sistemul producto/consumator nedterminist, cu celulele bufferului unite n paralel Sistemul

1.2

este intiutiv mai mult concurent dect 1.1 . Dar depirea situaiei de ca exemplu, primul buffer

ntrecere pentru posibilitatea de a depozita obiecte este posibil n 1.2 poate fi ocupat primul, dar eliberat al doilea.

Figura 1.3. Sistemul productor/consumator determinist, cu celulele bufferului unite n paralel Apare ntrebarea pot oare avantajele din 1.1 i Sistemul

1.2

combinate?

1.3

arat c acest lucru este posibil: accesul la celulele bufferului este organizat

alternativ, dar rmne s fie artat c 1.2 este optimal, n sens c: productorul niciodat nu va avea acces la celula ocupat a bufferului att timp ct cealalt celul va fi liber, nici consumatorul nu va avea acces la bufferul liber att timp ct celula precedent este ocupat.

Cteva diferene dintre

,
1.1

1.2

1.3

pot fi studiate cu ajutorul execuiei acestora:

1.1

, are exact o singur execuie maximal. Figura 1.4 arat partea iniial a acestei execuii (periodic

structurate). 1.3 de asemenea, are o singur execuie maximal, artat in Fig.1.6.


A a B b A a B b A a B b

Figura 1.4. Partea iniial a singurei execuii maximale a sistemului


A a B b A a B c

1.1

Figura 1.5. Execuia concurent a sistemului De aici, att

1.2

1.1

ct i

1.2

sunt deterministice. n contrast, reeaua

1.2

are un numr

infinit de execuii maximale diferite: Oricnd condiia B are loc, acesta este o alegere ntre b i c. Una din execuiile sistemului

1.2

poate fi obinut din una din execuiile sistemului

1.3

din Fig 1.6,

omind toate producerile condiiilor J, K, L i M. Mai apare urmtoarea situaie dat n Fig.1.5: prima celul a bufferului este iniial ocupat, dar niciodat nu este liber.
A a B b A a B c A a B c

Figura 1.6. Partea iniial a singurei execuii maximale a sistemului

1.3

2 Masa filozofilor Sistemele distribuite ntotdeauna constau din subsisteme care distribuie resurse comune. Astfel de resurse sunt accesibile cel mult unei componente la un moment dat. Considerm, n particular, astfel de configuraie a sistemului unde fiecare resurs este mprit ntre dou sisteme i fiecare subsistem simultan necesit dou resurse. E. W. Dijkstra ilustreaz acest sistem prin intermediul filozofilor i furculielor care nlocuiesc subsistemele i resursele, respectiv. Citm prima sa publicaie: Cinci filozofi numerotai de la 0 la 4 locuiesc ntr-o cas, pentru ei este servit masa, astfel nct, fiecare filozof avnd locul su unic la mas. Unica lor problem pe lng cea a filozofiei este aceea c mncarea servit este un foarte dificil fel de spagheti, care trebuie servit cu dou furculie. De aceea sunt dou furculie alturi de fiecare frfurie, deci acesta nu produce dificultate, n consecin cu toate acestea, nu ambii vecini pot servi masa simultan. Primul scop const n reprezentarea acestui sistem printr-o reea, astfel nct fiecare execuie a reelei s descrie situaia la mas la cina de srbtoarea a filozofilor. Figura 2.1 ilustreaz aceast reea. Filozofi sunt numerotai A, ..., E, indicii p, r, t, e nlocuiesc luarea firculiei, returnarea furculilei, gndirea filozofului, mncarea filozofului, respectiv. Pentru i=0,...,4 condiia ai arat c furculia i este disponibil pentru utilizatorul su. Fiecare filozof trebuie s nceap s mnnce n starea iniial, dar filozofii vecini aparent concureaz pentru distribuirera furculielor. O execuie tipic concurent din

1.2

este reprezentat mai jos: 6

Figura 2.1. Cinci filozofi servind cina.


A C B D B

p a1 p a 2 Cr a3 Ar a 4 p a 5 p a 6 Br a 7 p a8
E

Dr a9 p a10 Er a11 Br a12

(1)

cu strile a1,...,a12 evidente din context. Filozoful B mnnc de dou ori n timpul aceleiai execuii, iar ficare dintre ceilali filozofi doar o singur dat. Dac ne ntoarem din nou la execuii concurente, este convinabil de a introduce o reprezentare pe scurt a prilor din execuie. Pentru filozoful A, vom nota orice apariie a lui A ca ciclu de mncare/de servire a mesei a lui A. Reprezentm fiecare ciclu de servire a mesei pentru filosoful A.

(2) a0 A
Ap
e

a0

At

Ar

At

a1

a1

(3) Arcele superioare de intrare i ieire reprezint disponibilitatea furculiei 0, cele dou arce de jos reprezint disponibilitatea furculiei 1. Procesul de gndire nu este explicit reprezentat n (3)

Figura 2.2. Reprezentarea prescurtat a execuiei concurente a sistemului

2.1

Ciclul de servire a mesei a celorlali filosofi este de asemenea abreviat. n general, pentru a reprezenta execuia concurent, aceiai procedur este folosit. Figura 2.2, reprezint astfel execuia concurent a sistemului

2.1

Ca urmare distingem o modaliatate particular corect de servire a cinei, numit cin decent: Numim execuia sistemului furculiele ce sunt disponibile.

2.1

decent

dac filozofii nvecinai alternativ folosesc (4)

Execuia considerat n (1) i n Fig. 2.2 nu este considerat decent, deoarece B a mncat de dou ori consecutiv. De aici, furculia plasat ntre filozofii A i B nu este folosit alternativ. Acest lucru se aplic corespunztor i la furculia amplasat ntre B i C. Cu conveniile (2) i (3), Fig.2.3 arat executarea concurent a sistemului

1.2

care este

aparent decent. Evident, o execuie concurent infinit decent este determinat unic din prima folosire a furculielor.

Figura 2.3. Executarea concurent a sistemului

1.2

care este aparent decent

3 Stiva asincron n aceast seciune se va studia schema de control pentru mecanismul pushdown asincron. Stiva de mrimea n este o secven M1,...,Mn de module, M1 este numit vrful stivei, iar Mn partea inferioar a stivei. Pentru i=1,...,n modului Mi-1 este predecesorul moduluilui Mi, iar Mi 9

succesorul modului Mi-1. Toate modulele sunt construite conform uneia i aceleiai scheme. Figura 3.1 ilustreaz un flux de control dintr-un modul.

Figura 3.1. Fluxul de control a unui modul n stare quite/pasiv, modulul M depozitez exact o valoare, v. Dou aciuni alternative se pot produce n aceast stare: n primul rnd, careva valoare w poate veni din predecesorul modulului M, furniznd o stare n M care depoziteaz dou valori v i w. Dup aceia M transmite valoarea anterior obinut v modulului succesor i i restabilete starea quite cu valoarea w. n al doilea rnd, M poate transmite valoare depozitat v modulului predecesor, producnd starea unde M nu depoziteaz nici o valoare. Dup aceea M cere valoarea de la succesorul su i returneaz quiet prin intermediul acestei valori. Figura 3.2 ilustrez stiva construit din patru astfel de module. Push (aciunea a0) insereaz o nou valoare n buffer iniiind ceva asemntor cu un val, ndreptndu-i valoarea depozitat spre partea inferioar a stivei. Punctul depozitat n M4 devine ultimul (n a4). n acelai timp, pop (aciunea b0) scoate un punct din buffer, accest lucru iniind un val asemntor cu doparea valorilor depozitate spre vrful stivei. M4 primete o valoare nedefinit .

Figura 3.2. Decurgerea controlului n stiva asincron construit din patru module De fapt este clar c 3.2 reprezint modelul structurii de control a stivei de dimensiunea n+1 i c aceast modalitate de extindere nu afectez performanele vrfului stivei.

10

4 Crosstalk algoritms n reeaua agenilor cooperativi, fiecare agent ntotdeauna are o stare iniial deosebit de a celuilalt. De fiecare dat un agent trecnd prin starea sa iniial comleteaz un ciclu, i urmtorul su ciclu este pe punctul de pornire. Vom spune c reeaua de ageni are o execuie circular, dac fiecare mesaj trimis de ctre expeditor la ciclul i este recepionat la ciclul i al destinatarului. Discuia ncruciat apare atunci cnd doi ageni tirmit unul altuia mesaje n acelai ciclu de execuie.

Figura 4.1. Reeaua format din doi ageni: expediator i destintar Figura 4.1 reprezint o reea format din 2 ageni l i r(the left stng, the right - drept), respectiv, i o linie de comunicare comun.

Figura 4.2. Sistemul expediator/destintar: producerea blocajului

11

12

Figura 4.3. Sistemul expediator/destintar: erori posibile n ciclu


A a B f K

H C F

A: quietel B: pendingl C: sentl K: answeredl

D:quietr E:answeredr F:acknowledgedr G:pendingr H: sentr

a:actl c:echor d: returnr e:actl f:crosstalkl

Figura 4.4. Execuia sistemului

4.3

Figura 4.5. Algoritmul crostalk bazat pe ciclu

13

Figura 4.6. Algoritmul reprezentat n ciclul a sistemului


A a B f

4.5

cu l-expediator i r-destintar
K g A

A: quietel B: pendingl C: sentl K: answeredl M: finishedr

D:quietr E:answeredr F:acknowledgedr G:pendingr H: sentr g: returnl

a:actl c:echor d: returnr e:actl f:crosstalkl h: crosstalkr

Figura 4.7. Algoritmul de crosstalk n ciclu n sistemul

4.5

14

Figura 4.8. Algoritmul crostastalk ordonat: producerea blocajului

15

Figura 4.9. Algoritmul crosstalk ordonat alternativ Prin linia de comunicare mesajul este timis prin aciunea sent dup care trece n starea pending/suspendat/ pn la primirea unei confirmri. Apoi l prin aciunea terminates trece n starea sa quite, din care l trebuie s nceap din nou aciunea. Dup primira mesajului agentul r transmite o confirmare, i eventual se rentoarce la starea quite, unde este gata s accepte masajul urmtor. Acest interschmbare a celor doi ageni l i r poate fi descris intuitiv n termenii de execuie n ciclu. Execuia ncepe i se termin cnd ambele locaii sunt n starea quite, dar trebuie de inut cont de faptul c agentul l poate s nceap ciclul su (i+1) nainte ca agentul r s i finiseze cel de-al i-ulea ciclu. Se va ncerca extinderea reelei astfel nct cei doi ageni l i r s devin simetrici, r adiional poate juca rolul expeditorului i l rolul destinatarului. Extinderea simetric a sistemului

4.2

din

4.1

aparent este nereuit deoarece apare o tranziie moart, n cazul cnd ambii ageni l i r vor decide s acioneze n acelai ciclu. Agentul l n starea pendingl ateapt un punct din acknowledged r, dar primete unul n sentr, n schimb. n aceast situaie, continuarea evident ar fi de a accepta punctul din sentr i de a rentoarce din returnedl n quitql. Acest lucru este obnut n urma aciunii de crosstolkl n 4.3 . Cu toate acestea 4.3 nu este acceptabil nc deoarece n una din execuiile sale dat n Fig.4.4 care este ilustrat: Agentul l primete o confirmare i un mesaj n acelai timp, i l din greeal presupune crosstolk. Situaia de mai sus poate fi numit eroare circular. Punctul din sentr aparine ciclului al doilea a sistemului. El atinge l nainte ca l s-i finiseze primul ciclu. Aceast categorie de erori este meninut n i n

4.5

de ctre urmtorul mesaj. Intuitiv, acest

mesaj poate fi neles ca semn despre sfritul execuiei, cu fiecare mesaj expediat n ciclul i fiind de asemenea recepionat n ciclul i. Altfel spus un ciclu poate acoperi una din urmtoarele trei subexecuii: - l expediaz un mesaj pentru r. Dup primirea lui, r restituie o confirmare pentru l. Apoi l semnaleaz terminarea. Figura 4.6 ilustreaz aceeast situaie. Apoi r semnaleaz terminarea. concurent i fiecare din ei (3) Sistemul semnalizeaz terminarea. (2) Figura 4.7 ilustreaz acest lucru. (1) - simetric cu (1), r exediaz un mesaj lui l. Dup primirea lui, l returneaz o cofirmare pentru r. - ambii l i r expediaz mesaje concurent unul altuia. Apoi l i r primesc mesajele unul de la altul

4.5

implic apariia mesajeler concurente. n acelai timp, confirmri concurente i

finisarea concurent a mesajelor poate aprea. Totui, este cel mult un mesaj pe drumul de la l la r, i cel mult unul pe drumul de la r la l.

16

Aceasta funcioneaz perfect att timp ct l i r sunt legate prin dou linii de comunicare una pentru mesajele de la l la r i una pentru mesajele de la r la l. Totui, dac mcar o linie este disponibil

4.5

se poate cauza necoinciden: mesajul de la l spre r i mesajul de la r la l pot s se ntlneasc pe

linie. Deoarece actl i actr sunt aciuni locale aceast necoinciden nu poate fi executat. Ea poate fi depistat i fixat, asigurm faptul c fiecare mesaj expediat dup ntlnirea cu careva alt mesaj de pe linie nu este distrus. Pentru acest caz,

4.8

ordoneaz producerea crosstalkl i crosstalkr: l acioneaz

naintea lui r i n consecin finishedl are loc nainte de finishedr. Sosirea punctelor n finished cu mesajele originale din cicluri garanteaz o comunicare perfect. Pentru cazul de convorbire ncruciat acest sistem asigur crosstalkl corespunztor unaintea lui crosstalkr. Acest lucru este realizat considernd ciclul de finisaje a agentului l ca precondiie suplimentar pentru crosstalkr. Aceast politic poate fi considerat o preferin incorect a lui l fa de r. O soluie mult mai simetric este

4.9

cu prioritatea alternativ pentru crosstalk. Acest sistem este simetric fa de primul

crosstalk, ncepnd cu locaia l.

5 Excluderea mutual Excluderea mutual a tranziilor locale n reeua agenilor corporativi este necesar n multe cazuri. Marea majoritate a problemelor i fenomenelor tipice pentru sistemele distribuite se gsesc n ncercarea de a modela varietatea conceptelor i presupunerilor n excluderea mutual. Se consider doi ageni, fiecare din ei are o stare critic. Cei doi ageni trebuie s se sincronizeze astfel nct ajunge n starea critic, ns s nu fie simultan n ea.. Problema excluderii mutuale este problema de construire a aloritmului, respectnd cele dou cerine menionate. Varietatea presupunerilor asupra capabilitii proprie agenilor i disponibilitatea mecanismelor de sincronizare motiveaz existena diferitor soluii.

5.1. Problema Considerm sistemul iniial compus din doi ageni l i r. Fiecare agent este legat de un ciclu cu trei tranziii, numite quiet/pasiv, pending/suspendat, critical, aa cum e artat n Fig.5.1. Dou proprieti trebuie respectate: n primul rnd, ca l i r niciodat s nu fie mpreun n starea critic (proprietetea excluderii mutuale), n al doilea rnd, c fiecare component suspendat va ajunge mai nti n starea critic i mai apoi n quiet.

17

Figura 5.1. Mutex - componentele de baz Un numr binecunoscut de algoritmi exist pentru soluionarea acestei probleme, dar care respect nite cerine adiionale. Ca de exemplu, este frecvent necesar ca ambele locaii l i r s colaboreze ntr-o anumit modalitate; ele pot distribui variabile, schimba mesaje sau verifica mutual starea specific a tranziiei. Suplimentar poate fi cerut ca algoritmul de excludere mutual s fie distridutiv implementabil reeind din definiia formal a acestei noiuni i inndu-ne de condiia
p t trebuie s

necesar localizarea corectitudinii. Tranziia corect mpreun cu premulimea

aparin unui agent i numai unuia singur, locaia p t trebuie s fie ramificat mai departe.

Figura 5.2. Algoritmul mutex de excludere Mai nti se consider trei algoritmi deficieni, astfel evideniind dificultatea ntlnirii excluderii mututale, evoluionale i a corectitudinii locale n acelai timp.

5.2. Un algoritm mutex discutabil Figura 5.2 arat un algoritm care, de fapt, combin dou cerine de excludere i de evoluie mutual. Starea local key nu poate fi asociat numai unuia din ageni. Ambii ageni se ntrec pentru keie i mai mult conflictul pentru keie trebuie s fie soluionat corect pentru ambele pri (deoarece ambele bl i br s aunt aciuni corecte). Deci este necesar managementul asupra nondeterminismului locaiei key, ns algoritmul neglijeaz corectitudinea aciunilor bl i br i aceasta nu este realizabil distributiv. 18

5.3. Algoritmul mutex alternativ Figura 5.3 ilustreaz un algoritm ce respect cerinele pentru excluderea mutual i corectitudinea local, cu toate acestea el neglijeaz evoluia. De exemplu, locaia r poate eventual rmne n quite, caz n care locaia l poate trece sigur n starea sa pending. Acest algoritm poate fi folosit numai n cazul agenilor lacomi, unde ambii ageni trec n starea critic att de frecvent ct e posibil.

Figura 5.3. Algoritmul mutex alternativ

5.4. Algoritmul mutex de testare a strii Figura 5.4 arat un algoritm cu strile locale noncriticall i noncriticalr, ce pot fi considerate ca nite flaguri ce permit partenerului respectiv s ajung n starea sa critic. Dup micaree spre starea critic de-a lungul lui bl, locaia l testeaz starea flagului noncriticalr i n consecin schimb proprietatea flagului noncriticall. Producerea aciuniii bl poate fi prevenit ntotdeauna prin infinit de multe produceri a aciunii br . Premulimea bl a lui bl , oricum are dou elemente ramificate noncritl i noncritr, astfel nclcnd condiia corectitudinii locale.

Figura 5.4. Algoritmul mutex care testeaz starea 19

5.5. Algoritmul mutex cu pasarea punctului Figura 5.5 ilustreaz un algoritm bazat pe transmiterea mesajelor. Conceptul esenial al algoritmului mutex din Fig.5.5 este punctul, care n orice stare accesibil este acaparat de ctre un agent. Agentul poate ajunge n starea critic numai att timp ct este pstrat punctul. Agentul fr punct poate obine acesta prin cerere. n

5.5

punctul este iniial luat de ctre agentul l n starea local avail1. Cu

punctul n avail1 locaia l este n stare s treac imediat din pendingl prin aciunea a la criticall prin aciunea e locaia l apoi se rentoarce din critical l la quietl i face punctul din nou disponibil pentru l. n plus, l poate primi cerere pentru punctul transmis de ctre agentul r prin intermediul requestedl. Corectitudinea lui c garanteaz c l eventual transmite punctul spre grantedr i prin coinciden returneaz silentl. Cererea transmis mai departe de locaia r mai departe la requestedl, este datorat producerii aciunii h. De aici, locaia r este n ateptare/waitingr, pn cnd punctul n grantedr va parveni.

Figura 5.5. Algoritmul mutex cu pasare a punctului Producerea aciunii k aduce agentul r spre critical, agentul l poate fi, ntre timp, din nou suspendat. Deoarece agentul r este acum deintorul punctului, agentul l este n ateptare silentl, i poate trimite cerere n r pentru producerea lui b. Ambii agenii l i r au structur simetric.

20

Starea iniial totui, nu este simetric, deoarece agentul l iniial conine punct n avail l, pe cnd agentul r este n ateptare silentr. Agentul l nu reprezint o main segvenial. Aciunile f i c (aciunile n i j pentru agentul r) se pot produce concurent. Ambii ageni coopereaz prin transmiterea mesajelor, mesajele fiind de dou tipuri(requested/cerut i granted/alocat) n fiecare direcie. Agentul l are o aciune corect, aciunea c. Locaia n conflict corespunztoare locaiei availl nu este citit de la agentul r. Simetric locaia de conflict a locaiei j este availr nu este citit de l. Agentul l conine defect n aciunile a i b. Agentul r accesnd iterativ starea criticalr, nu este afectat chiar dac c sau b ramn posibile pentru totdeauna.

5.6. Algoritmul mutex circular Algoritmul de discuie ncruciat ordonat, reprezentat cu ajutorul sistemului

4.8

poate fi

extins la excludere mutual, aa cum e artat n Fig.5.6. Ordinea apariiei aciunilor i crosstalkr n 4.8 implic faptul c strile finishedl i finishedr niciodat nu vor fi marcate n acelai timp.
5.6

rafineaz

finishedl n ciritl, iar aciunea n n terminatedl, finishedr este schimbat n acelai mod. Strile locale i aciunile din

5.7

sunt redenumite corespunztor cu noul su rol din

5.6

i mai trziu componentele

(quietel, m, pend1l, quietr, p, prnd1r) sunt adugate, furniznd elemente ce sunt cerute n Fig.5.1. sistemul

5.6

opereaz n ciclu: dorind s devin crititcall, agentul l transmite o cerere spre agentul r prin

aciunea a i rmne n pend2l , iar agentul r reacioneaz cu un punct n una din locaiile grantedr sau requiestedr. Agentul l trece n starea critic n ambele cazuri prin producerea aciunii b sau a aciunii j, respectiv r n acelai timp, poate transmite o cerere spre l pentru producerea aciunii g, apoi r rmne n pend2r pn cnd agentul l reacioneaz cu un punct n grantedl sau requestedl. Agentul l trece n starea critic n primul caz datorit aciunii h. n al doilea caz, producndu-se situaia de crosstalk, ambii ageni lupt pentru starea sa critic n acelai ciclu. Agentul r trebuie s atepte n acest caz pn cnd l prsete critl i transmite marcajul spre terminatedl.

21

Figura 5.6. Algoritmul mutex circular Agenii l i r au o structur nesimetric: l precedeaz r n caz de crosstalk. Agentul l nu este main secvenial, deoarece nu se pot produce concurent aciunile e i f. Aciunea q a agentul r poate fi produs concurent n acelai timp cu c i d. Corectitudinea aciunii a garanteaz c locaia l n starea pendl va deveni eventual critic. Locaia n conflict corespunztoare locall, nu este citit de agentul r. Simetric, locaia n conflict, localr, a aciunii g a agentului r nu este citit de ctre agentul l. Agentul l este defect fa de aciunea a. Datorit faptului c algoritmul este circular, fiecre pas a agentului r spre critr, trebuie s fie garantat explicit de ctre agentul l. Vice versa, fiecare pas a agentului l spre critl, trebuie s fie garantat explicit de ctre agentul r.

5.7. Algoritmul mutex a lui Peterson Urmtorul algoritm 5.7 este bazat pe dou flaguri, un punct ce este mprit de ctre agenii l

i r, i pstrat de ctre unul dintre ei n orice moment. Algoritmul pentru prima dat a fost publicat n

[ Pet81] .

22

Figura 5.7. Algoritmul mutex a lui Peterson Flagul finishedl semnaleaz agentului r c agentul l nu este acum n stare s treac n starea critic. Aceasta permite agentului r s acceseze mai uor regiunea sa critic, n urma execuiei aciunii p. n acelai timp, semnalul finishedr permite agentului l s acceseze starea sa critic, n urma aciunii f. Punctele comune sunt distribuitentre atl i atr. Pasul de la pend1l spre pend2l rezult ntr-un punct n atl: n urma aciunii c, caz n care l obine punct de la atr, sau n urma aciunii d, caz n care l pstreaz punctul oricum. Pasul de la pend1r spre pend2r de asemenea rezult ntr-un punct n atr. Din acest motiv punctul este permanent la agentul care execut pasul de la pend1 spre pend2 cel mai repede. Dup prsirea queitl, dea lungul aciunii quiescent a, agentul l i asum trei pai pentru a atinge starea sa critic criticall.. Dup primul pas aciunea direct b aduce l din pend0l spre pend1l, i rentoarce semnalul finishedl. Corectitudinea lui b este local, deoarece b = { pend 0 l , finished l

este local

pentru l, cu unica ramificaie finishedl plasat n b , care este conectat la agentul dreapt r, printr-o bucl (finishedl, p). Pasul doi, din pend1l spre pend2l, rezultnd din aciunea marcat n atl, cum este descris mai sus. Pasul trei, aduce l la criticall , prin intermediul aciunii f caz n care agentul r semnaleaz cu finished, ceea ce nu l aduce n starea crit, sau cu aciunea e, caz n care agentul r, cel mai recent a executat pasul de la pend1l la pend2l. Structura algoritmului garanteaz c una din strile finishedr sau atr, vor transfera un punct care rmsese acolo, pn cnd una din aciunile f sau e se va produce.

23

Ambii ageni l i r sunt structural simetrici, dar starea iniial este mai favorabil pentru agentul drept.

24

5.8. Algoritmul mutual a lui Dekker Urmtorul algoritm

5.8

este o variant a algoritmului Peterson 5.7 . El folosete aceleai

dou semafoare finishedl i finishedr i n acelai timp face punctul se distribuie ntre atl sau atr. Diferena esenial fa de algoritmul Petrson este timpul la care punctul distribuit este ordonat: Punctul este transportat n atl nainte ca l s devin critic n atl , l devine critic n

5.7

, ct timp punctul este transmis la

5.8

, n caz c agentul r nu a semnalizat finishedr, pasul de la pend1l spre

criticall prin aciunea d, depinde nu numai de punctul distribuit n atr, dar de asemenea i de starea local pend1r n locaia r.

Figura 5.8. Algoritmul mutual a lui Dekker

5.9. Algoritmul mutual Owicki/Lamport Diferii ageni pot avea diferite proprieti, deci di ferit politic de acces ctre regiunile sale critice. Exemplu tipic este sistemul scriitor-cititor. Scriitorul oricnd poate face modificri n starea sa critic. Cititorul poate executa mai puin: Oricnd suspendnd citirea unei variabile cititorul pote efectua o nou citire sau scriitorul poate modifica variabilile. De aceea, cititorul poate s nceap accesarea strii sale critice n gol.

25

Figura 5.9. Algoritmul mutual Owicki/Lamport Sistemul

5.9

ilustreaz acest algoritm, el folosete trei flaguri: flagul writer

detached(scriitorul deaat), semnalize cititorului c scriitorul nu dorete s scrie. Flagul reader detached (cititorul deaat) n acelai mod semnalizeaz scriitorului c cititorul nu dorete s efectuieze o citire. Flagul writer involved(scriitorul implicat), este doar locaie comlementar pentru writer detached. Exact unul din aceste flaguri este vizibil ntr-un anumit moment de timp. Dup terminarea producerii unei noi valori, de-a lungul aciunii pasive a, scriitorul execut doi pai pentru a trece n starea sa critic, writing. n primul rnd, aciunea corect b numai schimb marcajul din writer detached n writer involved. Corectitudinea aciunii b este aparent local, al doilea pas aduce scriitorul la starea sa critic, writing, executnduse aciunea c. Structura acestui algoritm garanteaz c este activ flagul reader detached pn cnd c se va produce. Dup folosirea valorii precedente sau a variabilei distribuite cititorul poate deveni suspendat pentru o nou valoare de-a lungul aciunii pasive e, aceasta i ia cititorului doi pai pentru a atinge starea sa critic, reading. Niciuna din ele nu are garania producerii, cu att mai mult c cititorul n starea intermediar pend2 poate fi forat s se rentoarc n starea pend1. Prin intermediul primei aciuni, f, cititorul i scoate punctul din reader detached. Apariia iterativ a ciunii c poate preveni producerea lui f. Al doilea pas de la pend2 la reading, prin aciunea g este posibil numai n cazul cnd scriitorul este detaat. n caz c scriitorul este nc implicat, aciunea j elibereaz flagul 26

reader detached, permind scriitorului de a continua lucrul. Cititorul rmne n starea failed atta timp ct scriitorul este detaat. n acest caz, cititorul poate trece n pend1 i a ncepe o nou ncercare de a efectua o citire.

5.10. Algoritmul mutex asimetric Figura de mai jos

5.10

ilustreaz algoritmul mutual asimetric care se consider far careva

presupuneri de corectitudine. Ca i n algoritmul precedent scriitorul pregtit va ncepe eventual o sciere. Scriitorul oricum poate efectua noi scieri i preveni faptul ca cititorul s fac o nou citire.

Figura 5.10. Algoritmul mutual asimetric Algoritmul folosete trei categorii de mesaje requested/cerut i returned/returnat, ce sunt trimise de ctre cititor scriitorului i granted/aprobat, trimis de la cititor ctre scriitor. Dup finisarea producerii unei noi valori de-a lungul aciunii pasive a, scriitorul folosete una din posibilitile aciunea b sau aciunea d, pentru a atinge starea sa critic, writing. Un punct n available reprezint valoarea scris preventiv, care nc nu a fost citit de ctre cititor. Aciunea b sau d pot duce la o valoare modificat. Puctul n returned reprezint controlul asupra variabilei distribuite napoiate de la cititoritor ctre scriitor, dup ce valoarea precedent a fost citit de ctre cititor. Aciunile a i d produc o nou valoare. De-a lungul aciunii pasive h, cititorul dup finalizarea utilizrii valorii precedente citite trimite o cerere pentru a modifica o valoare de ctre scriitorului. Dup garantarea unei noi valori prin intermediul aciunii e, cititorul ncepe s citeasc. Totui, se poate ntmpla ca cititorul va rmne stocat n sarea sa local pending pentru totdeauna.

27

II. Sisteme avansate 2..1. Sistemul productor consumator revzut Aici ne vom referi la primul model de productor consumator. Acest sistem descrie producerea, livrarea, mutarea i consumarea a unui tip de obiecte. Reeua de mai jos reprezint sistemul productor consumator pentru un anumit obiectul a. n starea prezentat aciunea de producere a obiectului a este posibil i dup producerea ei reeaua trece n starea artat n Fig.2.2. Datorit nscrierii a pe arc apar etichetele produce a i ready to deliver a, punctul dup producerea lui reader to deliver a nu este pur i simplu un punct negru, ci este obiectul a. Aciunea deliver a este posibil n aceast stare, deoarece dou arce de intrare pornesc din starile locale cu puncte obinuite fr nscrieri pe arce, i aciunea ready to deliver duce obiectul a aa cum este cerut de inscripia a.

Figura 2.1. Producerea i consumarea a obiectului a

Figura 2.2. Sistemul dup producerea aciunii produce a

28

Figura 2.3. Sistemul dup producerea tranziiei deliver a

Figura 2.4. Producerea i consumarea obiectelor a sau b

Figura 2.5. Producerea i consumarea crorva obiecte 29

Figura 2.6. Sistemul dup producerea tranziiei produce x Producerea aciunii deliver relev starea artat n Fig. 2.3. Ambele aciuni produce a i remove a sunt posibile n aceast stare. Producerea aciunii produce a va cauza a doua apariie a lui a n starea ready to deliver, iar producerea aciunii remove a va da posibilitatea producerii aciunii consume a, n acelai mod. Figura 2.4 acum extinde

2.4

de a permite comporatea/tratarea itemului al doilea, b. n starea

ilustrat, este o alegere ntre produce a i produce b. Alegerea produce a va cauz comportamentul descris mai sus. Alegerea produce b va cauza procesul corespunztor lui b. Reeaua net corespunztor Fig. 2.5. Locul/aia ready to deliver din 2.5 reprezint dou stri locale din 2.4 ready to deliver a i ready to deliver b. nscripia a n acest loc, ca n Fig.2.2 indic starea ce conine redy to deliver a, un alt loc n 2.5 reprezint ntr-un mod evident starea local din 2.4 . Tranziia produce x n 2.5 de asemenea reprezint dou aciuni produce a i produce b din

24

poate fi reprezentat mai consis ca sistemul de reea, artat n

2.4

. Iniializarea variabilei x prin itemii concureni a sau b, furnizeaz aciunea corespunztoare.

Producerea lor ne d starea, reprezentat dup cum este descric mai sus. Ca un exemplu, producerea tranziiei n 2.5 furnizeaz starea ce corespunde la i este reprezentat n 2.2

2.6

2.2. Masa filosofilor revzut Variabilile simple ce sunt folosite n seciunea de mai sus nu ne pot ajut n toate cazurile. Ca de exemplu, ne vom aminti de sistemul de servire a mesei a celor 5 filosofi. Ne vom strdui s 30

reprezentm ct mai concis sistemul pentru a putea exploata structura sa simpl. Ideiea de baz este de a reprezenta mulimea strilor locale cu comportament similar ca o singur locaia p i de asemenea o mulime de aciuni cu comportament similar ca o singur tranziie.

Figura 2.7. Sistemul cu trei filosofi a, b i c Ca de exemplu, trei stri locale a is thinking( n ateptare), b is thinking i c is thinking n 2.7 pot fi reunite n locaia thinking philosophers. Starea cu a i b n ateptare, iar c nu, corespunde strii unde thinking philosophers este nscris cu a i b, dar nu i cu c; a i b sunt apoi n extinderea actual a locaiei thinking philosophers, pe cnd c nu. n cardrul reelelor strile locale se pot schimba dup producerea aciunii. Aceasta corespunde cu schimbrile n amplasarea locaiilor.

31

Figura 2.8. Reprezentarea sistemului folosind predicatele Figura 2.8 ilustreaz reeaua corespunztoare: starea local din 2.7 philosofers(filosoful mnnc), respectiv. Amplasarea fiecrei locaii este dat de inscripia sa, fiecare aciunei este dat acum pentru a indica itemul afectat de producerea ei. n urmtoarea transformare , n scopul de a deveni ct mai scurt, schimbm inscripia din este acum imbinat n

trei locaii thinking philosophers, available forks(furculie disponibile) i eating

2.8

aa cum este artat n Fig.2.9.: dou furculie folosite de careva filosof x sunt notate prin

l(x) i r(x), de aici, l i r reprezint funcii atribuind fiecrui filosof furculia sa dreapt i stng, respectiv. n pasul final mulimea de aciuni este constrns la o singur tranziie. Ca de exemplu cele trei aciuni a pick up, b pick upi c pick up din

2.9

sunt reprezentate prin tranziia pick

up(a ridica) n Fig.2.9. Returnarea furculielor este reprezentat corespunztor.

32

P = (a, b, c) G = ( f1 , f 2 , f 3 ) l , r : G

l (a ) = r (b) = f 1 l (b) = r (c ) = f 2 l (c ) = r ( a ) = f 3

Figura 2.9. Reprezentarea sistemului folosind funciile Exemplul aciunilor distincte (a pick up) este reprezentat ntr-o versiune constrns prin atribuirea itimilor concrei variabililor produse de ctre arcele ce le nconjoar. Ca de exemplu: a pick up corespunde n

2.9

cu atribuirea lui a variabilei x, de fapt, aceast distribuire produce

una din nscrierile de pe arcele ce nconjoara a pick up n

2.8

33

Figura 2.10. Reprezentarea sistemului folosind aciunile parametrizate Prin intermediul sistemului exemplului filosofilor.

2.10

am obinut o reprezentare mai abstract i mai general a

2.3. Ciurul lui Eratostene Aici ne vom referi la un exemplul foarte cunoscut de identificare a numerelor prime, dintr-o mulime de numere ntregi, n conformitate cu principiul ciurului lui Eratostene. Convenional aceast procedur const n parcurgerea tuturor numerelor ncepnd de la 2 pn la n, eradiind toi multiplii lui 2. n a dou parcurgere, toi multiplii rmai a lui 3 sunt radiai. n caz general parcurgerea a i-ua eardiaz toi multiplii rmai a i+1 numere. De la prima vedere, nu este nacesar de a radia multiplii numerelor ntr-o careva ordine particular, condiia urmtoare este suficient pentru tergerea tuturor produselor: fiecare numr k poate vedea oricare alt numr i l poate radia, furniznd c el este multiplul lui k. Oricum nu toate eradierile urmtoare sunt posibile, numerele rmase sunt de fapt numerele prime ntre 2 i n.

34

Figura 2.11. Algoritmul ciurului lui Eratostene distribuit Figura 2.11 ilustreaz reeaua acestui sistem pentru cazul cnd n=10. Toate numerele 2,...,10 se afl n starea iniial. Numerele prime 2,3,5, i 7 aparin fiecrei stri atinse: unul din dou numere, de regul, este ocupat n ciclu (2,3,5) sau deloc n nici o aciune(7), ca de exemplu 4 este eventual radiat, dar poate fi ocupat n tergerelui 8, nainte de a fi radiat de ctre 2. Dar observm c este un singur numr 3, pentru a terge 9 pe cnd numerele 6, 8 i 10 pot fi radiate alternativ respectiv de 2 numere.

Figura 2.12. Cuirul distribuit a lui Eratostene pentru careva numr n 35

Figura 2.12 ilustreaz versiunea general pentru oricare n numere: actual numbers/numerele actuale/ iniial transmite toate numerele de la 12 la n. Tranziia erase/terge/ este posibil oricnd careva numr k i careva multiplu i k din k (pentru i > k ) este prezent n locaia actual numbers. Ambii k i i k sunt transmii i k se rentoarce spre locaia actual numbers.

Concluzie Exemplele de mai sus urmrete ideea de a reprezenta concis sistemele de reele elementare. n primul rnd: strile locale sunt mprite n cteva clase. Fiecare clas este apoi constrns la o singur locaie, fiecare din locaii conine itemi particulari, reprezentnd strile locale n clasa corespunztoare. n acelai timp aciunile sunt mprite n clase i fiecare clasa este generalizat printr-o singur tranziie. nscrierile pe arcele adiacente descriu aciunea n clasa corespunztoarea. Aciunile distincte pot fi rectigate prin evaluarea variabililor implicate(prin nlocuirea lor cu constante) reeaua de aceast categorie este un exemplu de sistem de reea. Generalizarea pentru sistemele de reea este de a stabili relaia ntre nscrierile sintactice(termeni), spre arce i locaii, i sensul lor semantic concret. Aceast relaie ntre sintax i semantic este bine stabilit matematic; aparinnd conceptului de baz a tiinelor computerizate. Mai mult ca att, ceia ce exemplul de mai sus ilustreaz este intuitiv evident. 3 Conceptul sistemelor de reea Ideea conceptual a sistemelor de reea este foarte simpl: fiecare locaie din sistemul de reea

reprezint o mulime de stri locale, iar fiecare tranziie din

reprezint o mulime de

aciuni mulimile stabilite unor locaii formeaz universul evideniat: 3.1 Definiie. Fie

o reea. Un univers A din

fixeaz pentru fiecare locaie p P o

mulime A p , domeniul lui p n A. Ca de exemplu, Fig.6.1 este domeniul din thinking philosofers i eating philosofers este o mulime de filosofi i domeniul de available forks. O stare actual fixeaz pentru fiecare loc o submulime se domenii. O aciune pune n coresponden gradul de schimbare cauzat de producerea sa:

3.2.Defeniie. Fie i.

o reea cu universul A stabilete pentru fiecare loc/aie p P mulimea a ( p ) A p

Starea a din

36

ii.

Fie t T o aciune m din t stabilete pentru fiecare arc adiacent f = ( p, t ) sau f = (t , p ) mulimea m( f ) A p .

De fapt, satarea din

3.10

artat n Fig.2.10 la thinking philosophers mulimea {a,b} la

available forks mulimea {f1} i la eating philosofers mulimea {c}. Aciunea tipic m din returns n 4.1 a fost dat de m(eating philosofers, return)=m(return, thinking philosophers) = {c} i m(return, available forks)= {f2, f3}. 3.3.Definiie. Fie o reea cu cteva universe A, fie a o stare, fie t T i fie m o aciune n t. i. m posed concesie(este posibil) n a dac pentru fiecare locaie p t , m( p, t ) a ( p ) i pentru fiecate locaie p t , (m(t , p ) \ m( p, t )) A p \ a ( p ) starea eff(a,m) este definit pentru fiecare locaie p P prin a ( p ) \ m ( p , t ) a ( p ) m (t , p ) eff (a, m)( p ) := (a ( p ) \ m( p.t )) m(t , p ) a ( p ) daca p t \ t daca p t \ t daca p t t altfel

ii.

este efectul de producerea lui m n a. iii. presupunem c m este posibil n a. Atunci tripletul (a,m,eff(a,m)) este numit pasul lui t n notat a m eff (a, m) . Aciunea m descris mai sus de tranziia return este posibil n starea artat n Fig.2.10(m este n plus unica aciune posibil). Producerea ei furnizeaz starea cu toi filosofii n ateptare, toate furculiele disponibile i nici un filosof nu mnnc. Paii pot fi descrii concis prin noiunea de extindere canonic a aciiunilor:

3.4.Propoziie. Fie o reea extindem m prim

, fie t T i fie a m b un pas din t. Pentru toi (r , s F ) Atunci pentru toate locaiile p P , avem

m(r , s ) := .

b( p ) = (a ( p) m(t , p )) \ m( p, t ) . Sistemele de reea sunt acum definite prin analogie cu sestemele de reea elementare: O reea cu un domeniu pentru fiecare locaie i o mulime de aciuni pentru fiecare tranziie este mai mult utilizat cu starea iniial i submulimi distincte de tranziii pasive i corecte. 37

3.5.Definiie. Reeaua i. ii. iii. iv. v.

este un sistem de reea dac

pentru fiecare locaie p P , este sabilit mulimea Ap (un univers din ) pentru fiecare tranziie t T este stabilit mulimea de aciuni din t , starea a este distinct, numit starea iniial n fiecare tranziie t T este indicat sau ca progresiv sau ca pasiv, careva tranziii progresive sunt distinse ca corect. Exemplul examinat mai sus folosete tehnica particular de reprezentare pentru sisteme de reele. Starea iniial este dat prin inscriera locaiilor iar aciunea tranziiilor este dat de valorificarea variabililor ce se produc la inscrierea arcelor. 4 Execuia concurent i simultan. Execuiile simultane a sistemelor de reea pot fi definite ca o secven de pai. Exist de asemenea o definiie canonic a execuiei concurente. Baznduse pe noiunea de pas, dat n Def.3.3, execuia simultan este definit n modul urmtor: 4.1.Definiie. Fie un sistem de reea. i.
m Pentru i = 1,...,n presupunem paii ai 1 i ai din , aceti pai formeaz o

execuie finit simultan w

m m m -bazat, notat a 0 1 a1 2 ... n a n .

Fiecare i { 0,..., n} este un indice din w. ii.


m Pentru i = 1,2,... presupunem paii ai 1 i ai din

, ei formeaz o execuie

finit simultan w indice din w.

m m -bazat, schiat a 0 1 a1 2 ... . Fiecare i N este un

De exemplu, Fig.4.1 arat o execuie simultan a sistemului

2.12

pentru cazul cnd

n =10, fiecare stare a este reprezentat prin nscrierea listei a(A) n coloane. Fiecare aciune m este reprezentat ca o pereche (k,l), cu m( A, t ) = { k , l k } i m(t , A) = {k } .

38

2 2 2 2 2 2 3 3 3 3 3 3 4 ( 3,3) 4 ( 4.2 ) 4 ( 3, 2 ) 4 ( 2.2 ) 4 5.2 () 5 5 5 5 5 5 7 6 6 6 7 6 7 7 7 7 8 8 8 9 9 10 Figura 4.1. Execuia simultana n

2.12

4.2.Definiie. Fie un sistem de reea. i. ii. iii. Pasul a m b este accesibil n


m m cu a n 1 n a n = a b .

, dac aici exist o execuie simultan finit

Stare a din .

este accesibil n

, dac aici exist un pas accesibil formnd b m a

iv.

O aciune m este accesibil n

, dac aici exist un pas accesibil formnd a m b .

T,b

T,a

A,f 1

f,m

E,a

A,f 3 um ,m

E,c

T,c

A,f 2

Figura 4.2. Execuia concurent a sistemului

2.10

Executarea concurent este definint acum n dou niveluri: n primul rnd, fiecare aciune m desemneaz o reea n aciune, reprezentnd detaliile aciunii n termenii unei reele nsriptibile. n al doilea rnd, aceste aciuni sunt lipite mpreun formnd o execuie concurent. 39

4.3.Definiie. Fie etichetat cu

un sistem de reea, fie t T , fie m o aciune din t, i fie N o reea injectiv n plus presupunem l (e) = (t , m), l (e) = {( p, a ) | p t , i

TN = {e} .

a m( p, t )}, l (e) = {( p, a ) | p t , i a m(t , p)} . Atunci N este o reea n aciune din m). De

(pentru

exemplu:

(1)
A,f 3 r,m ,m

E,c

T,c

A,f 2

Este o reea n aciune pentru aciunea m din 2.10 cu m( E , r ) = {c}, m(r , A) = { f 2 , f 3 } i m(r , T ) = {c} .

4.4.Definiie. Fie

un sistem de reea i fie K un element etichetnd producerea reelei/ labeled

occurrence net/ K este o i. ii.

-bazat execuie concurent dac:

n fiecare stare concurent a din K, diferite elemente din a sunt diferit etichetate, Pentru fiecare t T , (t t , {t},t {t} {t} t ) este o aciune de reea din .

Ca de exemplu, Fig.4.2 ilustreaz executarea concurent din sistemul 2.10 . Aciunile folosite m i m | sunt evidente din context. Ca exemplu, Fig.4.3 ilustreaz executarea concurent din

2.12

pentru cazul cnd n=10, fiecare etichet a locaiei (A,i) descris prin i i fiecare etichet

a tranziiei (t,m) este reprezentat ca perechea (k, l), unde m( A, t ) = {k , k l} i m(t , A) = {k} .

40

2 3 4 5 6 7 8 9 10 3,2 4,2 3 4

2,2 3,3

2 3

5,2

Figura 4.3. Execuia concurent a sistemului

4 .3

41