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.

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

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

Saved successfully!

Ooh no, something went wrong!