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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Afirmatie 1. Orice drum dintr-o ierarhie <strong>de</strong> mostenire incrementala<br />

implementeaza un lant <strong>de</strong> subtipuri.<br />

Afirmatie 2. Fiecare lant <strong>de</strong> subtipuri poate fi implementat <strong>de</strong> o ierarhie <strong>de</strong><br />

mostenire incrementala.<br />

Conform <strong>de</strong>finitiei <strong>de</strong> tip data anterior, <strong>în</strong> care acesta este caracterizat <strong>de</strong> o<br />

multime <strong>de</strong> operatii, afirmatiile 1 <strong>si</strong> 2 au loc pentru orice ierarhie <strong>de</strong> mostenire (nu<br />

neaparat incrementala!), <strong>în</strong> care nu este permisa stergerea <strong>de</strong> operatii. În cazul<br />

programarii orientate-obiect concurente <strong>în</strong>sa, exista o multime con<strong>si</strong>stenta <strong>de</strong> limbaje<br />

sau mo<strong>de</strong>le obiect care fac ca o subclasa dintr-o ierarhie <strong>de</strong> mostenire incrementala sa<br />

fie strâns legata <strong>de</strong> superclasa acesteia printr-o relatie mai puternica <strong>de</strong> subtipizare,<br />

bazata pe acceptarea <strong>de</strong> secvente <strong>de</strong> mesaje, spre <strong>de</strong>osebire <strong>de</strong> relatia bazata pe<br />

multimi <strong>de</strong> operatii. Aceste limbaje sau mo<strong>de</strong>le obiect utilizeaza mecanisme <strong>de</strong><br />

<strong>si</strong>ncronizare orientate pe <strong>în</strong>capsulare. Problema anomaliilor <strong>de</strong> mostenire apare<br />

frecvent <strong>în</strong> cazul acestor limbaje <strong>de</strong>oarece afirmatia 2 nu este <strong>în</strong><strong>de</strong>plinita pentru<br />

aceasta notiune <strong>de</strong> tip.<br />

Obiectele active au cel putin un fir <strong>de</strong> executie propriu. Concurenta inter-<br />

obiect <strong>si</strong> intra-obiect implica nece<strong>si</strong>tatea <strong>si</strong>ncronizarii, fara <strong>de</strong> care starea unui obiect<br />

activ poate <strong>de</strong>veni incon<strong>si</strong>stenta. De aceea programarea orientata-obiect concurenta<br />

introduce notiunea <strong>de</strong> control <strong>de</strong> interfata. Majoritatea mo<strong>de</strong>lelor obiect realizeaza<br />

controlul interfetei prin intermediul unei entitati speciale, pe care le vom numi <strong>în</strong><br />

continuare gestionare <strong>de</strong> mesaje, <strong>si</strong> care se concretizeaza printr-un fir <strong>de</strong> executie<br />

distinct, un mecanism <strong>de</strong> blocare sau un obiect special. Aceste entitati <strong>de</strong>cid care sunt<br />

operatiile permise a fi lansate <strong>în</strong> executie <strong>si</strong> operatiile care trebuie sa fie suspendate<br />

astfel <strong>în</strong>cât obiectul sa se afle <strong>în</strong> orice moment <strong>în</strong>tr-o stare con<strong>si</strong>stenta. Mesajele<br />

receptionate <strong>de</strong> la alte obiecte din <strong>si</strong>stem vor fi retinute <strong>în</strong>tr-o coada <strong>de</strong> mesaje pâna<br />

când entitatea care gestioneaza controlul interfetei le permite sa avanseze. Prin<br />

urmare controlul interfetei impune constrângerile <strong>de</strong> <strong>si</strong>ncronizare.<br />

Vom utiliza notatia pentru reprezentarea unei secvente <strong>de</strong><br />

mesaje acceptate m1, ..., mn. Presupunând ca putem caracteriza un tip prin intermediul<br />

unei multimi <strong>de</strong> secvente <strong>de</strong> mesaje {u1,...,uk}, fiecare instanta apartinând acestui tip<br />

are proprietatea ca cel putin fiecare ui reprezinta o secventa valida a instantei. Daca ?<br />

? ? atunci fiecare instanta a lui ? este <strong>de</strong> asemenea un element al lui ?, <strong>si</strong> <strong>de</strong> aceea<br />

este capabil sa accepte multimea <strong>de</strong> secvente <strong>de</strong> mesaje proprie lui ?. Prin urmare,<br />

68

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

Saved successfully!

Ooh no, something went wrong!