Algoritmi Paraleli și Distribuiți - Sincronizare
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

În modelul cu un singur buffer, care operație este executată de producător înainte de a adăuga un item în buffer?

  • P(plin)
  • V(plin)
  • P(gol) (correct)
  • V(gol)
  • În modelul cu un singur buffer, ce acțiune inițiază consumatorul înainte de a prelua un item din buffer?

  • P(plin) (correct)
  • P(gol)
  • V(gol)
  • V(plin)
  • În contextul unui buffer limitat, ce variabilă determină dacă un producător poate adăuga un nou item în buffer?

  • plin
  • prim
  • ultim
  • gol (correct)
  • În modelul cu buffer limitat, ce rol are variabila prim în procesul consumatorului?

    <p>Indică indexul următorului item de consumat (C)</p> Signup and view all the answers

    În modelul cu buffer limitat, ce operație modifică variabila ultim după ce un producător inserează un item in buffer?

    <p><code>ultim = ultim mod k + 1</code> (D)</p> Signup and view all the answers

    În problema cititorilor și scriitorilor, ce rol are semaforul e?

    <p>Semaforul <code>e</code> este folosit pentru a controla accesul la resursa comună, permițând doar un singur cititor sau scriitor să o acceseze simultan. (C)</p> Signup and view all the answers

    În ce condiții un cititor blochează accesul la resursa comună în algoritmul dat?

    <p>Un cititor blochează accesul doar dacă există un scriitor care așteaptă (<code>nw &gt; 0</code>) sau un cititor care a cerut acces și stă la coadă (<code>dr &gt; 0</code>). (C)</p> Signup and view all the answers

    Ce se întâmplă dacă un scriitor găsește cititori activi (nr > 0) când încearcă să acceseze resursa comună?

    <p>Scriitorul va fi blocat până când toți cititorii termină de citit, fiind adăugat în coada de așteptare a semaforului <code>w</code>. (A)</p> Signup and view all the answers

    În problema bărbierului, ce se întâmplă dacă toți clienții sunt plecați?

    <p>Bărbierul se pune la somn până când sosește un client. (B)</p> Signup and view all the answers

    Ce se întâmplă cu un client care sosește la frizerie dacă toate scaunele de așteptare sunt ocupate?

    <p>Clientul pleacă din frizerie fără a mai fi servit. (B)</p> Signup and view all the answers

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

    <p>Indică numărul de poziții goale din buffer. (B)</p> Signup and view all the answers

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

    <p>Coordonarea accesului la resursele partajate pentru a preveni condițiile de cursă și inconsistentele de date. (B)</p> Signup and view all the answers

    Ce condiție trebuie îndeplinită pentru ca un cititor să acceseze resursa comună în problema cititori-scriitori?

    <p>Să nu existe niciun scriitor care scrie în acel moment. (C)</p> Signup and view all the answers

    În problema cititorilor și scriitorilor, ce rol are semaforul rw în codul prezentat?

    <p>Asigură excluderea mutuală între cititori și scriitori, permițând unui singur proces să acceseze resursa la un moment dat. (A)</p> Signup and view all the answers

    Care dintre următoarele nu este un mecanism tipic de sincronizare în algoritmi paraleli?

    <p>Întreruperi Hardware (C)</p> Signup and view all the answers

    În contextul secțiunilor critice, ce rol are semaforul mutex inițializat cu 1?

    <p>Să asigure că la un moment dat, doar un singur proces poate intra în secțiunea critică. (C)</p> Signup and view all the answers

    În problema cititorilor și scriitorilor, ce condiție este verificată în secțiunea critică la intrarea cititorilor utilizând variabila nr?

    <p>Dacă numărul de cititori este egal cu 0, permite primului cititor să obțină acces la resursa comună prin reducerea semaforului <code>rw</code>. (A)</p> Signup and view all the answers

    Care este una dintre problemele majore care poate apărea în problema filozofilor la cină dacă se folosesc semafoare simple?

    <p>Blocajul reciproc (deadlock), unde toți filozofii așteaptă bețișoare. (C)</p> Signup and view all the answers

    În problema producător-consumator, ce rol are operația P(plin) pentru consumator?

    <p>Așteaptă până când există cel puțin un element de consumat în buffer. (B)</p> Signup and view all the answers

    Care este scopul operației P(mutex) în contextul unui semafor?

    <p>Scade valoarea semaforului și blochează procesul dacă semaforul este zero. (C)</p> Signup and view all the answers

    Ce reprezintă variabila nr în codul pentru cititori, în problema cititorilor și scriitorilor?

    <p>Numărul de cititori care sunt în prezent în secțiunea critică. (D)</p> Signup and view all the answers

    De ce este importantă folosirea unui mutex în problema producător-consumator?

    <p>Pentru a proteja accesul concurent la variabilele folosite la manevrarea bufferului, cum ar fi <code>prim</code> și <code>ultim</code>. (B)</p> Signup and view all the answers

    Cum este definită atomicitatea operațiilor P și V pe semafoare?

    <p>Aceste operații sunt executate ca o singură unitate indivizibilă, fără a permite interferența altor procese. (D)</p> Signup and view all the answers

    Care este scopul semaforului mutexR în codul implementării problemei cititorilor și scriitorilor?

    <p>Asigură excluderea mutuală la modificarea variabilei <code>nr</code> la intrarea și ieșirea cititorilor din secțiunea critică. (A)</p> Signup and view all the answers

    În contextul sincronizării condiționate din problema cititorilor și scriitorilor, ce reprezintă variabilele dr și dw?

    <p><code>dr</code> reprezintă numărul de cititori care așteaptă să citească sau au citit deja din resursă, iar <code>dw</code> este numărul de scriitori care așteaptă să scrie sau scriu activ. (C)</p> Signup and view all the answers

    Care este scopul principal al semafoarelor f[1:5] în a doua soluție a problemei filozofilor?

    <p>Pentru a preveni blocajul reciproc (deadlock) prin alocarea bețișoarelor în ordine circulară. (B)</p> Signup and view all the answers

    Ce se întâmplă dacă mai multe procese încearcă să execute operația P(mutex) când valoarea semaforului mutex este 0?

    <p>Procesele sunt puse în așteptare (blocat) până când semaforul devine pozitiv. (A)</p> Signup and view all the answers

    În problema cititori-scriitori, ce se întâmplă dacă se elimină protecția P(rw) și V(rw) pentru cititori?

    <p>Un scriitor ar putea scrie în timp ce alți cititori citesc. (C)</p> Signup and view all the answers

    Ce condiție trebuie să respecte invariabil sistemul în implementarea cu sincronizare condiționată folosind semafoarele w, r, și e?

    <p>Cel mult un semafor din <code>e</code>, <code>r</code> și <code>w</code> poate avea valoarea 1 la un moment dat, iar suma lor este <code>0 &lt;= e + r + w &lt;= 1</code>. (C)</p> Signup and view all the answers

    Cum sunt folosite semafoarele pentru a rezolva problema producător-consumator?

    <p>Un semafor este folosit pentru a controla accesul la buffer, altul pentru a semnaliza disponibilitatea datelor. (D)</p> Signup and view all the answers

    Conform problemei filozofilor, care este cauza principală a blocajului reciproc (deadlock)?

    <p>Fiecare filozof deține un bețișor și are nevoie de încă unul. (A)</p> Signup and view all the answers

    În contextul pasării ștafetei prin semafoare, ce se întâmplă atunci când un proces deține ștafeta?

    <p>Procesul intră într-o secțiune critică și poate pasa ștafeta altui proces prin operația V pe unul din cele trei semafoare. (A)</p> Signup and view all the answers

    Ce este o secțiune necritică într-un program concurent?

    <p>O secțiune a codului în care un proces folosește resurse locale și nu are nevoie de acces exclusiv. (A)</p> Signup and view all the answers

    Care este rolul semaforului splitat, format din e, r și w?

    <p>Implementează excluderea mutuală și sincronizarea condiționată, asigurând că doar un singur proces poate accesa resursa, fie ca este cititor sau scriitor. (A)</p> Signup and view all the answers

    Ce reprezintă k în contextul buffer-ului circular din problema producător-consumator?

    <p>Dimensiunea maximă a buffer-ului. (D)</p> Signup and view all the answers

    Care dintre următoarele afirmații descrie cel mai bine problema producător-consumator?

    <p>Unul sau mai multe procese produc date și unul sau mai multe procese consumă datele dintr-un buffer comun. (B)</p> Signup and view all the answers

    În problema cititori-scriitori, de ce este necesară exclusivitatea reciprocă pentru scriitori?

    <p>Pentru a asigura că un singur scriitor poate accesa resursa la un moment dat. (A)</p> Signup and view all the answers

    În problema bărbierului, care este scopul semaforului Clienți?

    <p>Să blocheze bărbierul până când există cel puțin un client care așteaptă. (A)</p> Signup and view all the answers

    Ce reprezintă variabila NumărScauneLibere în contextul problemei bărbierului?

    <p>Numărul de scaune libere disponibile pentru clienți. (A)</p> Signup and view all the answers

    În problema bărbierului, care este rolul semaforului BărbierGata?

    <p>Semnalează că bărbierul a terminat tunsul unui client și este gata pentru următorul. (C)</p> Signup and view all the answers

    Care este scopul semaforului Scaune în problema bărbierului?

    <p>Să asigure accesul exclusiv la variabila <code>NumărScauneLibere</code>. (A)</p> Signup and view all the answers

    În varianta cu mutex a problemei bărbierului, ce se întâmplă dacă emptyChairs este 0 când un client sosește?

    <p>Clientul renunță la serviciile de bărbierit (nu poate intra) și eliberează mutexul <code>Chairs</code>. (A)</p> Signup and view all the answers

    Ce acțiune efectuează bărbierul după ce un client l-a trezit (V(Clienți))?

    <p>Actualizează variabila <code>NumărScauneLibere</code>, apoi semnalează către client că este gata. (D)</p> Signup and view all the answers

    În implementarea cu semafoare, ce face un client imediat înainte de a semnaliza semaforul Clienți (V(Clienți))?

    <p>Actualizează numărul de locuri libere disponibile. (B)</p> Signup and view all the answers

    Care din următoarele probleme clasice de sincronizare NU este menționată în sumar?

    <p>Problema secretarelor (B)</p> Signup and view all the answers

    Flashcards

    Ce este un tampon?

    Un tampon este o zonă de memorie partajată între mai multe procese, cu rolul de a stoca date temporar.

    Ce sunt semaphoarele?

    Semaphorele sunt un instrument de sincronizare folosit pentru a controla accesul la resursele partajate, cum ar fi un tampon.

    Cum funcționează semafoarele 'gol' și 'plin'?

    Semaforul 'gol' indică spațiul disponibil în tampon, iar semaforul 'plin' indică datele disponibile în tampon.

    Ce fac operațiile P() și V()?

    Operația P() decrementează valoarea semaforului, așteptând dacă devine negativă. Operația V() incrementează valoarea semaforului și trezește un proces blocat.

    Signup and view all the flashcards

    Cum funcționează un tampon limitat?

    În cazul unui tampon limitat, un producător poate adăuga date în tampon doar dacă există loc. Un consumator poate prelua date din tampon doar dacă există date disponibile.

    Signup and view all the flashcards

    Ce este sincronizarea?

    Un concept care se referă la sincronizarea accesului la resurse partajate între mai multe procese sau fire de execuție.

    Signup and view all the flashcards

    Ce este excluderea mutuală?

    Se referă la abilitatea unui proces de a accesa exclusiv un set de resurse (de obicei date) în timp ce alte procese trebuie să aștepte.

    Signup and view all the flashcards

    Ce este sincronizarea condiționată?

    Un mecanism de sincronizare care asigură că un proces poate accesa un set de resurse partajate doar dacă o anumită condiție este îndeplinită.

    Signup and view all the flashcards

    Ce este o barieră?

    Un mecanism de sincronizare care permite proceselor sau firelor de execuție să aștepte până când toate procesele au ajuns la un anumit punct în execuția lor.

    Signup and view all the flashcards

    Ce este un semafor?

    Un tip special de variabilă partajată care este manipulat prin două operații atomice, P și V.

    Signup and view all the flashcards

    Ce este o secțiune critică?

    O secțiune de cod din cadrul unui proces care accesează resurse partajate, unde se aplică excluderea mutuală, pentru a preveni erori.

    Signup and view all the flashcards

    Ce este problema producător-consumator?

    O problemă clasică în programarea paralelă care implică un producător și un consumator care partajează un buffer ( o zona de memorie) pentru a comunica.

    Signup and view all the flashcards

    Ce este problema filozofilor?

    O problemă clasică în programarea paralelă care implică un număr de filosofi care mănâncă în jurul unei mese cirulare, fiecare folosind două furculițe.

    Signup and view all the flashcards

    Ce este problema cititori-scriitori?

    O problemă clasică care implică un grup de cititori si un scriitor, toți aceștia încercând să acceseze un set de date partajate.

    Signup and view all the flashcards

    Ce este problema bărbierului?

    O problemă clasică care implică un bărbier, o cameră de așteptare și o mulțime de clienți care se pot bărbierit.

    Signup and view all the flashcards

    Producător (în contextul sincronizării)

    Un proces care produce date și le adaugă la o structură de date partajată (buffer).

    Signup and view all the flashcards

    Consumator (în contextul sincronizării)

    Un proces care consumă date din o structură de date partajată (buffer).

    Signup and view all the flashcards

    Semafor

    O variabilă care controlează accesul la o resursă partajată. Valoarea ei poate fi 0 sau 1, indicând dacă resursa este disponibilă sau nu.

    Signup and view all the flashcards

    P(sem) (Wait pe semafor)

    O operație care decrementează valoarea unui semafor cu 1 și blochează procesul curent dacă valoarea semaforului devine 0.

    Signup and view all the flashcards

    V(sem) (Signal pe semafor)

    O operație care incrementează valoarea unui semafor cu 1 și deblochează un proces blocat pe acel semafor.

    Signup and view all the flashcards

    Deadlock

    O situație în care mai multe procese așteaptă o resursă pe care o dețin altele. De exemplu, mai mulți filozofi așteaptă să obțină două bețișoare pentru a mânca.

    Signup and view all the flashcards

    Problema cititorilor și scriitorilor

    Un algoritm de sincronizare care permite mai multor procese să acceseze o resursă partajată, asigurând că doar un singur proces scrie în resursă la un moment dat.

    Signup and view all the flashcards

    Excludere mutuală

    O condiție care permite un singur proces să acceseze o resursă partajată la un moment dat, asigurând integritatea datelor.

    Signup and view all the flashcards

    Secțiunea critică

    O operație care permite un proces să acceseze o resursă partajată, dar numai dacă nu este deja accesată de alt proces.

    Signup and view all the flashcards

    Problema filozofilor

    O problemă clasică de sincronizare în care mai mulți filozofi încearcă să mănânce, dar au nevoie de două bețișoare pentru a face asta. Fiecare bețișor este deținut de un filozof, ceea ce poate duce la deadlock.

    Signup and view all the flashcards

    Procesul Cititor

    Un proces care citește din resursa comună. Începe prin obținerea unui semafor de excluziune reciprocă (e) și verifică dacă există scriitori sau alți cititori activi. Dacă există, se alătură cozii de așteptare. Altfel, citește din resursa comună, eliberează semaforul și raportează finalizarea citirii.

    Signup and view all the flashcards

    Procesul Scriitor

    Un proces care scrie în resursa comună. Are o logică similară cu cititorul, dar ajustează numărul de scriitori activi (nw) în loc de cititori (nr).

    Signup and view all the flashcards

    Semaforul e

    Un semafor care controlează accesul la resursa comună, asigurând excluziunea reciprocă.

    Signup and view all the flashcards

    Semaforul r

    Un semafor care gestionează blocarea proceselor de citire, permiţând citiri simultane.

    Signup and view all the flashcards

    Semaforul w

    Un semafor care gestionează blocarea proceselor de scriere, permiţând scrieri simultane.

    Signup and view all the flashcards

    Excludere mutuală (pentru scriere)

    Un mecanism ce permite ca un singur proces să scrie în resursa comună la un moment dat. Aceasta se realizează prin apelarea la semafoare pentru controlul accesului la resursa critică.

    Signup and view all the flashcards

    Cititorii în excludere mutuală

    Un proces care citește din resursa comună, permițând accesul simultan la resurse multiple cititori. Se folosește un contor pentru a urmări numărul de cititori. Cititorul primul intră, ultimul iese.

    Signup and view all the flashcards

    Invariant global

    O condiție care garantează că cel puțin un scriitor sau un cititor poate accesa resursa comună.

    Signup and view all the flashcards

    Semafor splitat binar

    O tehnică care combină excluderea mutuală și sincronizarea condițională. Se folosește un set de semafoare pentru a controla accesul la resursa comună.

    Signup and view all the flashcards

    Pasarea ștafetei

    O metodă de a implementa semafoare splitate binare, unde fiecare proces preia „ștafeta” pentru a accesa resursa comună. Semafoarele sunt 0, cu excepția uneia.

    Signup and view all the flashcards

    Contor cititori (nr)

    Variabila numărul de cititori, care este incrementată când un cititor intră în secțiunea critică și decrementată când acesta iese.

    Signup and view all the flashcards

    Cititori si Scriitori Sincronizare conditionata

    Excludere mutuală pentru cititori: numai un singur cititor are acces la secțiunea critică la un moment dat. Sincronizare condiționată: se asigură că, dacă un scriitor cere accesul, cititorilor nu li se va permite să intre în secțiunea critică.

    Signup and view all the flashcards

    Mutex (Mutual Exclusion)

    Un semafor special care este folosit pentru a bloca accesul la o secțiune critică a codului, asigurând accesul simultan doar unui singur proces în acel moment.

    Signup and view all the flashcards

    Problema Bărbierului

    O problemă clasică de sincronizare a proceselor, care implică un bărbier, clienți și un număr limitat de scaune de așteptare. Bărbierul se află într-o stare de așteptare permanentă până când un client intră în salon, iar clientul trebuie să aștepte dacă toate scaunele sunt ocupate.

    Signup and view all the flashcards

    Secțiune critică (Critical Section)

    O secțiune de cod care accesează resurse partajate și care poate duce la comportament neașteptat sau incorect dacă mai multe procese o execută simultan.

    Signup and view all the flashcards

    Problema Producătorilor și Consumatorilor

    Un model de sincronizare a proceselor care descrie două tipuri de procese care interacționează: producătorii, care adaugă elemente într-o structură de date partajată, și consumatorii, care elimină elemente din aceeași structură.

    Signup and view all the flashcards

    MIMD (Multiple Instruction, Multiple Data)

    Un model de calcul în care mai multe procese rulează simultan pe procesoare multiple și comunică între ele.

    Signup and view all the flashcards

    Study Notes

    Algoritmi Paraleli și Distribuiți

    • Tema generală a prezentării este algoritmii paraleli și distribuiți, cu accent pe lucrul cu semafoare.
    • Se discută despre sincronizare, inclusiv excluderea mutuală și sincronizarea condiționată.
    • Sunt prezentate concepte cheie precum mutex-uri, semafoare și regiuni critice.
    • Sunt analizate probleme clasice, cum ar fi producători-consumatori, problema filozofilor, problema cititorilor-scriitorilor și problema bărbierului.

    Sincronizare: Noțiuni Introductive

    • Sincronizarea este esențială în proiectele paralele pentru a controla accesul la resurse partajate.
    • Excluderea mutuală asigură că doar un proces are acces la o resursă la un moment dat.
    • Sincronizarea condiționată gestionează evenimentele secvențiale.

    Dezvoltarea algoritmilor folosind variabile partajate (MIMD)

    • Această metodă folosește variabile partajate pentru a coordona execuția proceselor.
    • Semafoarele sunt folosite pentru excluderea mutuală.
    • Regiunile critice sunt secțiuni de cod care trebuie protejate pentru a evita erorile.
    • Exemplele de probleme demonstrează complexitatea sincronizării în sistemele paralele.

    Secțiuni critice

    • Problema secțiunilor critice implică excluderea mutuală a proceselor care accesează o resursă partajată.
    • Semafoarele sunt esențiale pentru a asigura excluderea mutuală.
    • Un semafor este o variabilă care poate fi accesată de mai multe procese, folosită pentru sincronizarea proceselor.
    • Operațiile atomice P și V sunt cele mai utilizate operații pentru semafoare (P pentru a aștepta, V pentru a elibera).

    Problema producătorilor și consumatorilor

    • Această problemă descrie comunicarea între procese printr-un buffer partajat.
    • Producătorii adaugă date în buffer, în timp ce consumatorii le extrag.
    • Sincronizarea este necesară pentru a evita situațiile în care producătorii încearcă să scrie în buffer plin sau consumatorii încearcă să citească din buffer gol.

    Problema filozofilor

    • Cinci filozofi stau în jurul unei mese, fiecare cu o furculiță de fiecare parte.
    • Fiecare filozof trebuie să ia ambele furculițe pentru a mânca.
    • Problema demonstrează cum excluderea mutuală poate duce la impas (deadlock) în situații de sincronizare greșite.

    Problema cititorilor și scriitorilor

    • Această problemă analizează excluderea mutuală atunci când mai multe procese accesează aceeași resursă.
    • O resursă critică trebuie protejată, astfel încât doar un proces să o acceseze la un moment dat.
    • Există mai mulți cititori care pot accesa resursa simultan, dar un singur scriitor la un moment dat.

    Problema bărbierului

    • Aceste probleme ilustrează necesitatea sincronizării corecte în contextul multiproceselor.
    • Este necesară excluderea mutuală pentru a evita situații problematice, care pot duce la erori.
    • Există un bărbier, scaune pentru așteptare și clienți care vor să fie tundeți.

    Comunicarea producător și consumator prin tampon limitat

    • Procesele comunică printr-un buffer cu o capacitate limitată.
    • Semafoare și alte mecanisme de sincronizare sunt folosite pentru a coordona accesul la buffer.

    Mai mulți producători și mai mulți consumatori

    • Mai multe procese produc și mai multe procese consumă datele într-un buffer limitat.
    • Semafoare sunt folosite pentru a gestiona aceste fluxuri simultane.

    Studying That Suits You

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

    Quiz Team

    Related Documents

    Description

    Acest quiz abordează algoritmii paraleli și distribuiți, punând accent pe notiuni esențiale de sincronizare, cum ar fi mutex-urile, semafoarele și problemele clasice precum producători-consumatori. Vei explora excluderea mutuală și sincronizarea condiționată pentru a gestiona accesul la resurse partajate. Testează-ți cunoștințele despre algoritmii cu variabile partajate.

    More Like This

    Use Quizgecko on...
    Browser
    Browser