Algoritmi Paraleli și Distribuiți
45 Questions
0 Views

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

    Description

    Acest quiz explorează conceptele și aplicațiile algoritmilor utilizați în procesele paralele și distribuite. Se analizează sincronia între procese și variabilele partajate, inclusiv tehnici precum mutex-uri și semafoare. De asemenea, sunt discutate probleme clasice precum producători-consumatori și problema filozofilor.

    More Like This

    Use Quizgecko on...
    Browser
    Browser