Algoritmi Paralel și Distribuiți: Ceasuri Logice

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

Ce semnifică dC/dt > 1 într-un context de sisteme distribuite?

  • Procesul actualizează frecvent ceasul local, indicând o mare activitate. (correct)
  • Procesul este inactiv.
  • Procesul are nevoie de resurse suplimentare.
  • Procesul execută operații mai rapid decât timpul real.

În implementarea semafoarelor distribuite, care este rolul proceselor Ajutor(i)?

  • Implementează operațiile P și V. (correct)
  • Gestionează ordinea mesajelor transmise prin canalul `opsem`.
  • Mentine ceasul local al procesului `Utiliz(i)`.
  • Inițializează operațiile P și V.

Care este scopul canalului start[1:n](int timp) în acest model de semafoare distribuite?

  • Sincronizarea tuturor proceselor, folosind un ceas comun.
  • Transmiterea valorilor de timp către `Utiliz[i]` pentru actualizarea ceasului local. (correct)
  • Primirea de mesaje ordonate în funcție de prefixul stabil.
  • Transmiterea operațiilor de tip P sau V.

Ce reprezintă variabila cl în procesul Utiliz[i]?

<p>Un contor logic de timp, utilizat pentru a marca ordine evenimentelor. (D)</p> Signup and view all the answers

De ce procesele Utiliz(i) folosesc broadcast opsem(i, V, cl) și broadcast opsem(i, P, cl)?

<p>Pentru a comunica operațiile de tip V și P către toate procesele <code>Ajutor(i)</code>. (A)</p> Signup and view all the answers

Într-un sistem distribuit, de ce este timpul ambiguu, comparativ cu un sistem ne-distribuit?

<p>Sistemele distribuite au mai multe ceasuri care nu sunt perfect sincronizate. (D)</p> Signup and view all the answers

Ce cauzează 'clock skew' între computere într-un sistem distribuit?

<p>Frecvențele de oscilație ușor diferite ale cristalelor de cuarț folosite în ceasurile fizice. (B)</p> Signup and view all the answers

Care este una dintre problemele practice cauzate de 'clock skew' într-un sistem distribuit, conform exemplului prezentat?

<p>Inconsistențe în stabilirea ordinii evenimentelor, cum ar fi compilarea fișierelor. (B)</p> Signup and view all the answers

Din informațiile menționate, care este o limitare fundamentală a ceasurilor fizice în sistemele distribuite?

<p>Este imposibil să se elimine complet clock skew-ul și să se asigure o acuratețe perfectă. (B)</p> Signup and view all the answers

Ce rol are cristalul de cuarț în ceasurile fizice ale calculatoarelor?

<p>Generează un semnal electric cu o frecvență fixă, folosit pentru a genera întreruperi (clock ticks). (D)</p> Signup and view all the answers

În algoritmul semafoarelor distribuite, ce reprezintă variabila cl?

<p>Un contor logic, specific procesului, care este incrementat la fiecare eveniment. (A)</p> Signup and view all the answers

Ce se întâmplă când un proces primește un mesaj de tip ack în algoritmul de semafoare distribuite?

<p>Se înregistrează confirmarea, apoi se eliberează operațiile <code>V</code> complet confirmate și operațiile <code>P</code> se execută dacă semaforul este disponibil. (C)</p> Signup and view all the answers

Care este scopul structurii qelem în algoritmul de semafoare distribuite?

<p>Stochează mesajele <code>opsem</code> în ordine pentru a le procesa în mod corespunzător. (A)</p> Signup and view all the answers

Cum este inițializată variabila sem în cadrul algoritmului de semafoare distribuite?

<p>Cu o <code>valoare_initială</code> care depinde de contextul de utilizare a semaforului. (B)</p> Signup and view all the answers

Ce este un ceas logic vectorial?

<p>Un tablou care înregistrează numărul de evenimente produse local și cunoscute despre celelalte procese. (B)</p> Signup and view all the answers

În cazul ceasurilor logice vectoriale, ce semnificație are $V_i[j]$?

<p>Numărul de evenimente produse în procesul $P_j$ și cunoscute de procesul $P_i$. (C)</p> Signup and view all the answers

Ce ne indică relația amprenta_logică (e) < amprenta_logică (f) în contextul ceasurilor logice Lamport?

<p>Nu putem trage o concluzie sigură despre o relație temporală, având în vedere limitările ceasurilor Lamport. (C)</p> Signup and view all the answers

În exemplul dat, având procesele $P1, P2$ și $P3$, care este una dintre diferențele fundamentale dintre ceasurile logice Lamport și ceasurile logice vectoriale?

<p>Ceasurile vectoriale pot detecta corect relații de precedență care nu sunt detectate de ceasurile Lamport. (C)</p> Signup and view all the answers

Ce se întâmplă cu vectorul de timp al unui proces 𝑃𝑠 când acesta transmite un mesaj m?

<p>Vectorul de timp 𝑉𝑠[𝑠] este incrementat. (B)</p> Signup and view all the answers

Care este scopul vectorului de amprente de timp 𝑣𝑡𝑚 atașat unui mesaj m?

<p>Să indice receptorului care evenimente au precedat mesajul m și ar putea să-l influențeze cauzal. (A)</p> Signup and view all the answers

Când un proces 𝑃𝑑 primește un mesaj m, sub ce condiții este acesta livrat imediat (fără întârziere)?

<p>Dacă 𝑣𝑡𝑚[𝑠] = 𝑉𝑑[𝑠] + 1 și 𝑣𝑡𝑚[𝑘] ≤ 𝑉𝑑[𝑘] pentru orice k ≠ s. (D)</p> Signup and view all the answers

Ce se întâmplă cu vectorul de timp 𝑉𝑑 atunci când un mesaj m este livrat procesului 𝑃𝑑?

<p>Valorile din 𝑉𝑑 sunt actualizate, luând maximul dintre valorile curente și cele din 𝑣𝑡𝑚, pentru fiecare k. (B)</p> Signup and view all the answers

Într-un scenariu unde 𝑣𝑡𝑚[𝑘] > 𝑉𝑑[𝑘] pentru un anumit proces k, ce acțiune se întreprinde asupra mesajului m?

<p>Mesajul m este întârziat deoarece procesul 𝑃𝑑 nu a primit toate mesajele necesare. (C)</p> Signup and view all the answers

Ce se întâmplă cu mesajul m dacă 𝑣𝑡𝑚[𝑠] > 𝑉𝑑[𝑠] + 1 ?

<p>Mesajul m este întârziat, deoarece 𝑃𝑑 nu a primit toate mesajele de la 𝑃𝑠. (A)</p> Signup and view all the answers

Ce se întâmplă cu mesajul m dacă 𝑣𝑡𝑚[𝑠] < 𝑉𝑑[𝑠]?

<p>Mesajul m este respins deoarece este un duplicat al unui mesaj primit anterior. (A)</p> Signup and view all the answers

Care este rolul principal al ceasurilor logice vectoriale în contextul ordonării cauzale multicast?

<p>Să urmărească relațiile cauzale dintre evenimente într-un sistem distribuit. (A)</p> Signup and view all the answers

Care dintre următoarele afirmații descrie corect modul în care un proces $P_i$ își actualizează vectorul de timp $V_i$ când trimite un mesaj $m$?

<p>$P_i$ incrementează $V_i[i]$ și adaugă $V_i$ la mesajul $m$ ca vector de amprente de timp curent. (D)</p> Signup and view all the answers

Care este scopul ajustării vectorului de timp $V_j$ la primirea unui mesaj cu vectorul de timp $vtm$ de către procesul $P_j$?

<p>Să asigure că $V_j$ reflectă cel mai recent timp cunoscut pentru fiecare proces, folosind maximul dintre valorile curente din $V_j$ și cele din $vtm$. (C)</p> Signup and view all the answers

Ce înseamnă ca doi vectori de timp $VT1$ și $VT2$ să fie egali ($VT1 = VT2$)?

<p>Fiecare element $VT1[i]$ este egal cu elementul corespunzător $VT2[i]$ pentru toți $i$. (D)</p> Signup and view all the answers

În contextul ceasurilor logice vectoriale, ce înseamnă că $VT1 < VT2$?

<p>Pentru fiecare indice $i$, $VT1[i]$ este mai mic sau egal cu $VT2[i]$, și cel puțin o pereche de elemente nu sunt egale. (B)</p> Signup and view all the answers

Dacă $vt(a) < vt(b)$, conform regulilor ceasurilor logice vectoriale, ce relație cauzală există între evenimentele a și b?

<p>Evenimentul a precede cauzal evenimentul b. (C)</p> Signup and view all the answers

Ce înseamnă că două evenimente a și b sunt concurente conform ceasurilor logice vectoriale?

<p>Nici $vt(a) &lt; vt(b)$, nici $vt(b) &lt; vt(a)$, și $vt(a) ≠ vt(b)$. (C)</p> Signup and view all the answers

Cum asigură protocolul de ordonare cauzală multicast respectarea dependenței cauzale între mesaje?

<p>Pentru orice două mesaje $m$ și $m'$, dacă $m$ precede cauzal $m'$, atunci $livrare_p(m)$ precede $livrare_p(m')$ pentru toate procesele $p$. (A)</p> Signup and view all the answers

În contextul protocolului de ordonare cauzală multicast, ce reprezintă $V_i[j]$ pentru un proces $P_i$?

<p>Numărul de evenimente de transmitere de mesaje produse de procesul $P_j$ despre care $P_i$ știe că au avut loc. (D)</p> Signup and view all the answers

Flashcards

Semafor distribuit

Un semafor distribuit gestionează accesul la o resursă partajată într-un sistem distribuit.

Procesele Utiliz

Procesele Utiliz[i] sunt responsabile pentru inițierea operațiilor P sau V pe semaforul distribuit.

Procesele Ajutor

Procesele Ajutor[i] sunt responsabile pentru implementarea operațiilor P și V pe semaforul distribuit.

Chan opsem

Chan opsem[1:n] este un canal de comunicare care permite proceselor Utiliz să trimită operații P și V către procesele Ajutor.

Signup and view all the flashcards

Chan start

Chan start[1:n] este un canal de comunicare care permite proceselor Ajutor să trimită semnale de start către procesele Utiliz.

Signup and view all the flashcards

Ceasurile fizice în sistemele ne-distribuite

Timpul este un concept clar în sistemele ne-distribuite, deoarece există un singur ceas gestionat de sistemul de operare. Sistemul de operare gestionează un ceas fizic intern care incrementează o valoare din memorie, valoarea fiind apoi convertită într-un format standardizat, cum ar fi numărul de milisecunde de la începutul epocii Unix (Jan 1, 1970).

Signup and view all the flashcards

Ceas fizic

Un ceas fizic este o componentă hardware care se bazează pe un cristal de quartz pentru a genera periodic un semnal care indică o unitate de timp. Aceste semnale sunt numite "clock ticks" și sunt utilizate pentru a incrementa o valoare din memorie, reprezentând timpul. Kernelul sistemului de operare transformă această valoare într-un format standardizat, cum ar fi numărul de milisecunde de la începutul epocii Unix.

Signup and view all the flashcards

Clock skew

Diferența de timp dintre două ceasuri fizice din sisteme distribuite, datorată variațiilor de timp ale cristalelor de cuarț, este cunoscută sub numele de "clock skew".

Signup and view all the flashcards

Sincronizarea ceasurilor fizice

Sincronizarea ceasurilor fizice se poate realiza între două calculatoare sau cu un standard extern, cum ar fi UTC (Coordinated Universal Time). Scopul este de a reduce "clock skew", dar nu poate fi eliminat complet.

Signup and view all the flashcards

Ambiguitatea timpului în sistemele distribuite

Sistemele distribuite prezintă o ambiguitate în legătură cu timpul deoarece fiecare nod are propriul său ceas fizic. Această discrepanță în timp poate crea confuzii atunci când se utilizează instrumente care se bazează pe timpul real, cum ar fi sistemul de control al versiunilor "make".

Signup and view all the flashcards

Ceas logic vectorial

Un ceas logic vectorial este o tehnică folosită pentru a ordona evenimentele în sistemele distribuite, asigurându-se o relație totală de ordine între evenimentele din procese diferite.

Signup and view all the flashcards

Ceas logic vectorial - reprezentare

Un ceas logic vectorial este un vector de valori întregi, cu o dimensiune egală cu numărul de procese din sistemul distribuit.

Signup and view all the flashcards

Ceas logic vectorial - interpretare

Fiecare element din vectorul ceasului logic corespunde unui proces din sistem. Valoarea din elementul corespunzător procesului local este numărul de evenimente produse de acel proces, iar celelalte valori reprezintă numărul de evenimente din procesele respective despre care procesul local este informat.

Signup and view all the flashcards

Actualizare ceas logic vectorial

Când un proces 𝑃𝑖 trimite un mesaj către 𝑃𝑗, este atașat ceasul logic 𝑉𝑖. La primirea mesajului, 𝑃𝑗 își actualizează ceasul logic: 𝑉𝑗[𝑗] = 𝑉𝑗[𝑗] + 1 și 𝑉𝑗[𝑖] = max(𝑉𝑗[𝑖], 𝑉𝑖[𝑖])

Signup and view all the flashcards

Relația de ordine cu ceasuri logice vectoriale

Utilizând ceasuri logice vectoriale, se poate demonstra că e precede f dacă și numai dacă 𝑉𝑖[𝑖] < 𝑉𝑗[𝑗] pentru orice 𝑖 (inclusiv 𝑖 = 𝑗), fiind 𝑖 procesul în care are loc evenimentul e și 𝑗 procesul în care are loc evenimentul f.

Signup and view all the flashcards

Beneficiile ceasurilor logice vectoriale

Ceasurile logice vectoriale asigură o relație totală de ordine între evenimentele din sistemele distribuite, comparativ cu ceasurile logice scalare din soluția Lamport, care oferă o relație parțială de ordine.

Signup and view all the flashcards

Aplicații ale ceasurilor logice vectoriale

Ceasurile logice vectoriale sunt utilizate în diverse sisteme distribuite, cum ar fi sistemele de gestionare a tranzacțiilor, sistemele de sincronizare a datelor, și sistemele de mesagerie.

Signup and view all the flashcards

Ce este un vector de amprente de timp?

Vectorul de amprente de timp este un vector cu N componente, unde N este numărul de procese din sistem. Fiecare componentă a vectorului reprezintă numărul de mesaje trimise de procesul respectiv, despre care un proces particular știe că au fost trimise. De exemplu, vt(P1) = (1,2,1,3) înseamnă că procesul P1 a trimis 1 mesaj către el însuși, 2 mesaje către P2, 1 mesaj către P3 și 3 mesaje către P4.

Signup and view all the flashcards

Cum este actualizat vectorul de timp la trimiterea unui mesaj?

Când un proces P trimite un mesaj, el incrementă componenta sa proprie din vectorul de timp, indicând că a trimis un mesaj nou. De asemenea, el adaugă vectorul său de timp actual la mesajul trimis. Aceasta permite proceselor care primesc mesajul să își actualizeze vectorii de timp și să aibă o imagine mai precisă despre numărul de mesaje trimise de fiecare proces.

Signup and view all the flashcards

Cum este actualizat vectorul de timp la primirea unui mesaj?

Când un proces P primește un mesaj, el compară vectorul de timp din mesaj cu vectorul său de timp actual. Pentru fiecare proces din sistem, el ia valoarea maximă dintre componenta corespunzătoare din vectorul mesajului și componenta corespunzătoare din propriul vector de timp. Această operație asigură actualitatea vectorului de timp al procesului care primește mesajul, reflectând numărul total de mesaje trimise de fiecare proces.

Signup and view all the flashcards

Ce înseamnă că evenimentele sunt concurente?

Două evenimente sunt concurente dacă cele două vectori de timp nu pot fi comparate folosind operațiile < și >. Acest lucru înseamnă că evenimentele nu au o ordine cauzală clară, adică nu se poate determina sigur care eveniment a avut loc înaintea celuilalt.

Signup and view all the flashcards

Când doi vectori de timp sunt egali?

Două vectori de timp sunt egali dacă toate componentele lor au aceeași valoare. De exemplu, (1,2,3) = (1,2,3).

Signup and view all the flashcards

Când un vector de timp este mai mic decât altul?

Un vector de timp VT1 este mai mic decât un vector de timp VT2 dacă VT1[i] <= VT2[i] pentru toate componentele i, și VT1 != VT2. De exemplu, (1,2,2) < (1,3,2).

Signup and view all the flashcards

Ce este protocolul vectorilor de timp?

Protocolul vectorilor de timp este o tehnică utilizată pentru a ordona mesajele într-un sistem multicast, asigurând respectarea dependenței cauzale. Fiecare proces menține un vector de timp local care este actualizat la fiecare trimitere sau primire de mesaje. Mesajele sunt trimise împreună cu vectorul de timp al procesului emitent, iar procesele receptoare își actualizează vectorii de timp pentru a asigura o ordonare corecta a mesajelor.

Signup and view all the flashcards

Ordonarea Cauzală: Transmiterea unui Mesaj

Atunci când un proces Ps transmite un mesaj m, Ps incrementează Vs[s] și adaugă Vs la mesaj ca un vector de ștampile de timp curent, vtm. Vs este incrementat doar la transmiterea mesajelor, iar vtm spune receptorului câte evenimente din alte procese au precedat m și ar putea influența cauzal m.

Signup and view all the flashcards

Ordonarea Cauzală: Livrarea unui Mesaj

Când un proces Pd primește un mesaj m cu vectorul de timp vtm, mesajul este păstrat într-o coadă de întârziere și este livrat doar dacă: Vts s = Vd s + 1 și vtm k ≤ Vd k pentru k s.

Signup and view all the flashcards

Ordonarea Cauzală: Actualizarea Vectorului de Timp

După livrarea mesajului, Vd este actualizat conform regulilor vectorilor de timp: Vd k = max Vd k, vtm[k] pentru fiecare k = 1, n.

Signup and view all the flashcards

Ordonarea Cauzală: Întârziere Mesaj

Dacă vtm k > Vd[k] pentru un oarecare k, atunci mesajul m este întârziat. Ps a primit mesaje de care mesajul curent m poate fi cauzal dependent, dar pe care Pd încă nu le-a primit.

Signup and view all the flashcards

Ordonarea Cauzală: Întârziere Mesaj (FIFO)

Dacă vtm s > Vd s + 1, atunci mesajul m este întârziat. Există mesaje de la Ps pe care Pd nu le-a primit încă.

Signup and view all the flashcards

Ordonarea Cauzală: Respingere Mesaj

Dacă vtm s < Vd[s], atunci mesajul m este respins. Mesajul m este un duplicat al unui mesaj primit anterior.

Signup and view all the flashcards

Ordonare Cauzală Multicast

Ordonarea cauzală multicastr este o tehnică de ordonare a mesajelor în sistemele distribuite care asigură că mesajele sunt livrate într-o ordine care respectă relația de cauzalitate dintre ele.

Signup and view all the flashcards

Vectori de Timp

Vectorii de timp sunt utilizați pentru a urmări relația cauzală dintre evenimentele din diferite procese. Vectorul de timp Vs al unui proces Ps reprezintă un vector de n componente, unde n este numărul de procese din sistem. Fiecare componentă Vs[i] reprezintă ultimul eveniment care a fost observat de procesul Ps din procesul Pi.

Signup and view all the flashcards

Study Notes

Algoritmi Paralel și Distribuiți - Ceasuri Logice și Ordonarea Evenimentelor

  • Ceasurile fizice

    • timpul este ne-ambiguu în sistemele ne-distribuite, având un singur ceas central, kernelul face apeluri pentru a-i accesa valoarea
    • în sistemele distribuite apar ambiguități in legatura cu timpul.
  • Utilizarea implicită a ceasurilor fizice în aplicații precum "make" (pentru recompilarea fișierelor).

  • Computerele folosesc cristale de cuarț care generează întreruperi (clock ticks) la intervale regulate.

  • Diferența de timp dintre computere este denumită "clock skew".

  • Sincronizarea ceasurilor fizice se poate face doar între două calculatoare sau folosind un standard, cum ar fi UTC.

  • Eliminarea completă a diferențelor de timp (clock skew) și asigurarea acurateții perfecte a ceasurilor într-un sistem distribuit este imposibilă.

    Metode de sincronizare a ceasurilor fizice:

    • Flaviu Cristian: adaptive internalclocksynchronization - timeserver, cu care se sincronizează celelalte ceasuri

      probleme:

      ▪ timpul nu trebuie sa curgă în sens invers

      ▪ mesajul ajunge de la server la client într-un anumit timp

    • Berkeley: un server de timp trimite mesaje periodic clienților pentru a afla timpul lor, calculează o medie și anunță clienții cum să-și actualizeze ceasurile

    • NTP (Network Time Protocol) - descentralizat

      • Organizare ierarhică a serverelor de timp:
        • Stratul 1: ceasuri de referință
        • Stratul 2: routere, servere importante, etc.
  • Ceasurile logice (soluția Lamport:

    • Într-un algoritm distribuit, fiecare proces este caracterizat de:
      • o mulțime de stări
      • acțiuni care schimbă starea
    • Eveniment(producerea unei acțiuni)
      • Evenimentele pot fi ordonate conform timpului fizic de producere.
      • Dificil pentru evenimente din procese diferite.
  • Ordonarea relativă a evenimentelor este definită prin relația "petrecut înainte".

    Ceasuri logice și ordonarea evenimentelor:

  • Semafoare distribuite:

    • foloseste primitivele P și V
    • procesul difuzeaza mesaje celorlalte procese - broadcast
  • Ceasurile logice vectoriale

    • oferă un vector de amprente de timp pentru a gestiona evenimentele dintr-un sistem distribuit.
    • 𝑉𝑖[𝑖] este numărul de evenimente produse în procesul 𝑃𝑖
    • 𝑉𝑖[𝑗] este numărul de evenimente despre care 𝑃𝑖 ştie (a aflat) că au avut loc la 𝑃𝑗.
  • Ordonarea cauzală multicast:

    • Procesele unei colecţii P comunică între ele doar prin mesaje cu difuzare
    • Se cere ca mesajele să respecte dependenţa cauzală

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