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.
- principiul izolarii codului <strong>de</strong> <strong>si</strong>ncronizare concurenta,<br />
- principiul separarii codului <strong>de</strong> <strong>si</strong>ncronizare concurenta.<br />
Principiile <strong>de</strong> mai sus trebuie sa fie respectate <strong>de</strong> catre mecanismele <strong>de</strong><br />
coordonare a <strong>concurentei</strong> <strong>în</strong>tr-un context orientat-obiect astfel <strong>în</strong>cât avantajele<br />
caracteristice programarii concurente sau ale programarii orientate obiect sa nu se<br />
reduca sau chiar anuleze. Principiile au fost <strong>de</strong>terminate pe baza unor studii informale<br />
privind programarea orientata-obiect <strong>si</strong> programarea concurenta. Am aratat <strong>în</strong>sa ca<br />
nici unul dintre limbajele <strong>de</strong> programare orientate-obiect concurente <strong>de</strong>zvoltate pâna<br />
<strong>în</strong> prezent nu respecta toate aceste principii.<br />
Sistemul formal prezentat <strong>în</strong> sectiunea anterioara este potrivit pentru<br />
mo<strong>de</strong>larea tuturor acestor principii. Mai mult, el are la baza respectarea primului<br />
principiu enuntat, <strong>si</strong> anume acela al localizarii codului <strong>de</strong> gestiune a interactiunilor<br />
<strong>în</strong>tre activitati concurente la nivelul obiectului activ apelat.<br />
Executia <strong>de</strong>pen<strong>de</strong>nta <strong>de</strong> stare <strong>si</strong> cea <strong>de</strong>pen<strong>de</strong>nta <strong>de</strong> istoric au fost <strong>de</strong> asemenea<br />
mo<strong>de</strong>late prin intermediul <strong>de</strong>finitiei 8. Aceasta introduce o notiune particulara <strong>de</strong> tip<br />
prin mo<strong>de</strong>larea comportamentului instantelor claselor concurente având la baza<br />
<strong>si</strong>stemul <strong>de</strong> domenii <strong>si</strong> operatii semantice prezentat <strong>în</strong> figura 3.7. Definitia 8 sta la<br />
baza extin<strong>de</strong>rii unui formalism vizual <strong>de</strong> mo<strong>de</strong>lare a comportamentului obiectelor<br />
active <strong>si</strong> care va fi prezentat <strong>în</strong> cadrul capitolului urmator.<br />
Mo<strong>de</strong>larea <strong>concurentei</strong> interne se realizeaza prin rafinarea multimii <strong>de</strong> mesaje<br />
Key. Vom nota aceasta multime cu Keyintra <strong>si</strong> ea nu va contine doar o multime<br />
<strong>si</strong>mpla <strong>de</strong> <strong>si</strong>gnaturi <strong>de</strong> mesaje, ci pentru fiecare m ? Key, Keyintra va contine o<br />
pereche ms - msf, un<strong>de</strong> ms reprezinta inceputul invocarii mesajului m, iar msf sfâr<strong>si</strong>tul<br />
acestei invocari. Pentru mo<strong>de</strong>larea <strong>concurentei</strong> interne <strong>de</strong>finitia anomaliei <strong>de</strong><br />
mostenire <strong>si</strong> taxonomia anomaliilor <strong>de</strong>finite <strong>în</strong> sectiune prece<strong>de</strong>nta pot fi usor<br />
generalizate, prin introducerea <strong>de</strong> noi operatii semantice behintra, becintra, stateintra <strong>si</strong><br />
State<strong>si</strong>ntra (figura 3.9).<br />
83