18.04.2013 Views

Tehnici de implementare a concurentei în analiza si proiectarea ...

Tehnici de implementare a concurentei în analiza si proiectarea ...

Tehnici de implementare a concurentei în analiza si proiectarea ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

eh intra : Instance ? ? (Key intra * )\Inv<br />

Semantici <strong>de</strong> urma:<br />

bec intra : Class ? ? (Key intra * )\Inv, becintra(P) = p{ beh intra(p) : p ?<br />

state intra<br />

Semantici <strong>de</strong> stari<br />

: ? (Key intra * )\Inv ? Keyintra * ? ? (Keyintra * )\Inv<br />

stateintra(?)u = ?<br />

? ? { z : u^<br />

z ? ? }, daca u ?<br />

? , in rest<br />

States intra<br />

: ? (Key intra * )\Inv ? ? (? (Keyintra * )\Inv)<br />

States intra(?) = { state intra(?)u : u ? ? }<br />

Figura 3.9. Multimi <strong>si</strong> functii semantice <strong>de</strong> surprin<strong>de</strong>re a <strong>concurentei</strong> interne<br />

Daca beh reprezenta multimea tuturor secventelor <strong>de</strong> mesaje care pot fi<br />

acceptate <strong>de</strong> catre o instanta, behintra va avea o <strong>de</strong>finitie <strong>si</strong>milara, <strong>în</strong>sa trebuie avuta <strong>în</strong><br />

ve<strong>de</strong>re exclu<strong>de</strong>rea secventele incon<strong>si</strong>stente <strong>de</strong> mesaje (prin care terminarea invocarii<br />

unui mesaje prece<strong>de</strong> startul acesteia). Multimea Inv, pe care o vom numi multime <strong>de</strong><br />

inver<strong>si</strong>uni, este multimea care contine toate aceste secvente. Pentru a caracteriza<br />

aceasta multime vom <strong>de</strong>fini functia:<br />

nr : Keyintra* ? Keyintra ? ,<br />

un<strong>de</strong> nr(, m) reprezinta numarul <strong>de</strong> aparitii al mesajului m <strong>în</strong> secventa<br />

<strong>de</strong> mesaje . Prin urmare multimea Inv poate fi <strong>de</strong>finita astfel:<br />

Inv = {, ? i ? n, ? ms, msf ? Keyintra a.î.<br />

nr(, ms) < nr(, msf)},<br />

adica multime Inv reprezinta multimea tuturor secventelor <strong>de</strong> mesaje pentru care<br />

exista cel putin un mesaj din Keyintra <strong>si</strong> cel putin o subsecventa <strong>în</strong> care numarul <strong>de</strong><br />

aparitii al startului invocarii mesajului este mai mic <strong>de</strong>cât numarul <strong>de</strong> aparitii a<br />

terminarii invocarii mesajului.<br />

<strong>în</strong> relatia:<br />

84<br />

?<br />

Definitie 11. Multimile <strong>de</strong> secvente <strong>de</strong> mesaje ?, ? ? ? (Keyintra * )\Inv se afla<br />

? Tintra ?<br />

daca <strong>si</strong> numai daca ? ? ? <strong>si</strong> ? u ? ?, u = v^z un<strong>de</strong> v ? ? iar z0 (daca exista) nu apare<br />

niciodata <strong>în</strong> ?. Multimea nevida <strong>de</strong> instante ? este un alement al TypesTintra daca <strong>si</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!