Sunteți pe pagina 1din 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.

S-ar putea să vă placă și