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.
distincte <strong>de</strong> mecanisme <strong>de</strong> interactiune concurenta orientate pe <strong>în</strong>capsulare: cu control<br />
extern, cu control mixt <strong>si</strong> cu control reflectiv.<br />
Mecanismele <strong>de</strong> interactiune cu control extern sunt caracterizate <strong>de</strong> faptul ca<br />
<strong>si</strong>stemul este cel care este direct raspunzator <strong>de</strong> interactiunea dintre obiecte. În acest<br />
caz, coordonarea interactiunii concurente nu este specificata explicit. Astfel,<br />
specificarea claselor <strong>de</strong> obiecte nu influenteaza ordinea <strong>de</strong> satisfacere a apelurilor<br />
concurente <strong>de</strong> operatii <strong>si</strong> nici nu poate <strong>de</strong>ci<strong>de</strong> care operatie va fi executata <strong>si</strong> care nu la<br />
un moment dat. Acest lucru este realizat implicit <strong>de</strong> catre <strong>si</strong>stem. Mecanismele care<br />
fac parte din aceasta subcategorie respecta principiul codului <strong>de</strong> interactiune orientat<br />
pe obiectul apelat. De asemenea, <strong>de</strong>oarece <strong>în</strong> cadrul claselor nu exista cod explicit<br />
care sa <strong>de</strong>scrie interactiunea concurenta dintre obiecte este evi<strong>de</strong>nt faptul ca sunt<br />
respectate <strong>si</strong> principiile cu privire la izolarea <strong>si</strong> separarea codului <strong>de</strong> interactiune. Un<br />
<strong>de</strong>zavantaj important al acestor mecanisme rezulta din po<strong>si</strong>bilitatile reduse <strong>de</strong><br />
specificare a <strong>concurentei</strong>, la un moment dat <strong>în</strong> cadrul unui obiect fiind permisa<br />
executia unei <strong>si</strong>ngure operatii. Daca <strong>în</strong> interiorul unui obiect exista o operatie <strong>în</strong><br />
executie, toate celelalte mesaje <strong>de</strong> apel <strong>de</strong> operatii receptionate <strong>de</strong> obiect vor fi<br />
amânate pâna când executia acesteia se <strong>în</strong>cheie. Aceasta restrictie conduce la crearea<br />
<strong>de</strong> programe concurente cu performante reduse.<br />
În cazul mecanismelor cu control mixt responsabilitatea coordonarii<br />
interactiunilor dintre activitatile concurente din cadrul unui obiect este împartita <strong>în</strong>tre<br />
<strong>si</strong>stem <strong>si</strong> <strong>de</strong>scrierea clasei obiectului. Astfel, codul scris pentru <strong>implementare</strong>a<br />
obiectelor contine portiuni care au ca unic scop specificarea interactiunilor concurente<br />
(mai precis realizarea modificarii dinamice a interfetei obiectului). Sistemul<br />
reactioneaza la rândul sau corespunzator acestor specificari. În general mecanismele<br />
cu control mixt respecta principiul codului <strong>de</strong> interactiune orientat pe obiectul apelat.<br />
Mecanismele <strong>de</strong> interactiune cu control reflectiv se caracterizeaza prin<br />
<strong>de</strong>sprin<strong>de</strong>rea totala a codului <strong>de</strong> interactiune <strong>de</strong> <strong>implementare</strong>a clasei. În acest caz se<br />
pot formula constrângeri <strong>de</strong> interactiune explicit, <strong>în</strong> cadrul unor asa-numite metaclase.<br />
În cele ce urmeaza vor fi <strong>de</strong>scrise <strong>si</strong> <strong>analiza</strong>te <strong>în</strong> <strong>de</strong>taliu fiecare dintre<br />
mecanismele enumerate <strong>în</strong> figura 2.3, rezultatele evaluarii acestora fiind prezentate <strong>în</strong><br />
finalul capitolului <strong>în</strong>tr-un format tabelar.<br />
26