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.

- 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

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

Saved successfully!

Ooh no, something went wrong!