Você está na página 1de 24

1.

Scopurile i paradigmele de comunicare n perspectiva concurenei;

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 :

5. RMI (Remote Method Invocation): arhitectura i caracteristicile generale;

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

6. .Net Remoting: arhitectura i caracteristicile generale;

Arhitectura - Referina sau reprezentatul obiectului remote n domeniul aplicaiei client


este un obiect ce poarta numele de proxy transparent. Acest proxy permite apelul
metodelor s fie apelate la distan (asupra unui obiect aflat n spaiul altui domeniu).
De fiecare dat apelul ctre o metod va fi convertit ntr-un mesaj iar acest mesaj va
parcurge o serie de pai n funcie de necesitile aplicaiei. Va trece mai nti printr-un
pas de serializare n care formatorul convertete mesajul ntr-un format pentru transport

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;

Nivele (Sistem, Obiect, Operatie).


Mecanisme (Sintactic, Semantic, Meta-semantic)

8. Specificarea concurenei n UML: diagramele de clas;

9. Specificarea concurenei n UML: diagramele structurii compuse;

10. Concurena i diagramele cazurilor de utilizare;

11. Specificarea concurenei n UML: diagramele de secven;

12. Specificarea concurenei n UML: diagramele de stare i activiti;

13. Aspecte critice ale modelrii concurenei utiliznd UML;

14. Deficiene n proiectarea concurenei. Anomalii de motenire.

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.

15. Procese arhitecturale i concurena.


Arhitectura este un proces n cazul n care rezultatul este satisfacia prilor interesate fa de cerinele
arhitecturale. n contextul arhitecturii software-ului, abstractizarea este unul dintre principiile de baz.
Surprinde prin ncapsularea proprietile eseniale ale unui sistem. Un sistem poate fi compus din mai
multe niveluri de abstractizare i multe faze de funcionare, fiecare cu arhitectura software proprie.
Arhitectura poate fi descris n cinci puncte principale de vedere: logic, proces, fizic, de dezvoltare i
scenarii;

16-19. Modele conceptuale pentru concurenta


O arhitectur concurent presupune definirea modelului comportamental specific problemei, iar pentru aceasta este
necesar de identificat semantica interaciunilor i de potrivit mecanismele pentru sincronizare/coordonare

20. Modele matematice in concurenta


Numeroase modele formale au fost studiate pe parcursul ultimilor 20-25 ani.
Semanticele formale definite de acestea pot fi clasificate conform urmtoarelor
dihotomii [1,2]:
Semantici intensionale i extensionale,
Semantici de ntreptrundere (interleaving eng.) i de adevrat
concuren (True concurrency eng.),
Semantci cu timp ramificat (branching time eng.) i cu timp liniar (linear time eng).
Specificnd sistemele ca maini, determinate de stri (i de posibile tranziii ntre ele),
obinem modele intensionale. Aceste modele descriu ce fac sistemele, astfel acestor
semantici li se mai spune operaionale. Modelele extensionale (zise i
comportamentale) se bazeaz pe denotaii, care se focuseaz pe observaii asupra
sistemului. Astfel modelele extensionale se pot descrie lejer n termeni de abloane
comportamentale. Concurena este implicit n modelele cu o adevrat concuren, iar
comportamentul este descris n termeni de dependene cauzale. n modelele
cu ntreptrundere concurena este redus la ntreptrunderea nedeterminist a
aciunilor. Ultima dihotomie separ modelele n modele care descriu concurena n
termeni de mulimi de execuii (pariale) posibile (modele cu timp liniar) i modele n
care se specific ramificrile nedeterministe de execuie (modele cu timp ramificat). [3]
Relaiile formale dintre modelele enunate au fost analizate de mai muli cercettori. Aici
se menioneaz lucrarea [4], n care translarea dintre modele este studiat n termeni ai
teorii categoriilor. Astfel variind caracteristicile eseniale ale dihotomilor sus-menionate
obinem opt modele, mai exact opt clase de modele, prezentate n Figura 1.

Figura 1 Modele matematice pentru concuren


Plasnd modelele din Figura 1 ntr-un spaiu tridimensional relativ celor trei dihotomii
obinem o reprezentare spaial a modelelor matematice pentru concuren Figura 2.
Aceasta ne poate permite facilitarea nelegerii modelelor i relaiilor dintre ele.

Figura 2 Reprezentarea spaial a modelelor matematice pentru concuren

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.

Two phase termination


Prevad pentru oprire ordonat a unui fir sau proces prin stabilirea unui latch.Firului sau
Procesul verific valoarea de blocare n puncte strategice din executarea acestuia.
Exist dou tehnici de baz pentru nchiderea un fir sau un proces. O modalitate este de a imediat
rezilia le.Alt mod este de a ntreba firul sau proces de a rezilia i apoi se ateapt ca aceasta s se
conformeze . Cererea de prima desfoar oricare necesar de curare i apoi de ncheiere.
Diagrama de clase urmtor prezint o clasa care s-ar putea folosi pentru a coordona nchiderea unui
proces:

22. Principiile AOP aplicate la implementarea codului de sincronizare.

a) Enchevtrement du code (code tangling)


L'enchevtrement du code est provoqu quand un module est implment pour traiter
plusieurs proccupations en mme temps. Un dveloppeur a souvent affaire, pendant qu'il
dveloppe un module, des proccupations telles que la logique mtier, la gestion
transactionnelle de la persistance, le logging, la scurit, etc... (Figure). Cela conduit la
prsence simultane d'lments issus de chaque proccupation et il en rsulte en un
enchevtrement du code.

b) parpillement du code (code scattering)


L'parpillement du code survient quand une proccupation est implmente dans plusieurs
modules. Les proccupations transversales sont, par dfinition, disperses travers plusieurs
modules. Par exemple, dans un systme utilisant une base de donnes, le logging est une
proccupation implmente dans tous les modules qui accdent la base (Figure).

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).

23. Clasificarea lui Flynn. Extinderea clasificrii Flynn.


Cea mai cunoscut clasificare a arhitecturilor de calcul este cea propus de Flynn (profesor la Stanford
University) n 1966. Aceast clasificare nu examineaz structura explicit a sistemelor ci urmrete fluxul
de date i de instruciuni prin acestea. Prin flux de instruciuni se nelege secvena de instruciuni
executat de o main sau unitate de execuie; iar prin flux de date se nelege secvena de date apelate
de fluxul de instruciuni.
Dup Flynn arhitecturile de calcul se mpart n urmtoarele patru categorii:
cu un flux de instruciuni i un flux de date (SISD);
cu un flux de instruciuni i mai multe fluxuri de date (SIMD);
cu mai multe fluxuri de instruciuni i un flux de date (MISD);
cu mai multe fluxuri de instruciuni i mai multe fluxuri de date (MIMD).

Extinderea clasificrii lui Flynn


O dat cu evoluia arhitecturilor de calcul clasificarea lui Flynn a ajuns nesatisfctoare deoarece
majoritatea arhitecturilor paralele se ncadreaz n cea de-a patra categorie, cea a arhitecturilor MIMD,
i doar cteva n categoria arhitecturilor SIMD. Astfel c ar fi necesar o mprire mai fin cel puin a
arhitecturilor MIMD i SIMD.
Arhitecturile din categoria SIMD se mai pot mpri n:
sisteme ale cror procesoare opereaz asupra unui singur bit la un moment dat (bit-sliced);

sisteme ce sunt orientate pe cuvinte de bii (word-sliced).


Sistemele de calcul MIMD pot fi n continuare clasificate n funcie de:
modul de comunicare dintre elementele de procesare;
tipul reelei de interconectare;
structura memoriei;
localizarea fizic a elementelor de procesare.
24. Clasificarea Shore.

Se bazeaz pe modul de organizare a calculatorului, n prile sale componente(CPU, ALU, memorie de


comenzi, memorie de date). Exist urmtoarele tipuri de maini:
Maina I este o arhitectur convenional von Neumann, n care procesorul citete din memorie toi
biii unui cuvnt i i prelucreaz n paralel;
Maina II este similar mainii I, cu deosebirea c procesorul citete din memorie i execut numai
trane de bii;
Maina III este o combinaie a mainilor I i II, n care procesorul poate citi din memorie i executa,
att un cuvnt ntreg, ct i trane de bii;
Maina IV este o arhitectur format din mai multe maini de tipul I, care lucreaz n paralel, fr s
poat comunica ntre ele, sub comanda unui singur flux de instruciuni;
Maina V este similar mainii IV, dar procesoarele pot comunica ntre ele;
Maina VI este similar mainii V, dar comand este distribuit i la memorie (exemplu: procesoarele
asociative);

25. Notaia structural Hockney i Jesshope.

C-Computer, E-procesor(ALU) -B-procesor in numere intregi F-procesor in virgula mobile, P-procesor


de orice tip, I-dispozitiv de control.

51 Arhitectura sistolica a firelor:


Arhitectura sistolica a filtrelor FIRPentru ca schema din Fig. 20
sa devina sistolica, ar trebui ca intercalat cu elementele deprocesare sa existe
elemente de interziere (de memorie)

52.Algoritmul Canon de multiplicare paralel a


matricilor.

Você também pode gostar