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.
specificarea <strong>si</strong> coordonarea <strong>concurentei</strong>. Aceste mecanisme acopera toate categoriile<br />
<strong>de</strong> mo<strong>de</strong>le <strong>de</strong> obiecte concurente <strong>de</strong>scrise.<br />
Vom enunta <strong>în</strong> continuare un set <strong>de</strong> principii pe baza carora vom realiza o<br />
evaluare a mecanismelor <strong>analiza</strong>te. Aceste principii caracterizeaza un mo<strong>de</strong>l obiect<br />
general, cu o putere ridicata <strong>de</strong> exprimare a interactiunii <strong>si</strong> <strong>si</strong>ncronizarii activitatilor<br />
concurente <strong>si</strong> care vizeaza pastrarea integritatii conceptelor orientate-obiect<br />
(mostenirea, <strong>în</strong>capsularea, modularitatea etc).<br />
Mo<strong>de</strong>le obiect cu cea mai mare putere <strong>de</strong> exprimare a <strong>concurentei</strong> sunt cele<br />
care permit executarea <strong>în</strong> paralel a doua sau mai multe operatii ale aceluia<strong>si</strong> obiect.<br />
Pastrarea integritatii proprietatilor obiectelor asupra carora actioneaza mai multe<br />
operatii <strong>în</strong> mod concurent presupune utilizarea <strong>de</strong> mecanisme <strong>de</strong> limbaj <strong>de</strong><br />
<strong>si</strong>ncronizare <strong>si</strong> planificare a executiei operatiilor. Planificarea operatiilor unui obiect<br />
poate fi realizata <strong>în</strong> functie <strong>de</strong> starea obiectului la un moment dat sau <strong>de</strong> istoricul<br />
executiilor operatiilor acestuia. Prin urmare un prim principiu care trebuie respectat<br />
<strong>de</strong> catre un mo<strong>de</strong>l <strong>de</strong> obiecte concurente este ca acesta sa contina un mecanism <strong>de</strong><br />
specificare <strong>si</strong> interactiune <strong>în</strong>tre obiecte care sa permita exprimarea: a) <strong>concurentei</strong><br />
intra-obiect, b) executiei <strong>de</strong>pen<strong>de</strong>nte <strong>de</strong> stare <strong>si</strong> c) executiei <strong>de</strong>pen<strong>de</strong>nte <strong>de</strong> istoric.<br />
Vom numi acest principiu: Principiul expre<strong>si</strong>bilitatii <strong>concurentei</strong>.<br />
Conditiile pe baza carora se realizeaza <strong>si</strong>ncronizarea operatiilor concurente ale<br />
unui obiect poarta numele <strong>de</strong> constrângeri <strong>de</strong> <strong>si</strong>ncronizare. Constrângerile <strong>de</strong><br />
<strong>si</strong>ncronizare reprezinta expre<strong>si</strong>i logice <strong>în</strong> care, <strong>în</strong> general, sunt implicate proprietatile<br />
obiectului. Pentru a evita violarea <strong>în</strong>capsularii unui obiect concurent constrângerile<br />
<strong>de</strong> <strong>si</strong>ncronizare ale operatiilor sale trebuie sa poata fi specificate la nivelul acestuia <strong>si</strong><br />
sa fie transparente celorlalte obiecte din <strong>si</strong>stem. Aceasta conditie naturala impusa<br />
unui mo<strong>de</strong>l <strong>de</strong> obiecte concurente o vom referi <strong>în</strong> continuare ca Principiul codului <strong>de</strong><br />
<strong>si</strong>ncronizare orientat pe obiectul apelat.<br />
Ultimele doua principii pe care le vom lua <strong>în</strong> con<strong>si</strong><strong>de</strong>rare se refera la<br />
localizarea constrângerilor <strong>de</strong> <strong>si</strong>ncronizare <strong>în</strong> <strong>de</strong>finirea comportamentului obiectelor<br />
concurente. Astfel, Principiul izolarii codului <strong>de</strong> <strong>si</strong>ncronizare concurenta vizeaza<br />
<strong>de</strong>tasarea codului care implementeaza functionalitatea unei operatii <strong>de</strong> codul<br />
corespunzator <strong>de</strong>scrierii constrângerilor <strong>si</strong>ncronizare. De asemenea, po<strong>si</strong>bilitatea <strong>de</strong> a<br />
mosteni separat codul care implementeaza functionalitatea unei operatii <strong>si</strong> codul care<br />
19