background image

 

Rozproszona pamięć 

Rozproszona pamięć 

współdzielona

współdzielona

(ang. distributed shared 

(ang. distributed shared 

memory)

memory)

 

 

Rozproszone

Rozproszone

systemy operacyjne

systemy operacyjne

background image

 

Ogólna charakterystyka DSM

Ogólna charakterystyka DSM

Cel stosowania DSM

Dostarczenie abstrakcji w postaci wspólnej wirtualnej przestrzeni 

adresowej, potencjalnie dostępnej dla wszystkich węzłów 

systemu rozproszonego.

Zalety:

 wygodny dla programisty paradygmat programowania 

równoległego (nie ma konieczności przekazywania 

komunikatów), 

 skalowalność i łatwość rozbudowy,

 dostępność wirtualnej przestrzeni adresowej obejmującej 

pamięci fizyczne wszystkich węzłów,

 możliwość uruchomienia w środowisku rozproszonym 

programów równoległych zaprojektowanych dla środowisk 

wieloprocesorowych z pamięcią współdzieloną.

background image

 

Obsługa błędu strony w systemie pamięci 

Obsługa błędu strony w systemie pamięci 

wirtualnej

wirtualnej

procesor

adres

logiczny

s      o

s

s — numer strony
r — numer ramki
o — przesunięcie

s — numer strony
r — numer ramki
o — przesunięcie

tablica

stron

n

urządzenie 

wymiany

pamięć

pułapka

system 

operacyjny

p

błąd

strony

background image

 

Obsługa błędu strony w systemie pamięci 

Obsługa błędu strony w systemie pamięci 

wirtualnej

wirtualnej

procesor

adres

logiczny

s      o

adres

fizyczny

r      o

s

s — numer strony
r — numer ramki
o — przesunięcie

s — numer strony
r — numer ramki
o — przesunięcie

tablica

stron

p

pamięć

background image

 

Obsługa błędu strony w systemie wirtualnej 

Obsługa błędu strony w systemie wirtualnej 

pamięci rozproszonej

pamięci rozproszonej

procesor

adres

logiczny

s      o

s

s — numer strony
r — numer ramki
o — przesunięcie

s — numer strony
r — numer ramki
o — przesunięcie

tablica

stron

n

pamięć

pułapka

system 

operacyjny

n

błąd

strony

background image

 

Koncepcje dostępu do danych

Koncepcje dostępu do danych

 Dostęp zdalny – każdy dostęp do współdzielonego obiektu, 

zlokalizowanego fizycznie w pamięci lokalnej innego węzła, 
odbywa się przez sieć.

 Relokacja – możliwa jest zmiana fizycznej lokalizacji 

współdzielonego obiektu, czyli umieszczenie go w pamięci 
lokalnej węzła, w którym pojawiło się żądanie dostępu.

 Replikacja – obiekt logiczny może być jednocześnie 

zlokalizowany fizycznie w pamięci lokalnej wielu węzłów, co 
umożliwia równoległy dostęp do tego obiektu w wielu 
węzłach.

background image

 

Dostęp lokalny

Dostęp lokalny

sieć

procesor

procesor

pamię

ć

lokaln

a

pamię

ć

lokaln

a

procesor

procesor

pamię

ć 

lokaln

a

pamię

ć 

lokaln

a

procesor

procesor

pamię

ć 

lokaln

a

pamię

ć 

lokaln

a

w

ę

ze

ł

w

ę

z

e

ł

węzeł

zarządc
a DSM

background image

 

Dostęp zdalny

Dostęp zdalny

sieć

procesor

procesor

pamię

ć

lokaln

a

pamię

ć

lokaln

a

procesor

procesor

pamię

ć 

lokaln

a

pamię

ć 

lokaln

a

procesor

procesor

pamię

ć 

lokaln

a

pamię

ć 

lokaln

a

w

ę

ze

ł

w

ę

z

e

ł

węzeł

zarządc
a DSM

background image

 

Zdalny dostęp – charakterystyka

Zdalny dostęp – charakterystyka

 Stosunkowo prosta realizacja

 Problem efektywności — duży 

czas dostępu do danych w 
zdalnych węzłach 

background image

 

Relokacja

Relokacja

sieć

procesor

procesor

procesor

procesor

pamię

ć 

lokaln

a

pamię

ć 

lokaln

a

procesor

procesor

w

ę

ze

ł

w

ę

z

e

ł

węzeł

zarządc
a DSM

background image

 

Relokacja

Relokacja

sieć

procesor

procesor

procesor

procesor

pamię

ć 

lokaln

a

pamię

ć

 

lokaln

a

procesor

procesor

w

ę

ze

ł

w

ę

z

e

ł

węzeł

zarządc
a DSM

background image

 

Relokacja

Relokacja

sieć

procesor

procesor

procesor

procesor

pamię

ć 

lokaln

a

pamię

ć 

lokaln

a

procesor

procesor

w

ę

ze

ł

w

ę

z

e

ł

węzeł

zarządc
a DSM

background image

 

Relokacja – charakterystyka

Relokacja – charakterystyka

 Problem lokalizacji

 Problem rozmiaru i struktury 

jednostki podlegającej relokacji

 Problem migotania (ang. 

trashing, 
 ping-pong effect)

background image

 

Replikacja

Replikacja

sieć

procesor

procesor

procesor

procesor

pamię

ć 

lokaln

a

pamię

ć 

lokaln

a

procesor

procesor

w

ę

ze

ł

w

ę

z

e

ł

węzeł

zarządc
a DSM

background image

 

Replikacja

Replikacja

sieć

procesor

procesor

procesor

procesor

pamię

ć 

lokaln

a

pamię

ć 

lokaln

a

procesor

procesor

w

ę

ze

ł

w

ę

z

e

ł

węzeł

zarządc
a DSM

background image

 

Replikacja

Replikacja

sieć

procesor

procesor

procesor

procesor

pamię

ć 

lokaln

a

pamię

ć 

lokaln

a

procesor

procesor

w

ę

ze

ł

w

ę

z

e

ł

węzeł

zarządc
a DSM

background image

 

Replikacja - charakterystyka

Replikacja - charakterystyka

 Problem lokalizacji

 Problem rozmiaru i struktury 

jednostki podlegającej replikacji

 Problem migotania 

(ang. trashing, 
 ping-pong effect)

 Problem spójności 

kopii (replik)

background image

 

Struktura jednostki podlegającej replikacji 

Struktura jednostki podlegającej replikacji 

lub relokacji

lub relokacji

 Strona – fizyczne połączenie kilku odrębnych obiektów 

logicznych w jedną jednostkę udostępnianą jako całość 
przez DSM (problem fałszywego współdzielenia).

 Pojedyncza zmienna – duży jednostkowy koszt relokacji i 

utrzymywania spójności.

 Obiekt (hermetyczna struktura danych udostępniana tylko 

przez zdefiniowane metody) – możliwość optymalizacji w 
strategii utrzymywania spójności w związku ze ściśle 
określonym sposobem dostępu (poprzez metody).

background image

 

Fałszywe współdzielenie

Fałszywe współdzielenie

background image

 

Problem spójności replik - protokół 

Problem spójności replik - protokół 

koherencji

koherencji

 Protokół unieważniania danych (ang. invalidation protocol) 

– niespójne repliki są usuwane z pamięci lokalnej.

 Protokół aktualizacji danych (ang. update protocol) – 

niespójne repliki są aktualizowane.

background image

 

Problem lokalizacji stron – system 

Problem lokalizacji stron – system 

IVY

IVY

 Statyczny scentralizowany mechanizm lokalizacji stron – 

jeden zarządca stron.

 Statyczny rozproszony mechanizm lokalizacji stron – 

identyfikacja zarządcy na podstawie numeru strony.

 Dynamiczny mechanizm lokalizacji stron – bazuje na 

informacji o prawdopodobnych właścicielach stron. W razie 
błędu strony wysyłane jest żądanie do prawdopodobnego 
właściciela strony. Jeżeli odbiorca żądania nie jest 
właścicielem strony, to przekazuje on żądanie do swojego 
prawdopodobnego właściciela strony.

background image

 

Podstawowe pojęcia i struktury danych – 

Podstawowe pojęcia i struktury danych – 

system 

system 

IVY

IVY

 Właściciel strony – węzeł, na którym była wykonywana 

ostatnia operacja zapisu danej strony.

 Zbiór kopii (copyset) – zawiera identyfikatory węzłów 

posiadających kopię strony (przechowywana przez właściciela 
strony).

 Zarządca (w podejściu statycznym) – węzeł, który przechowuje 

dane o właścicielach poszczególnych stron.

 Tablica właścicieli stron – dla każdej strony zawiera 

identyfikator jej właściciela (przechowywany przez zarządców).

 Prawdopodobny właściciel (w podejściu dynamicznym) – 

tablica zawierająca dla każdej strony w systemie identyfikator 
węzła, o którym wiadomo, że był kiedyś (lub jeszcze jest) 
właścicielem danej strony; przechowywana przez każdy węzeł.

background image

 

Statyczny scentralizowany mechanizm 

Statyczny scentralizowany mechanizm 

lokalizacji 

lokalizacji 

stron – odczyt

stron – odczyt

#1   
{}
#2   
{}

#1   
{}
#2   
{}

w

ę

ze

ł 

A

#4

#4

w

ę

ze

ł 

B

#3   {}
#4   
{B}

#3   {}
#4   
{B}

w

ę

ze

ł 

C

#1   A
#2   A
#3   C
#4   C

#1   A
#2   A
#3   C
#4   C

za

rz

ą

d

c

a

A}

Odczyt strony #4:

1. uzyskanie 
    repliki

2. wykonanie
    operacji

#4

background image

 

Statyczny scentralizowany mechanizm 

Statyczny scentralizowany mechanizm 

lokalizacji 

lokalizacji 

stron – zapis

stron – zapis

#1   
{}
#2   
{}

#1   
{}
#2   
{}

w

ę

ze

ł 

A

#4

#4

w

ę

ze

ł 

B

#3   
{}
#4  
{B}

#3   
{}
#4  
{B}

w

ę

ze

ł 

C

#1   A
#2   A
#3   C
#4   C

#1   A
#2   A
#3   C
#4   C

za

rz

ą

d

c

a

Zapis strony #4:

1. uzyskanie 
    własności

2. unieważnienie
    repliki

#4  {B}

3. wykonanie
    operacji

}  
  

A

background image

 

Dynamiczny mechanizm lokalizacji stron – 

Dynamiczny mechanizm lokalizacji stron – 

odczyt

odczyt

#1   
{}
#2   
{}

#1   
{}
#2   
{}

w

ę

ze

ł 

A

#4

#4

w

ę

ze

ł 

B

#3   {}
#4   {B}

#3   {}
#4   {B}

w

ę

ze

ł 

C

#1   A
#2   A
#3   C
#4   B

#1   A
#2   A
#3   C
#4   B

A}

Odczyt strony #4:

1. uzyskanie 
    repliki

2. wykonanie
    operacji

#4

#1   A
#2   A
#3   C
#4   C

#1   A
#2   A
#3   C
#4   C

#1   A
#2   A
#3   C
#4   C

#1   A
#2   A
#3   C
#4   C

C

background image

 

Dynamiczny mechanizm lokalizacji stron – 

Dynamiczny mechanizm lokalizacji stron – 

zapis

zapis

#1   
{}
#2   
{}

#1   
{}
#2   
{}

w

ę

ze

ł 

A

#4

#4

w

ę

ze

ł 

B

#3   {}
#4   {B}

#3   {}
#4   {B}

w

ę

ze

ł 

C

#1   A
#2   A
#3   C
#4   B

#1   A
#2   A
#3   C
#4   B

Zapis strony #4:

#1   A
#2   A
#3   C
#4   C

#1   A
#2   A
#3   C
#4   C

#1   A
#2   A
#3   C
#4   C

#1   A
#2   A
#3   C
#4   C

1. uzyskanie 
    własności

2. unieważnienie
    repliki

3. wykonanie
    operacji

A

#4  {B}

}  
  

A

A

background image

 

Model spójności

Model spójności

Model spójności określa gwarancje dotyczące 
spójności replik, dawane aplikacji (równoległej) 
przez system DSM.

Model spójności określa własności 

Model spójności określa własności 

gwarantowane przez system DSM

gwarantowane przez system DSM

W jaki sposób definiować model 
spójności?
W jaki sposób określić gwarancje dla 
aplikacji?
Kiedy i w jaki sposób egzekwować te 
gwarancje?

???

background image

 

Modele spójności replik

Modele spójności replik

 Modele spójności przy dostępie ogólnym - swobodnym 

(ang. general access consistency models) – doprowadzenie 
do spójności replik realizowane jest przy każdej modyfikacji 
DSM.

 Modele spójności przy dostępie synchronizowanym 

(ang. synchronisation access consistency models) – 
doprowadzenie do spójności replik realizowane jest tylko 
przy wykonywaniu operacji synchronizujących, które są 
rozpoznawane przez system DSM.

background image

 

Modele spójności przy dostępie ogólnym 

Modele spójności przy dostępie ogólnym 

(elementarne

(elementarne

)

)

 Spójność atomowa (ang. atomic consistency)

 Spójność sekwencyjna (ang. sequential consistency)

 Spójność przyczynowa (ang. causal consistency)

 Spójność PRAM (ang. pipelined RAM consistency)

 Koherencja (ang. coherence)

 Spójność procesorowa (ang. processor consistency)

background image

 

Modele spójności przy dostępie 

Modele spójności przy dostępie 

synchronizowanym

synchronizowanym

 Spójność słaba (ang. weak consistency)

 Spójność zwalniania (ang. release consistency)

 Spójność wejścia (ang. entry consistency)

 Spójność zakresu (ang. scope consistency)

background image

 

Definicja modeli spójności – podstawowe 

Definicja modeli spójności – podstawowe 

założenia

założenia

 W skład systemu DSM wchodzą:

 zbiór sekwencyjnych procesów P = {p

1

, p

2

, …, p

n

}

 zbiór współdzielonych zmiennych X = {x

1

, x

2

, …}

 Każdy proces ma własną replikę całego zbioru X
 Proces p

i

 może realizować na zmiennej x  dwie operacje:

 zapisu wartości v – w

i

(x)v

 odczytu wartości v – r

i

(x)v

 Realizacja operacji przebiega w dwóch fazach:

 żądanie operacji (ang. operation issue)
 wykonanie operacji (ang. operation execution)

background image

 

Definicja modeli spójności – oznaczenia 

Definicja modeli spójności – oznaczenia 

w

i

(x)v

operacja zapisu wartości v w zmiennej x, wykonana 
przez proces p

i

r

i

(x)v

operacja odczytu wartości v zmiennej x, wykonana 
przez proces p

i

O

zbiór wszystkich operacji w systemie

O

i

zbiór operacji procesu p

i

 (żądanych przez p

i

)

OW

zbiór wszystkich operacji zapisu w systemie

O|x

zbiór wszystkich operacji na zmiennej x

i

lokalny porządek operacji procesu p

i

 (lokalny porządek 

zgłaszania żądań przez procesu p

i

)

 

przyczynowy porządek operacji procesu p

(przyczynowy porządek zgłaszania żądań przez 
procesu p

i

)

i

porządek (uszeregowanie, ang. serialisation), zgodnie 
z którym operacje postrzegane są przez proces p

i

 

(zgodnie z którym operacje wykonywane są na replice 
procesu p

i

)

background image

 

Definicja porządku przyczynowego

Definicja porządku przyczynowego

[

]

1,02

1, 2,

( 1

2

1

2)

( )

( )

( 1

2)

1

2

i

i

o

O

x X

o o o O

o

o

o

o

w x v

r x v

o

o o

o

o

o

"��

"

�"

ٮ

background image

 

Definicja uszeregowania legalnego

Definicja uszeregowania legalnego

Uszeregowanie

 

i

 jest legalne 



v

x

r

u

x

o

v

x

w

v

u

v

x

r

v

x

w

i

i

OW

O

u

x

o

i

O

v

x

r

OW

v

x

w

i

i

)

(

)

(

)

(

)

(

)

(

)

(

)

(

,

)

(

UWAGA

W celu uproszczenia definicji zakłada się, że 
każda operacja zapisu danej zmiennej zapisuje 
unikalną wartość, co umożliwia identyfikowanie 
operacji zapisu poprzez tą wartość.

background image

 

Definicja historii

Definicja historii

Historia lokalna (procesu p

i

)

Zbiór uporządkowany h

i

 = (O

i

, 

i

), gdzie 

i

 jest relacją 

porządku lokalnego.

Historia globalna

Zbiór uporządkowany h = (O, ), gdzie  jest relacją porządku 

przyczynowego.

Obraz historii h w procesie p

i

Zbiór uporządkowany hv

i

 = (O

 OW, 

i

), gdzie 

i

 jest legalnym 

uszeregowaniem.

Obraz historii h

Kolekcja obrazów poszczególnych procesów: hv =  hv

1

hv

2

, ..., 

hv

.

background image

 

Modele spójności — definicja spójności 

Modele spójności — definicja spójności 

sekwencyjnej

sekwencyjnej

Obraz hv historii h musi spełniać następujące warunki:







2

1

2

1

..

1

2

,

1

o

o

o

o

i

j

n

j

OW

O

o

o

i

1

2

2

1

..

1

..

1

2

,

1

w

w

w

w

i

n

i

i

n

i

OW

w

w

background image

 

Spójność sekwencyjna – przykład

Spójność sekwencyjna – przykład

w

2

(x)1

p

2

p

1

w

2

(x)2

r

1

(x)1

w

2

(x)1 

1

 

w

2

(x)2

1

 r

1

(x)1

w

2

(x)1 

2

 w

2

(x)2

hv

2

:

hv

1

:

background image

 

Spójność sekwencyjna – protokół koherencji 

Spójność sekwencyjna – protokół koherencji 

(1)

(1)

read(x 

 X)

return M

[x]

write(x 

 X, v)

atomic_broadcast U(x
v)
wait
return

on receipt of U(x, v) 
from p

k

M

[x] : v

if k  i 

      signal
end if

Algorytm fast-read dla procesu p

i

:

background image

 

Spójność sekwencyjna — protokół koherencji 

Spójność sekwencyjna — protokół koherencji 

(2)

(2)

read(x 

 X)

if num

i

  0 

      wait
end if
return M

[x]

write(x 

 X, v)

num

i

 : num

i

  1

FIFO_atomic_broadcast U(xv)
return

on receipt of U(x, v) 
from p

k

M

[x] : v

if k  i 

      num

i

 : num

i

  1 

      if num

i

  0 

            signal
      end if
end if

Algorytm fast-write dla procesu p

i

:

background image

 

Modele spójności — definicja spójności 

Modele spójności — definicja spójności 

atomowej

atomowej

Obraz hv historii h musi spełniać następujące warunki:







2

1

2

1

..

1

2

,

1

o

o

o

o

i

RT

n

j

OW

O

o

o

i

1

2

2

1

..

1

..

1

2

,

1

w

w

w

w

i

n

i

i

n

i

OW

w

w

2

1

o

o

RT

o1 kończy się w czasie 
rzeczywistym
, zanim zaczyna się 
o2

background image

 

Spójność atomowa — przykład

Spójność atomowa — przykład

w

2

(x)1

p

2

p

1

w

2

(x)2

r

1

(x)1

r

1

(x)2

background image

 

Modele spójności — definicja spójności 

Modele spójności — definicja spójności 

przyczynowej

przyczynowej

Obraz hv historii h musi spełniać warunek:

2

1

2

1

2

,

1

o

o

o

o

i

OW

O

o

o

i

background image

 

Spójność przyczynowa — przykład

Spójność przyczynowa — przykład

w

2

(x)1

p

2

p

1

r

2

(y)1

r

1

(x)1

w

1

(x)2 w

1

(y)1

r

2

(x)2

w

1

(x)

1

 

w

2

(x)1

1

 

w

1

(y)1

w

2

(x)1 

2

 w

1

(x)2

hv

2

:

hv

1

:

1

 r

1

(x)1

2

 r

2

(y)1

2

 

w

1

(y)1

2

 r

2

(x)2

background image

 

Spójność przyczynowa — protokół koherencji

Spójność przyczynowa — protokół koherencji

read(x 

 X)

return M

[x]

write(x 

 X, v)

M

[x] : v

causal_broadcast U(x
v)
return

on receipt of U(x, v) 
from p

k

if k  i 

      M

[x] : v

end if

Algorytm dla procesu p

i

:

background image

 

Modele spójności — definicja spójności 

Modele spójności — definicja spójności 

PRAM

PRAM

Obraz hv historii h musi spełniać warunek:







2

1

2

1

..

1

2

,

1

o

o

o

o

i

j

n

j

OW

O

o

o

i

background image

 

Spójność PRAM — przykład

Spójność PRAM — przykład

p

2

p

1

r

2

(y)1

w

1

(x)1 w

1

(y)1

w

2

(x)2

p

3

r

3

(x)2 r

3

(x)1

w

2

(x)2 

3

 r

3

(x)2

hv

3

:

3

 r

3

(x)1

3

 

w

1

(x)1

3

 w

1

(y)1

background image

 

Spójność PRAM — protokół koherencji

Spójność PRAM — protokół koherencji

read(x 

 X)

return M

[x]

write( X, v)

M

[x] : v

FIFO_broadcast U(xv)
return

on receipt of U(x, v) 
from p

k

if k  i 

      M

[x] : v

end if

Algorytm dla procesu p

i

:

background image

 

Modele spójności — definicja koherencji

Modele spójności — definicja koherencji

Obraz hv historii h musi spełniać warunek:

1

2

2

1

..

1

..

1

|

2

,

1

w

w

w

w

i

n

i

i

n

i

x

O

OW

w

w

X

x

background image

 

Koherencja — przykład

Koherencja — przykład

w

2

(x)1

p

2

p

1

r

2

(y)1

r

1

(x)1w

1

(x)2

w

1

(y)1

r

2

(x)1

r

1

(x)2

r

2

(x)2

w

2

(x)

2

 w

1

(y)1

hv

2

:

2

 r

2

(x)1

2

 r

2

(y)1

2

 w

1

(x)2

w

2

(x)

1

 r

1

(x)1

hv

1

:

1

 r

1

(x)2

1

 

w

1

(x)2

1

 w

1

(y)1

2

 r

2

(x)2

background image

 

Koherencja (model spójności) — protokół 

Koherencja (model spójności) — protokół 

koherencji (1)

koherencji (1)

read(x 

 X)

return M

[x]

write(x 

 X, v)

atomicx_broadcast 
U(xv)
wait
return

on receipt of U(x, v) 
from p

k

M

[x] : v

if k  i 

      signal
end if

Algorytm fast-read dla procesu p

i

:

background image

 

Koherencja (model spójności) — protokół 

Koherencja (model spójności) — protokół 

koherencji (2)

koherencji (2)

read(x 

 X)

if num

i

 [x]  0 

      wait

end if

return M

[x]

write(x 

 X, v)

num

i

 [x] : num

i

 [x]  1

FIFOx_atomicx_broadcast U(xv)

return

on receipt of U(x, v) 
from p

k

M

[x] : v

if k  i 

      num

i

 [x] : num

i

 [x]  1 

      if num

i

 [x]  0 

            signal
      end if
end if

Algorytm fast-write dla procesu p

i

:

background image

 

Modele spójności — definicja spójności 

Modele spójności — definicja spójności 

procesorowej

procesorowej

Obraz hv historii h musi spełniać następujące warunki

(PRAM + koherencja):







2

1

2

1

..

1

2

,

1

o

o

o

o

i

j

n

j

OW

O

o

o

i

1

2

2

1

..

1

..

1

|

2

,

1

w

w

w

w

i

n

i

i

n

i

x

O

OW

w

w

X

x

background image

 

Spójność procesorowa — przykład

Spójność procesorowa — przykład

w

2

(x)1

p

2

p

1

r

2

(y)1

r

1

(x)1

w

1

(x)2 w

1

(y)1

r

2

(x)1

w

1

(x)

1

 

w

1

(y)1

hv

1

:

1

 r

1

(x)1

1

 

w

2

(x)1

w

1

(x)

2

 w

2

(x)1

hv

2

:

2

 r

2

(y)1

2

 

w

1

(y)1

2

 r

2

(x)1

r

1

(x)2

1

 r

1

(x)2

r

2

(y)0

2

 r

2

(y)0

background image

 

Spójność procesorowa — protokół koherencji

Spójność procesorowa — protokół koherencji

read(x 

 X)

if num

i

 [x]  0 

      wait

end if

return M

[x]

write(x 

 X, v)

num

i

 [x] : num

i

 [x]  1

FIFO_atomicx_broadcast U(xv)

return

on receipt of U(x, v) 
from p

k

M

[x] : v

if k  i 

      num

i

 [x] : num

i

 [x]  1 

      if num

i

 [x]  0 

            signal
      end if
end if

Algorytm fast-write dla procesu p

i

:

background image

 

Spójność procesorowa — przykład 

Spójność procesorowa — przykład 

naruszenia porządku przyczynowego

naruszenia porządku przyczynowego

r

2

(x)1

p

2

p

1

r

3

(y)1

w

1

(x)2

w

2

(y)1

p

3

r

3

(x)1 r

3

(x)2

w

1

(x)1

r

2

(x)2

w

1

(x)1  w

1

(x)2  

w

2

(y)1

hv

3

: w

2

(y)1   r

3

(y)1  w

1

(x)1  r

3

(x)1  w

1

(x)2  

r

3

(x)2

background image

 

Relacje pomiędzy modelami spójności

Relacje pomiędzy modelami spójności







2

1

2

1

..

1

2

,

1

o

o

o

o

i

j

n

j

OW

O

o

o

i

2

1

2

1

2

,

1

o

o

o

o

i

OW

O

o

o

i







2

1

2

1

..

1

2

,

1

o

o

o

o

i

RT

n

j

OW

O

o

o

i

1

2

2

1

..

1

..

1

2

,

1

w

w

w

w

i

n

i

i

n

i

OW

w

w

 PRAM 

 
przyczynow

 
koherencj

 

p

ro

c

e

s

o

ro

w

a

 

 sekwencyjna 

 atomowa 

1

2

2

1

..

1

..

1

|

2

,

1

w

w

w

w

i

n

i

i

n

i

x

O

OW

w

w

X

x

background image

 

Definicja modeli spójności przy dostępie 

Definicja modeli spójności przy dostępie 

synchronizowanym — założenia

synchronizowanym — założenia

 W skład systemu DSM wchodzą:

 zbiór sekwencyjnych procesów P = {p

1

, p

2

, …, p

n

}

 zbiór współdzielonych zmiennych X = {x

1

, x

2

, …}

 zbioru obiektów synchronizujących S = {s

1

s

2

, ...}

 Wyróżnia się (najczęściej) dwa rodzaje obiektów 

synchronizujących:

 zamek (ang. lock), na którym wykonywane są operacje:

 acquire — nabycie zamka
 release — zwolnienie zamka

 bariera (ang. barrier) z operacją

 synchronizacja na barierze

background image

 

Spójność słaba 

Spójność słaba 

(ang. 

(ang. 

weak consistency

weak consistency

)

)

 Wyróżnia się dwa rodzaje operacji dostępu:

 operacje dostępu do globalnych danych 

(współdzielonych),

 operacje dostępu do zmiennych synchronizujących.

 Definicja modelu:

 operacje dostępu do zmiennych synchronizujących są 

spójne atomowo (w nowszym podejściu sekwencyjnie),

 nie można wykonać (zakończyć) operacji dostępu do 

zmiennej synchronizującej przed globalnym 
zakończeniem wcześniejszych operacji dostępu do 
zmiennych współdzielonych,

 nie można wykonać (zakończyć) operacji dostępu do 

zmiennej współdzielonej przed globalnym 
zakończeniem wcześniejszych operacji dostępu do 
zmiennych synchronizujących.

background image

 

Spójność słaba — przykład

Spójność słaba — przykład

w

2

(x)1

p

2

p

1

synch

2

(s)

r

1

(x)1

synch

1

(s)

r

2

(x)2

w

1

(x)2

r

2

(x)0

wartość początkowa x = 0

background image

 

Spójność zwalniania 

Spójność zwalniania 

(ang. 

(ang. 

release 

release 

consistency

consistency

)

)

 Dwa rodzaje synchronizacji są możliwe:

 wzajemne wykluczanie (acquire-release),
 synchronizacja na barierze.

 Operacje synchronizujące są spójne procesorowo, a 

pozostałe operacje są spójne w sensie PRAM.

 Repliki są doprowadzane do stanu spójnego przy operacji 

bariery oraz przy

 release w przypadku spójności eager release,
 acquire w przypadku spójności lazy release.

 Doprowadzanie do stanu spójnego polega na: 

 unieważnianiu replik w przypadku protokołu 

unieważniania,

 aktualizacji replik w przypadku protokołu aktualizacji.

background image

 

Spójność zwalniania — przykład

Spójność zwalniania — przykład

r

2

(x)0

p

2

p

1

acq

1

(lock)

w

1

(x)1rel

1

(lock)

r

2

(x)1

acq

1

(lock)

W przypadku protokołu 

unieważniania operacje 

spowodują błąd strony

w

1

(y)1

r

2

(y)0

r

2

(y)1

background image

 

Spójność zakresu 

Spójność zakresu 

(ang. 

(ang. 

scope consistency

scope consistency

)

)

 Operacje acquire i release odpowiednio otwierają i 

zamykają zakres.

 Operacja bariery zamyka zakres globalny i otwiera następny 

zakres globalny.

 Istnieją jawne operacje otwarcia i zamknięcia zakresu: 

open_scope i close_scope.

 Po otwarciu zakresu aktualizowane/unieważnianie są 

wszystkie repliki zmodyfikowane w czasie poprzedniego 
otwarcia zakresu (poprzedni zakres musi być zamknięty).

background image

 

Spójność zakresu — przykład

Spójność zakresu — przykład

r

2

(x)0

p

2

p

1

acq

1

(lock)

w

1

(x)1rel

1

(lock)

r

2

(x)1

acq

1

(lock)

w

1

(y)1

r

2

(y)0

r

2

(y)0

background image

 

Spójność wejścia 

Spójność wejścia 

(ang. 

(ang. 

entry consistency

entry consistency

)

)

 Spójność wejścia zbliżona jest do spójności zakresu.

 Są dwa rodzaje operacji acquire: współdzielona i wyłączna.

 Z każdym globalnym obiektem związana jest zmienna 

synchronizująca, na której wykonywana jest odpowiednia 
operacja przed dostępem do zmiennej.

background image

 

Własność lokalności

Własność lokalności

Lokalność jest cechą spójności atomowej i 

koherencji.

Własność 

Własność 

P

P

 systemu współbieżnego jest 

 systemu współbieżnego jest 

lokalna wówczas, gdy system jako całość 

lokalna wówczas, gdy system jako całość 

posiada własność 

posiada własność 

P

P

, jeśli każdy pojedynczy 

, jeśli każdy pojedynczy 

obiekt posiada własność 

obiekt posiada własność 

P

P

.

.

background image

 

Własność lokalności — przykład

Własność lokalności — przykład

r

2

(x1)1

p

2

p

1

r

2

(y1)1

r

1

(y2)1

w

1

(x1)1

w

1

(y1)1

r

2

(x2)1

w

1

(x1)

1

 

w

2

(y1)1

1

 

w

1

(x2)1

w

1

(x1)1 

2

 w

1

(x2)1

hv

2

:

hv

1

:

1

 w

1

(y2)1

2

 r

2

(y1)1

2

 

w

1

(y1)1

2

 r

2

(x2)0

w

1

(x2)1

w

1

(y2)1

r

2

(x2)0

2

 

r

2

(x1)1

2

 

r

2

(x2)1

2

 r

2

(y2)1

2

 

w

1

(y2)1

background image

 

Własność lokalności — przykład

Własność lokalności — przykład

r

2

(x1)1

p

2

p

1

w

1

(x1)1

r

2

(x2)1

w

1

(x1)

1

 

w

1

(x2)1

w

1

(x1)1 

2

 w

1

(x2)1

hv

2

:

hv

1

:

2

 r

2

(x2)0

w

1

(x2)1

r

2

(x2)0

2

 

r

2

(x1)1

2

 

r

2

(x2)1

background image

 

Własność lokalności — przykład

Własność lokalności — przykład

p

2

p

1

r

2

(y1)1

r

1

(y2)1

w

1

(y1)1

w

2

(y1)

1

hv

2

:

hv

1

:

1

 w

1

(y2)1

2

 r

2

(y1)1

w

1

(y1)

1

w

1

(y2)1

2

 r

2

(y2)1

2

 

w

1

(y2)1

background image

 

Koniec

Koniec

... 

i żyli długo 

szczęśliwie


Document Outline