Spójność i replikacja
description
Transcript of Spójność i replikacja
Spójność i replikacja
Wykład 7
Zwielokrotnianie obiektów (1)
Organizacja rozproszonego obiektu zdalnego, dzielonego przez różnych klientów.
Zwielokrotnianie obiektów (2)
a) System rozproszony obiektów świadomych zwielokrotnieniab) System rozproszony odpowiedzialny za zarządzanie kopiami
Zwielokrotnianie obiektów (3)
a) A distributed system for replication-aware distributed objects.b) A distributed system responsible for replica management
Modele spójności nastawione na dane
Ogólna organizacja logicznej pamięci danych, fizycznie rozproszona między różnymi procesami.
Spójność ścisła
Zachowanie 2 procesów działających na tej samej danej.• Pamięć spójna ściśle.• Pamięć, która niespójna ściśle.
„Każde czytanie zmiennej x zwraca wartość = ostatniemu zapisowi x”.
Liniowość i spójność sekwenycjna (1)
a) Pamięć danych spójna sekwencyjne.b) Pamięć danych niespójna sekwencyjne.
“Wynik dowolnego wykonania jest taki sam, jak gdyby operacje (RW) wszystkich procesów na pamięci danych były wykonane w pewnym porządku jedna po drugiej, przy czym operacje każdego procesu
wystąpiły w tym ciągu w kolejności określonej przez jego program”
Liniowość i spójność sekwencyjna (2)
Trzy procesy współbieżne.
Process P1 Process P2 Process P3
x = 1;
print ( y, z);
y = 1;
print (x, z);
z = 1;
print (x, y);
Liniowość i spójność sekwencyjna (3)
4 z 90 dozwolonych ciągów wykonań procesów z poprzedniego slajdu.
x = 1;
print (y, z);
y = 1;
print (x, z);
z = 1;
print (x, y);
Drukuje: 001011
Sygnatura: 001011
(a)
x = 1;
y = 1;
print (x, z);
print (y, z);
z = 1;
print (x, y);
Drukuje: 101011
Sygnatura: 101011
(b)
y = 1;
z = 1;
print (x, y);
print (x, z);
x = 1;
print (y, z);
Drukuje: 010111
Sygnatura:
110101
(c)
y = 1;
x = 1;
z = 1;
print (x, z);
print (y, z);
print (x, y);
Drukuje: 111111
Sygnatura:
111111
(d)
Spójność przyczynowa (1)
„Zapisy potencjalnie powiązane przyczynowo muszą być oglądane przez wszystkie
procesy w takim samym porządki. Zapisy współbieżne mogą być oglądane w różnej
kolejności.”
Spójność przyczynowa (2)
Sekwencja dozwolona w pamięci przyczynowej, zabroniona w pamięci sekwencyjnej.
zapisy współbieżnezapisy przyczynowe
Spójność przyczynowa (3)
a) Naruszenie spójności przyczynowej.b) Poprawna przyczynowo kolejność zdarzeń.
Spójność FIFO (1)
„Zapisy wykonane przez 1 proces, są oglądane przez wszystkie inne procesy w porządku, w którym powstawały. Zapisy pochodzące od różnych procesów mogą być oglądane w różnym porządku.”.
Spójność FIFO (2)
Dozwolony ciąg zdarzeń przy spójności FIFO
Spójność FIFO (3)
Wykonanie instrukcji z punktu widzenia 3 procesów z poprzedniego slajdu. Instrukcje wytłuszczone generują wyniki.
x = 1;
print (y, z);
y = 1;
print(x, z);
z = 1;
print (x, y);
Drukuje: 00
(a)
x = 1;
y = 1;
print(x, z);
print (y, z);
z = 1;
print (x, y);
Drukuje: 10
(b)
y = 1;
print (x, z);
z = 1;
print (x, y);
x = 1;
print (y, z);
Drukuje: 01
(c)
Spójność słaba (1)
3 cechy:• Dostępy do zmiennej synchronizacji są spójne
sekwencyjnie• Działanie na zmiennej synchronizacji jest
zabronione do czasu, aż wszystkie poprzednie zapisy zostaną ukończone
• Na jednostce danych zabrania się wykonywania operacji R/W dopóty, dopóki nie zostaną wykonane wszystkie poprzednie operacje na zmiennych synchronizacji.
Spójność słaba (2)
Fragment programu, w którym niektóre zmienne mogą być przechowywane w rejestrach.
int a, b, c, d, e, x, y; /* zmienne*/int *p, *q; /* wskaźniki*/int f( int *p, int *q); /* prototyp funkcji */
a = x * x; /* a w rejestrze */b = y * y; /* b w rejestrze */c = a*a*a + b*b + a * b; /* używane później */d = a * a * c; /* używane później */p = &a; /* p wskazuje na a */q = &b /* q wskazuje na b */e = f(p, q) /* wywołanie funkcji */
Spójność słaba (3)
a) Ciąg zdarzeń dozwolony w spójności słabej.b) Ciąg zdarzeń niedozwolony w spójności słabej.
Spójność zwalniania (1)
Ciąg zdarzeń dozwolony w spójności zwalniania.
Spójność zwalniania (2)
Warunki:• Przed wykonaniem operacji R/W, proces musi
sfinalizować wszystkie poprzednie nabycia.• Zanim będzie można wykonać zwolnienie, w
procesie należy zakończyć wszystkie operacje RW
• Dostęp do zmiennych synchronizacji wykazują spójność FIFO (nie jest wymagana spójność sekwencyjna).