Algoritmi Paraleli și Distribuiți

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Într-un scenariu cu un singur producător și un singur consumator folosind un tampon simplu, ce rol are variabila gol?

  • Indică dacă **tamponul** este gol și, prin urmare, producătorul nu poate adăuga date.
  • Indică numărul de elemente disponibile în **tampon**.
  • Indică numărul de locuri goale disponibile în **tampon**. (correct)
  • Indică dacă **tamponul** este plin și, prin urmare, consumatorul nu poate prelua date.

Ce se întâmplă dacă producătorul efectuează operația V(plin) în condițiile în care tamponul este deja plin, în contextul comunicării prin tampon limitat?

  • Producătorul va aștepta până când consumatorul eliberează un loc în **tampon**. (correct)
  • Producătorul va bloca operația `V(plin)`.
  • Producătorul va suprascrie prima valoare din **tampon**.
  • Producătorul va crea un nou **tampon** și va continua procesul.

În cazul comunicării prin tampon limitat, ce rol are variabila ultim în procesul Producător?

  • Indică următoarea poziție disponibilă în **tampon** pentru a adăuga un element nou. (correct)
  • Indică numărul total de elemente produse.
  • Indică poziția unde se va prelua următorul element de către consumator.
  • Indică numărul de elemente din **tampon**.

Care este scopul principal al utilizării semafoarelor gol și plin în comunicarea producător-consumator cu tampon limitat?

<p>Pentru a coordona accesul la <strong>tampon</strong>, evitând scrierea simultană în același spațiu și citirea unor date neactualizate. (B)</p> Signup and view all the answers

În contextul implementării unui tampon limitat, la ce se referă k în declarația typeT buf[1:k]?

<p>Capacitatea maximă a <strong>tamponului</strong>, adică numărul de elemente pe care le poate stoca. (B)</p> Signup and view all the answers

În problema cititorilor și scriitorilor, ce funcție îndeplinește semaforul e?

<p>Protejează variabilele comune <code>nr</code>, <code>nw</code>, <code>dr</code> și <code>dw</code>. (B)</p> Signup and view all the answers

Ce se întâmplă dacă un cititor ajunge și găsește nw > 0 or dw > 0 în algoritmul de sincronizare condiționată pentru cititori?

<p>Cititorul incrementale <code>dr</code>, semnalizează <code>e</code>, și se blochează pe semaforul <code>r</code>. (C)</p> Signup and view all the answers

În problema bărbierului, ce se întâmplă dacă un client ajunge la frizerie și toate scaunele de așteptare sunt ocupate?

<p>Clientul pleacă fără a mai aștepta. (D)</p> Signup and view all the answers

În algoritmul scriitorilor, când este semnalizat semaforul w?

<p>Când <code>dw</code> este pozitiv, după ce un scriitor termină de scris și fie dorește să permită accesul altui scriitor, fie existau cititori în așteptare dar nu mai există. (D)</p> Signup and view all the answers

Care este condiția ca un cititor să blocheze un scriitor în sincronizarea condiționată, conform algoritmului dat?

<p>Când <code>nr &gt; 0</code> (există cititori activi), un scriitor care încearcă să scrie va fi blocat. (D)</p> Signup and view all the answers

Care este rolul semaforului rw în codul primului exemplu prezentat?

<p>Împiedică cititorii și scriitorii să acceseze resursa critică în același timp. (D)</p> Signup and view all the answers

Ce reprezintă variabila nr în al doilea exemplu de cod?

<p>Numărul de cititori care se află în secțiunea critică sau așteaptă la intrare. (C)</p> Signup and view all the answers

În al doilea exemplu de cod, ce se întâmplă când nr devine 1?

<p>Primul cititor blochează accesul, prin <code>P(rw)</code>, până când toți cititorii ies din secțiunea critică. (A)</p> Signup and view all the answers

Conform invariantului global definit, ce relație trebuie să respecte variabilele nr și nw?

<p>Doar una dintre <code>nr</code> sau <code>nw</code> poate fi diferită de zero în același timp. (C)</p> Signup and view all the answers

Ce reprezintă dr și dw în contextul sincronizării condiționate?

<p><code>dr</code> este numărul de cititori care așteaptă, <code>dw</code> numărul de scriitori care așteaptă. (C)</p> Signup and view all the answers

Ce reprezintă un semafor splitat (split binary semaphore)?

<p>Un set de semafoare care se completează reciproc, unde maxim unul poate fi activ. (D)</p> Signup and view all the answers

Ce se întâmplă în tehnica pasării ștafetei atunci când un proces deține ștafeta?

<p>Execută instrucțiunile din secțiunea critică și apoi poate pasa ștafeta altui proces. (D)</p> Signup and view all the answers

Care este scopul operațiilor P și V asupra semafoarelor în contextul pasării ștafetei?

<p>P este folosită pentru a prelua ștafeta, iar V pentru a o pasa mai departe. (B)</p> Signup and view all the answers

În problema bărbierului, ce reprezintă semaforul Clienți?

<p>Un semnal către bărbier, indicând un client disponibil. (C)</p> Signup and view all the answers

În problema bărbierului (varianta cu semafoare), ce acțiune realizează P(Scaune)?

<p>Solicită accesul la resursa comună a scaunelor și scade numărul de scaune libere. (C)</p> Signup and view all the answers

Ce rol are variabila NumărScauneLibere în problema bărbierului?

<p>Reprezintă numărul total de scaune disponibile pentru clienți. (C)</p> Signup and view all the answers

În problema bărbierului, cum este gestionată secțiunea critică?

<p>Prin utilizarea semafoarelor <code>Clienți</code> și <code>BărbierGata</code> pentru sincronizare și control acces, iar semaforul <code>Scaune</code> ca mutex. (B)</p> Signup and view all the answers

Ce se întâmplă dacă un client ajunge la frizerie și toate scaunele sunt ocupate (folosind semafoare)?

<p>Clientul așteaptă blocat în <code>P(Scaune)</code> până când se eliberează un scaun. (B)</p> Signup and view all the answers

Ce indică semaforul BărbierGata în problema bărbierului?

<p>Un semnal către client că bărbierul este gata să-l tundă. (A)</p> Signup and view all the answers

Care este scopul buclei while (true) în procesul Bărbier?

<p>Să mențină bărbierul activ, așteptând clienți și oferind servicii. (B)</p> Signup and view all the answers

În contextul problemelor de sincronizare, ce reprezintă problema bărbierului?

<p>Un model pentru interacțiunea între un proces servitor și mai mulți clienți. (B)</p> Signup and view all the answers

În problema producător-consumator, ce rol are variabila gol?

<p>Indică numărul de locuri disponibile în buffer. (D)</p> Signup and view all the answers

Ce se întâmplă dacă mai mulți filozofi încearcă simultan să ia bețișoarele în problema filozofilor, folosind soluția inițială prezentată?

<p>Se va ajunge la un blocaj (deadlock), deoarece fiecare filozof așteaptă eliberarea unui bețișor de către altul. (D)</p> Signup and view all the answers

Cum este rezolvată problema deadlock-ului în problema filozofilor, folosind semafoare?

<p>Prin folosirea unui vector de semafoare, unde fiecare semafor este asociat unui bețișor și modificând modul în care filozoful 5 ia bețișoarele. (D)</p> Signup and view all the answers

În problema cititorilor și scriitorilor, care este rolul semaforului rw?

<p>Asigură exclusivitatea mutuală la accesul resurselor, permițând un singur cititor sau scriitor. (A)</p> Signup and view all the answers

Care este principala problemă a soluției simple cu semaforul rw pentru problema cititorilor și scriitorilor?

<p>Nu permite cititorilor să citească simultan, limitând concurența. (C)</p> Signup and view all the answers

Ce rol are operația P(mutexP) în procesul Producător?

<p>Împiedică alți producători să adauge date în buffer. (C)</p> Signup and view all the answers

În problema filozofilor, ce reprezintă f[i]?

<p>Un semafor asociat fiecărui filozof. (D)</p> Signup and view all the answers

Ce se întâmplă dacă un cititor încearcă să citească în timp ce un scriitor scrie, folosind semaforul rw din exemplul oferit?

<p>Cititorul va fi blocat până când scriitorul termină scrierea (C)</p> Signup and view all the answers

Care este rolul operației V(plin) în procesul Producător?

<p>Semnalează că un nou element a fost depus în buffer și că un consumator poate consuma. (A)</p> Signup and view all the answers

Care este scopul principal al sincronizării în contextul algoritmilor paraleli care folosesc variabile partajate?

<p>Asigurarea accesului exclusiv la resurse partajate și coordonarea proceselor. (D)</p> Signup and view all the answers

Ce operații atomice sunt folosite pentru manipularea semafoarelor, conform descrierii lui Dijkstra?

<p>P (Proberen) și V (Verhogen) (B)</p> Signup and view all the answers

Într-un scenariu cu secțiuni critice, ce rol are operația P(mutex)?

<p>Încearcă să blocheze accesul la secțiunea critică dacă aceasta este ocupată, altfel acordă accesul. (A)</p> Signup and view all the answers

Ce garantează utilizarea unui semafor în implementarea secțiunilor critice?

<p>Excluderea mutuală între procesele care accesează secțiunea critică. (A)</p> Signup and view all the answers

Care este principala problemă abordată de algoritmul producător-consumator?

<p>Controlul accesului la o singură resursă partajată de tip buffer între mai mulți producători și mai mulți consumatori. (C)</p> Signup and view all the answers

Ce se întâmplă cu un proces care efectuează o operație P pe un semafor care are valoarea 0?

<p>Blochează execuția până când semaforul devine pozitiv. (C)</p> Signup and view all the answers

Care este rolul operației V(mutex) într-un context de secțiune critică?

<p>Semnalează că accesul la secțiunea critică a fost eliberat. (D)</p> Signup and view all the answers

Care dintre următoarele NU este un exemplu de problemă clasică de sincronizare folosind semafoare?

<p>Algoritmul de sortare prin interclasare. (A)</p> Signup and view all the answers

Ce se întâmplă cu valoarea unui semafor când este aplicată operația 'V'?

<p>Este incrementată cu 1. (D)</p> Signup and view all the answers

Într-un scenariu cu mai mulți producători și consumatori care utilizează un buffer partajat, ce rol are semaforul în reglarea accesului la buffer?

<p>Garantează că doar un singur producător sau consumator accesează bufferul la un moment dat. (D)</p> Signup and view all the answers

Flashcards

Problema cititorilor și scriitorilor

O problemă clasică în informatică care se concentrează pe sincronizarea accesului la o resursă comună de către mai mulți cititori și scriitori, asigurând consistența datelor.

Sincronizare condiționată pentru cititori și scriitori

O soluție la problema cititorilor și scriitorilor care folosește semafoare pentru a controla accesul la resursa comună, permițând mai multor cititori să acceseze simultan, dar garantând că doar un singur scriitor poate accesa resursa la un moment dat.

Cititor

Un proces care citește date dintr-o resursă comună.

Scriitor

Un proces care scrie date într-o resursă comună.

Signup and view all the flashcards

Resursă comună

O resursă partajată care poate fi accesată de mai mulți cititori și scriitori simultan.

Signup and view all the flashcards

Semnale (sem)

Un mecanism de sincronizare folosit pentru a comunica între procese, asigurând că un proces nu accesează o resursă (de exemplu, un tampon) înainte ca celălalt să o elibereze.

Signup and view all the flashcards

Producător

Un proces care creează date sau informații de utilizat de alte procese, de ex., un generator de numere aleatoare.

Signup and view all the flashcards

Consumator

Un proces care utilizează datele create de alte procese, de ex., un program care analizează numerele aleatoare.

Signup and view all the flashcards

Tampon

O zonă de memorie partajată între producător și consumator, pentru a permite schimbul de date într-un mod sincronizat, utilizând semnale.

Signup and view all the flashcards

Tampon limitat (buf[1:k])

O zonă de memorie partajată între un producător și un consumator, care are o dimensiune fixă ​​(k) și este utilizat pentru a stoca datele partajate.

Signup and view all the flashcards

Semafor

Un mecanism de sincronizare ce controlează accesul la resurse partajate între mai multe procese, garantând accesul exclusiv. Permite operații atomice, unde o secvență de instrucțiuni este executată ca o unitate indivizibilă.

Signup and view all the flashcards

Secțiune critică

O porțiune de cod care accesează resurse partajate și trebuie executată atomic pentru a preveni condițiile de cursă.

Signup and view all the flashcards

Problema bărbierului

O problemă clasică în informatică care ilustrează dificultatea de a sincroniza procesele care accesează resurse partajate. Implică un bărbier, un scaun specific pentru bărbierit și clienți.

Signup and view all the flashcards

Bărbier

Procesul care execută serviciul de bărbierit. Așteaptă clienți și execută procedurile de bărbierit.

Signup and view all the flashcards

Clienți

Procesele care solicită serviciul de bărbierit. Așteaptă disponibilitatea scaunelor, apoi semnalează prezența lor.

Signup and view all the flashcards

Scaun

Un scaun specific pentru bărbierit, disponibil doar pentru un singur client la un moment dat.

Signup and view all the flashcards

NumărScauneLibere

Numărul de scaune disponibile pentru clienți.

Signup and view all the flashcards

BărbierGata

O variabilă partajată care indică dacă bărbierul este gata să servească un client.

Signup and view all the flashcards

Excludere mutuală

Un proces poate accesa o resursă critică doar dacă nu este deja accesată de alt proces. Această regulă asigură un acces controlat și împiedică două procese să folosească resursele simultan, evitând astfel conflictele și incorectitudinile.

Signup and view all the flashcards

Problema scriitorilor și cititorilor

Un proces scriitor poate scrie într-o resursă critică doar dacă nu este citită de niciun cititor. Cititorii pot citi simultan, dar scriitorii interzic accesul altor procese.

Signup and view all the flashcards

Sincronizare prin semafoare

Asigură sincronizarea evenimentelor în procese, folosind semnale pentru a comunica și coordona. Fiecare proces poate solicita accesul la o resursă printr-o operație P, blocând procesul până când resursa este liberă. Eliberarea resursei se face cu operația V.

Signup and view all the flashcards

Split Binary Semaphore

Un semafor binar este împărțit în mai multe semafoare care gestionează accesul la o resursă. Fiecare semafor este 0 sau 1, iar doar unul poate fi 1 la un moment dat. Permite excludere mutuală și sincronizare.

Signup and view all the flashcards

Pasarea ștafetei

Inițial, un proces preia controlul asupra resursei printr-o operație P. Apoi poate pasa controlul altui proces prin V. Această metodă permite controlul și accesul ordonat la resurse.

Signup and view all the flashcards

Invariant global

O condiție care trebuie îndeplinită pentru a garanta interoperabilitatea și corectitudinea operatiilor cu resurse critice. Se folosește pentru a preveni condițiile de blocaj și pentru a asigura ordonarea corectă a operațiilor.

Signup and view all the flashcards

Buffer

O structură de date partajată, utilizată pentru a stoca elemente temporar într-un sistem cu producători și consumatori.

Signup and view all the flashcards

Deadlock

O situație în care două sau mai multe procese sunt blocate, așteptând în mod permanent ca un eveniment să aibă loc.

Signup and view all the flashcards

Problema filozofilor

Un model de sincronizare a proceselor care poate provoca deadlock-uri atunci când mai multe procese încearcă să acceseze resurse partajate în mod simultan.

Signup and view all the flashcards

Problema cititorilor-scriitorilor

Un model de sincronizare a proceselor care permite accesul simultan al mai multor cititori la o resursă partajată, dar permite un singur scriitor la un moment dat.

Signup and view all the flashcards

Stare de așteptare

Un proces care așteaptă într-o stare blocată, incapabil să progreseze, până când un alt proces eliberează o anumită resursă.

Signup and view all the flashcards

Stare de așteptare neblocată

Un proces care poate progresa fără a fi blocat de alte procese.

Signup and view all the flashcards

Ce este un semafor?

O variabilă partajată care este manipulată prin operații atomice P și V, pentru a asigura excluderea mutuală între procesele care accesează secțiunea critică.

Signup and view all the flashcards

Ce este o secțiune critică?

O porțiune de cod în care un proces accesează resurse partajate, necesitând o excludere mutuală pentru a evita condiții de cursa.

Signup and view all the flashcards

Ce reprezintă operațiile P și V?

Operația P scade valoarea semaforului cu 1, așteptând dacă valoarea rezultată este negativă. Operația V incrementează valoarea semaforului cu 1, trezind un proces blocat dacă valoarea era negativă.

Signup and view all the flashcards

Ce este o barieră?

Un mecanism de sincronizare care asigură că un proces nu intră în secțiunea critică până când toate celelalte procese nu au terminat o anumită etapă.

Signup and view all the flashcards

Ce este un mutex?

Un mecanism de excludere mutuală care permite doar un proces să intre în secțiunea critică la un moment dat, prevenind condiții de cursa.

Signup and view all the flashcards

Descrie problema producătorilor-consumatori.

O problemă clasică de sincronizare care implică un set de producători și consumatori care comunică prin intermediul unui buffer partajat.

Signup and view all the flashcards

Care este problema filozofilor?

O problemă clasică care implică un număr de filozofi care mănâncă și se gândesc, unde mai multe resurse (furculițe) sunt necesare pentru accesul simultan.

Signup and view all the flashcards

Ce este problema cititorilor-scriitorilor?

O problemă care implică cititori și scriitori care accesează un fișier. Cititorii pot citi simultan, dar un scriitor trebuie să aibă acces exclusiv.

Signup and view all the flashcards

Descrie problema bărbierului.

O problemă clasică de sincronizare care implică un bărbier care doarme, clienți care așteaptă servicii și un scaun pentru așteptare.

Signup and view all the flashcards

Ce este un sistem MIMD?

Un program care utilizează resurse partajate de mai multe procese, necesitând un mecanism de sincronizare pentru a preveni condiții de cursa.

Signup and view all the flashcards

Study Notes

Dezvoltarea algoritmilor folosind variabile partajate (MIMD)

  • Sincronizarea implică excluderea mutuală și sincronizarea condiționată.
  • Se evidențiază mutex-uri, semafoare (regiuni critice) si bariere.
  • Sunt prezentate probleme precum producători-consumatori, problema filozofilor, cititori-scriitori și problema bărbierului.

Secțiuni critice

  • Fiecare proces P(i) execută ciclic o secțiune critică, unde accesează resurse partajate, urmată de o secțiune necritică, folosind resurse locale.
  • Semafoarele garantează excluderea mutuală între procesele care accesează secțiunea critică. Sunt un tip special de variabile partajate manipulate prin operații atomice P si V.

Zona Critică

  • Doar un fir de execuție (thread) poate fi în zona critică la un moment dat.
  • Se folosesc operații atomice (P și V) pentru a gestiona accesul la zona critică.

Producător-consumator

  • Se analizează problema comunicării între M producători și N consumatori printr-un singur buffer partajat.

    Resursele partajate:

    • buf: este buffer-ul (zona de memorie partajată) unde producătorii scriu și consumatorii citesc. Are un singur element în această variantă simplă.
    • sem gol și sem plin: sunt semafoare binare folosite pentru sincronizare.
      • gol inițializat la 1: indică faptul că buffer-ul este gol și un producător poate scrie.
      • plin inițializat la 0: indică faptul că buffer-ul este plin și un consumator poate citi.
    • Procesul Producător:
      • Producătorii rulează într-un buclă infinită (while(true)).
      • v = produce();: Producătorul generează o valoare.
      • P(gol);: Așteaptă ca buffer-ul să fie gol (semaforul gol trebuie să fie 1). Dacă este ocupat, producătorul așteaptă.
      • buf = v;: Producătorul scrie valoarea generată în buffer.
      • V(plin);: Semnalizează că buffer-ul este acum plin, astfel încât un consumator poate consuma.
    • Procesul Consumator:
      • Consumatorii rulează într-un buclă infinită (while(true)).
      • P(plin);: Așteaptă ca buffer-ul să fie plin (semaforul plin trebuie să fie 1). Dacă este gol, consumatorul așteaptă.
      • w = buf;: Consumatorul preia valoarea din buffer.
      • V(gol);: Semnalizează că buffer-ul este acum gol, astfel încât un producător poate scrie.
      • consumă(w);: Consumatorul procesează valoarea preluată.
    • Sincronizarea:
      • gol controlează accesul producătorilor, permițându-le să scrie doar când buffer-ul este gol.
      • plin controlează accesul consumatorilor, permițându-le să citească doar când buffer-ul este plin.
    • Pentru mai multi producatori si mai multi consumatori se adauga mutexP si mutexC

Problema filozofilor

  • Se analizează o problemă clasică în care mai mulți filozofi se simt la o masă, împărtășind bețișoare.
  • Problema are potențialul de a crea blocaje (deadlock).
  • Din cauza modului in care sunt gestionate bețișoarele.

Problema cititorilor și scriitorilor

  • Un număr variabil de cititori pot accesa simultan o resursă comună, dar un singur scriitor poate accesa resursa comună în orice moment.
  • Gestionarea accesului la resursa comună împiedică cititoarele să interfereze între ele.

Problema bărbierului

  • O frizerie este reprezentată ca o problemă care include un bărbier, niște clienți și scaune.
  • Când nu există clienți, bărbierul doarme.
  • Un client trezește bărbierul dacă există scaune disponibile, iar un client așteaptă dacă scaunele sunt ocupate.

Rezumat

  • Se detaliază concepte de algoritmi paraleli și distribuiți, sincronizare, semafoare, secțiuni critice și probleme adiacente.
  • Sunt prezentate și exemple de abordare și rezolvare pentru sincronizarea proceselor și gestionarea resurselor partajate.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

Use Quizgecko on...
Browser
Browser