Escolar Documentos
Profissional Documentos
Cultura Documentos
Scopurile IPC (Transfer de date, Partajare de date, Avizul evenimentelor, Controlul procesului)
Paradigme de comunicare (Memorie comuna, Transfer de mesaje, Invocare la distanta)
Transmisii bazate pe mesaje (send by copy/ send by reference, fixed size/variable size messages,
direct/indirect, symmetric/asymmetric, synchronous/asynchronous, automatic/explicit buffering).
Comunicare directa procesele comunica direct intre ele.
Comunicare indirecta mesajele sunt transmise si primite printr-un intermediar (mailbox, canal).
Sincronizare transmitere (Blocking send, Nonblocking send, Blocking receive, Nonblocking receive).
Buffering (Zero capacity, bounded capacity, unbounded, automatic buffering, explicit buffering).
Invocarea la distanta ascunde comunicatiile intre procese sub forma apelurilor obisnuite de procedure.
2. Mecanisme de comunicare (file mapping, sockets, pipes, message queue, rpc/rmi,
wcf, etc.): prezentare general;
Fiecare proces opereaz n propriul su spaiu de adrese virtuale, iar de evitarea interferenelor dintre
procese se ocup sistemul de operare. Implicit un proces nu poate comunica cu un alt proces numai
dac face uz de diverse mecanisme de comunicare gestionate de kernel(nucleul sistemului de operare).
Exist totui diverse situaii n care procesele trebuie s coopereze, s mpart resurse comune sau s i
sincronizeze aciunile. Exist mai multe metode de comunicare ntre procese:
fiiere este cel mai simplu mecanism de comunicare interproces. Un proces scrie ntr-un
fiier iar cellat proces citete din fiier.
semnale sunt utilizate pentru a semnala asincron evenimente ntre procese
pipes un pipe conecteaz ieirea standard a unui proces cu intrarea standard a altuia.
cozi de mesaje este o list legat de spaiul de adresare a kernel-ului
semafoare sunt contoare utilizate pentru a gestiona accesul la resursele utilizat n comun
de mai multe procese Cel mai des sunt folosite ca i mecanism de blocare a unei resurse
pentru a preveni accesul simultan a mai multor procese la o anumit resurs.
Sockets- permit realiazrea de conexiuni ntre procese locale sau n reea.
3. MPI (Message Passing Interface): caracteristici generale;
Modelul MPI defineste un calcul ca o colectie de procese secventiale ce coopereaza prin transfer de
mesaje.
Caracteristicile MPI :
Semantica interfetei este independenta de limbaj
Permite comunicatie eficienta punct-la-punct si punct-multipunct in medii eterogene
Contine rutine pentru definirea de topologii virtuale de grup.
Ofera simplitate si completitudine (orice algoritm paralel poate fi implementat folosind
biblioteca de functii MPI)
Este compozabil, deoarece permite interactiuni cu compilatoare, depanatoare
Interoperabilitate inter-limbaj
4. MPI (Message Passing Interface): tipuri de comunicare (sincron/blocant/nonblocant).
Operaii de baz;
Operaiile de baz pentru comunicarea punct la punct sunt send i receive. n MPI ele apar ca
extensii necesare ale operaiilor similare din alte biblioteci de comunicare prin mesaje.
Tipuri de comunicare :
Caracteristici :
Permite colaborarea obiectelor aflate n masini virtuale diferite.
Permite unei aplicatii sa apeleze metode ale unui obiect aflat n alt spatiu de
adrese.
Implementeaza solutii (la nivel distribuit) pentru (identificarea obiectelor externe
(remote), trimiterea parametrilor si primirea rezultatelor, tratarea exceptiilor,
gestiunea memoriei)
Portabilitate
Arhitectura RMI :
Separarea conceptelor de comportament si implementare
Caracteristici :
Remoting este procesul de programe sau componente care interacioneaz ntre
anumite limite (de exemplu, procese sau maini).
Infrastructura remoting este o abordare abstract pentru comunicarea
interprocese.
Tehnologia NET Remoting ofer fundamentul pentru aplicaii distribuite.
. NET Remoting nlocuiete DCOM.
7. Nivelele i mecanisme de specificare a concurenei n UML;
n cazul unor sisteme informatice ce includ activiti concurente se acutizeaz efectele de dispersie a
funcionalitilor i a codului confuz. Sincronizarea i comunicarea inerent acestor sisteme face
elaborarea de software dificil implicnd dificulti de reutilizare din cauza unor conflicte dintre codul de
implementare a funcionalitilor de baz i a funcionalitilor de organizare a concurenei
(sincronizare, planificare, protecie, etc.). Se disting trei clase generice pentru anomalii n care conceptul
motenirii ca form de reutilizare este mult diminuat:
Anomalii determinate de istoric (history-sensitive anomaly l. eng.);
Anomalii de partiionare a strilor abstracte (partitioning of states l. eng.);
Anomalii de modificare a strilor abstracte (modification of acceptable states l. eng.).
Anomalia determinat de istoric ne poate oferi un exemplu clasic n care motenirea i pierde din
esena sa pentru reutilizare, cci n clasa derivat sunt introduse noi operaii care impune cerine noi de
sincronizare, ce pot fora redefinirea celorlalte operaii [4].
Pentru descrierea anomaliei de partiionare a strilor abstracte este nevoie s definim comportamentul unui
obiect BoundedBuffer prin trei stri abstracte posibile: empty, partial i full. Astfel dac starea obiectului
devine empty se inhib apelul metodei get(). n mod firesc, nu poate fi apelat metoda put(), dac starea
obiectului este full.
Anomalia de modificare a strilor abstracte este determinat de faptul c adugarea unei noi operaii poate
fora modificarea altor operaii, ce nu ar fi fost necesar, dac noua operaie nu ar fi.
Pentru investigarea fenomenului discutat ce apare la reutilizarea codului n contextul concurenei n
lucrarea [2] s-a recurs la formalizarea anomaliilor. Rezultatele analizei formale prezentate n lucrare a
surprins puin comunitatea tiinific. Uor se remarc urmtoarele enunuri care ies n eviden dintrun coninut mai larg al cercetrii:
Noiunea de tip al unei clase n mod firesc trebuie s cuprind i toate versiunile comportamentale
concurente ale aceleiai clase, meninndu-le separate, n scopul reutilizrii ulterioare (acest fapt este
oarecum aproape de cercetrile Barbarei Liskov referitoare subtipizrii comportamentale *8+);
Anomaliile de motenire sunt comune i altor paradigme dect programrii obiect-orientate: de exemplu
programrii orientate pe ageni (fundamentat pe modelul Actor *9,10,11+);
Anomalia fiind prezent n implementare, nu n mod obligatoriu, cauzeaz probleme practice (n mod cert
putem identifica anomalii i ntr-un context secvenial al programrii obiect-orientate);
Problema anomaliilor de motenire ntr-o form sau alta nc nu poate fi rezolvat, ci mai degrab
diminuate efectele nefaste induse de anomalii.
21. abloane primare concurente: Single Threaded Execution, Guarded Suspension, Balking,
Scheduler, Read/Write Lock, Producer-Consumer, Two-Phase Termination.
Single thread execution[Grand98]
sinopsis
Unele date metode de acces sau alte resurse ntr-un mod care produce rezultate incorecte n cazul n
care exista apeluri simultane la o metod i ambele solicit acces la date sau alte resurse n acelai timp.
Single thread execution rezolv aceast problem prin prevenirea apeluri simultane a metodei de la
care rezult n execuii concurente ale metodei.
context
S presupunem c suntei scris software-ul pentru un sistem care monitorizeaz fluxul de trafic pe o
autostrad important.
Senzorii din drum monitoriza numrul de maini care trece pe minut n locaii strategice pe autostrada.
senzori trimite informaii ctre un calculator central care controleaz semne electronice situate n
apropierea noduri.
semne afia mesaje conductorilor auto, sftuindu-i de condiiile de trafic, astfel nct acestea s poat
selecta rutele alternative.
La locurile din drum n cazul n care senzorii msoar fluxul de maini, exist un senzor pentru fiecare
band de circulaie.
Senzorul de la fiecare culoar este conectat la un controller care totalizeaz numrul de maini care trec
acel loc n fiecare rutiere
minute.Regulatorul este ataat la un emitor care transmite total a fiecrui minut de la calculatorul
central.
Mai jos este o diagram de clas, care prezinta aceste relaii.
Guarded suspension
sinopsis
Suspenda executarea unui apel de metoda pana cand o condiie prealabil este ndeplinit.
Context .S presupunem c trebuie s creai o clas care implementeaz o structur de date Queue. O
coada este o premier n prima din structura de date. Obiectele sunt eliminate dintr-o coad, n aceeai
ordine n care sunt adugate.Clasa de jos diagram arat o clas coad.
Balking sheduler
sinopsis
n cazul n care una dintre metodele unui obiect se numete atunci cnd obiectul nu este ntr-o stare
corespunztoare pentru a executa acel metoda, au retur metoda, fr a face nimic.
S presupunem c suntei scris un program de a controla un spltor toalet electronic. Astfel de
dispozitive sunt destinate pentru utilizarea n bi publice. Ei au un senzor de lumina montat pe partea
din fa a spltor. Cnd senzorul de lumin detecteaz o cretere a nivelului de lumin, se presupune
c o persoan a prsit toalet i declaneaz o culoare. Electronic spltor de toalet au, de asemenea,
un buton de pe ele, care poate fi utilizat pentru a declana manual o culoare. Mai jos este o diagram
de clas artnd clase pentru a modela acest comportament.
Read/Write Lock
Permitei accesul concurent la citit un obiect, dar au nevoie de acces exclusiv pentru operaiunile de
scriere.
Citeste / Scrie model Lock organizeaz o clas, astfel nct apeluri simultane la metode care aduce i
stoca su Informaii exemplu, sunt coordonate de ctre o instan de o alta clasa.Diagrama de clase
urmtor prezint rolurile faptul c clasele juca n modelul de blocare citire / scriere.
Producer-Consumer
Coordoneaz producia i consumul asincron de informaii sau obiecte.
Mthodologie de l'AOP
Etapes de
dveloppement dans une mthodologie AOP
Dcomposition aspectuelle : Les besoins sont ici dcomposs pour identifier les proccupations
fonctionnelles et transversales. Par exemple, un dveloppeur pourra identifier les
proccupations suivantes : logique mtier, logging, cache, gestion transactionnelle de la
persistance, authentification, etc. Ensuite, il pourra dcider que seule la logique mtier est une
proccupation fonctionnelle. Toutes les autres proccupations sont des proccupations
transversales au systme et qui vont tre utilises par plusieurs modules.
Implmentation des proccupations : Chaque proccupation est implmente
indpendamment des autres. Comme pour l'exemple du paragraphe prcdent, le dveloppeur
aura implmenter la logique mtier, le logging, le cache, la gestion transactionnelle de la
persistance, l'authentification, etc.
Recomposition aspectuelle : Des rgles de recompositions sont spcifies en crant des units
appeles aspects. Le processus de recomposition, aussi connu sous le nom de tissage ou
d'intgration, utilise ces informations pour composer le systme final. Comme pour l'exemple
prcdent, le dveloppeur peut crer une rgle qui s'assure que chaque opration effectue par
la logique mtier doit d'abord tre mise en journal (logge).