Sunteți pe pagina 1din 2

Facultatea de Electronică, Telecomunicații și Tehnologia Informației

Departamentul de Electronică Aplicată și Ingineria Informației


Programul de masterat: Electronică și Informatică Aplicată

Numele studentului Dumitru Alexandra-Andreea


Grupa 411-EIA
TEMA DE CASĂ Nr. 6 (5p)
la disciplina Sisteme dedicate (Săptămânile 12-13)

1. Precizați care sunt cele două etape care apar în dezvoltarea algoritmilor paraleli în cazul
aplicațiilor pe sisteme multiprocesor și ce reprezintă fiecare etapă în parte. (3p)

Dezvoltarea aplicațiilor pe sisteme multiprocesor impune definirea unor tehnici de descompunere a


algoritmilor într-o serie de task-uri ce pot fi executate în paralel. Pentru a obține performanțe mai bune
decât în cazul programelor secvențiale, proiectanții trebuie să identifice ce sarcini se pot executa în
același timp și să aleagă un model de implementare care să minimizeze costul comunicației. Cei mai
importanți doi pași în dezvoltarea algoritmilor paraleli sunt partiționarea și maparea.
Partiționarea este procesul de descompunere a programului în task-uri ce pot fi executate în paralel.
Task-urile sunt privite ca unități indivizibile de calcul și pot avea mărimi diferite. Partiționarea poate fi
realizată atât la nivelul datelor, cât și la nivel funcțional.
Partiționarea la nivelul datelor se folosește de obicei în procesarea vectorilor sau matricelor de mari
dimensiuni. Setul de date este împărțit în subseturi, iar asupra fiecărui subset este aplicată aceeași
funcție. Această tehnică are avantajul unei comunicații reduse între task-uri, iar accelerația ce se poate
obține crește direct proporțional cu numărul de elemente de procesare.
Partiționarea la nivel funcțional este folosită în cazurile în care sunt necesare mai multe tipuri de
prelucrări asupra aceluiași set de date de intrare. Această tehnică se folosește în cazurile în care numărul
de elemente de procesare este relativ mic în comparație cu dimensiunea datelor de intrare.
După ce programul a fost împărțit în task-uri, acestea trebuie mapate pe procesoarele disponibile cu
scopul de a fi executate în cel mai scurt timp posibil. Maparea este procesul de atribuire a task-urilor
fiecărui element de procesare în parte. Pentru a ajunge la timpi de execuție mici, costul procesării
paralele trebuie să fie minimizat. Acesta este influențat de două componente: timpul de interacțiune
dintre task-uri şi timpul total în care unele procesoare sunt inactive. Respectând dependența dintre task-
uri, o mapare eficientă trebuie să garanteze că nivelul de activitate și interacțiunile dintre procese sunt
balansate, la fiecare stagiu din execuția unui algoritm paralel.

2. Ce înțelegeți prin modele de calcul în cazul sistemelor dedicate multiprocesor? (1p)

Modelele de calcul sunt o expresie matematică a procesării concurente ce definește mecanismele


de procesare, comunicare, planificare şi sincronizare, fiind esențiale pentru simularea, sinteza si
verificarea aplicațiilor.
Modelele de calcul descriu sistemul ca pe o colecție ierarhică de procese, numite și actori sau task-
uri, ce comunică prin evenimente (numite și token-uri) transportate prin semnale (numite și canale de
comunicație). Într-un model, actorii execută task-uri, iar comunicația cu alți actori se realizează doar prin
canalele cu care sunt conectați direct. În modelele bazate pe actori, o aplicație este descrisă ca un set de
actori sau module care rulează concurent și autonom. Actorii sunt conectați între ei prin canale ce
reprezintă fluxul de date și dependențele dintre ei. Avantajul abordării proiectării folosind modelele
bazate pe actori este de a scoate în evidentă posibilul paralelism al aplicației și de a asigura o strategie
corectă de mapare a actorilor pe elementele de procesare. Aceasta face ca proiectarea aplicațiilor
pentru SDM să fie mai ușoară decât în cazul BSP și API.

3. În câte categorii se împart sistemele de operare în timp real folosite pentru sistemele dedicate
multiprocesor și care sunt acestea? (1p)

Sistemul de operare este componenta software care gestionează partajarea resurselor unei
arhitecturi. El este responsabil pentru inițializarea și gestionarea task-urilor unei aplicații și a
comunicațiilor dintre ele. Acesta oferă servicii pentru planificarea task-urilor, schimbarea contextului de
lucru, sincronizarea și managementul întreruperilor.
Sistemele de operare se împart în două categorii: AMP – multiprocesare asimetrică și SMP –
multiprocesare simetrică.
Într-o configurație AMP, un sistem de operare rulează pe fiecare element de procesare al unui
sistem dedicat multiprocesor. Fiecare combinație procesor/SO este un nod cu propriile drepturi și
funcționalități. Întreg sistemul este format din mai multe astfel de noduri, ce acționează ca un tot unitar
pentru o sarcină stabilită. Mecanismul de interconectare pe care procesoarele îl folosesc pentru a
interacționa este ceea ce unește aceste noduri independente. Acest mecanism poate fi o memorie
partajată, o rețea de interconectare, o magistrală sau un dispozitiv periferic.
Într-o configurație SMP, sistemul de operare controlează toate procesoarele dintr-un sistem dedicat
multiprocesor. Aplicațiile interacționează între ele așa cum o fac și în sistemele cu un singur procesor.
Faptul că într-un sistem sunt mai multe procesoare este un detaliu ascuns utilizatorului de către sistemul
de operare. În acest sens, sistemele de operare SMP abstractizează detaliile arhitecturii hardware.

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