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 ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
partajate <strong>de</strong> mai multe operatii din interiorul acestora. Mecanismele din aceasta<br />
categorie nu impun conditii <strong>de</strong> <strong>si</strong>ncronizare la nivel <strong>de</strong> obiect, iar interfetele<br />
obiectelor vor ramâne neschimbate <strong>si</strong> sunt acce<strong>si</strong>bile pe <strong>în</strong>treaga perioada <strong>de</strong> viata a<br />
acestora. În general aceste mecanisme nu respecta principiul interactiunii orientate pe<br />
apelant.<br />
Mecanisme <strong>de</strong> interactiune orientate pe operatii:<br />
<strong>si</strong>ncronizare prin terminare,<br />
semafoare, mutex <strong>si</strong> lock,<br />
regiuni critice conditionale,<br />
<strong>si</strong>ncronizare "piggy-backed"<br />
Mecanisme <strong>de</strong> interactiune bazate pe <strong>în</strong>capsulare:<br />
a) mecanisme cu control extern:<br />
monitorul,<br />
variabile <strong>de</strong> conditie,<br />
asteptarea conditionala<br />
b) mecanisme cu control mixt:<br />
coada <strong>de</strong> asteptare,<br />
inclu<strong>de</strong>re/exclu<strong>de</strong>re <strong>de</strong> meto<strong>de</strong>,<br />
abstractizarea comportamentului,<br />
mo<strong>de</strong>lul Actor,<br />
meto<strong>de</strong> cu garzi,<br />
multimi <strong>de</strong> acceptare,<br />
expre<strong>si</strong>i <strong>de</strong> cale,<br />
rutine <strong>de</strong> vitalizare,<br />
c) mecanisme cu control reflectiv<br />
Figura 2.3. Cla<strong>si</strong>ficarea mecanismelor <strong>de</strong> interactiune <strong>si</strong> <strong>si</strong>ncronizare<br />
a obiectelor concurente<br />
Caracteristica principala a mecanismelor <strong>de</strong> interactiune concurenta orientate<br />
pe <strong>în</strong>capsulare este aceea ca impun un caracter dinamic interfetelor <strong>de</strong> obiecte.<br />
Aceste mecanisme permit <strong>în</strong>târzierea executarii <strong>de</strong> operatii <strong>în</strong> functie <strong>de</strong> anumite<br />
conditii date, <strong>în</strong>târzieri care pot fi privite ca <strong>si</strong> <strong>în</strong><strong>de</strong>partari temporare a operatiilor<br />
respective din interfata unui obiect. Dupa cum sugereaza <strong>si</strong> numele, mecanismele din<br />
aceasta categorie sunt <strong>în</strong>tâlnite numai <strong>în</strong> limbajele <strong>de</strong> programare <strong>în</strong> care este <strong>de</strong>finit<br />
conceptul <strong>de</strong> <strong>în</strong>capsulare a datelor. Majoritatea acestor mecanisme au fost <strong>de</strong>zvoltate<br />
odata cu <strong>de</strong>zvoltarea <strong>de</strong> limbaje <strong>de</strong> programare orientate-obiect concurente.<br />
Toate mecanismele din aceasta categorie realizeaza coordonarea activitatilor<br />
concurente la nivelul obiectelor. Diferenta majora dintre ele este data <strong>de</strong> gradul <strong>de</strong><br />
distributie a responsabilitatii <strong>de</strong> control al acestei coordonari <strong>în</strong>tre <strong>si</strong>stem <strong>si</strong> obiecte.<br />
În functie <strong>de</strong> raspunsul dat la aceasta <strong>în</strong>trebare se pot distinge trei subcategorii<br />
25