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 ...
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>