Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
Synchronizacja w systemach rozproszonych
SYSTEMY ROZPROSZONE Synchronizacja w systemach rozproszonych
2
SYNCHRONIZACJA ___________________________________________________________________________________________ SYNCHRONIZACJA ZEGARÓW Zegary logiczne WZAJEMNE WYKLUCZANIE Algorytm scentralizowany Algorytm rozproszony Ricarta i Agrawali Krążący żeton ALGORYTMY ELEKCJI Algorytm tyrana Algorytm pierścieniowy
3
SYNCHRONIZACJA ZEGARÓW ___________________________________________________________________________________________ Algorytmy i aplikacje posługują się czasem; w SR – potrzeba dokładnego pomiaru czasu oraz synchronizacji zdarzeń: utrzymywanie spójności rozproszonych danych (szeregowanie transakcji), sprawdzanie autentyczności zamówień wysyłanych do serwera (Kerberos), eliminowanie wielokrotnego wykonywania tych samych uaktualnień. Jak synchronizować lokalne zegary z zegarami fizycznymi świata rzeczywistego? Jak wzajemnie synchronizować te zegary? Synchronizacja zegarów w różnych komputerach odbywa się za pomocą komunikacji sieciowej, jednak czas transmisji komunikatu jest nieokreślony. Trudno jest ustalić względną kolejność zdarzeń w różnych komputerach, można jednak ustalić porządek niektórych zdarzeń na podstawie przepływu danych między procesami.
4
ZEGARY LOGICZNE ___________________________________________________________________________________________ ZEGAR CZASOMIERZ (timer): licznik (counter) + rejestr podtrzymujący data i czas liczba impulsów odliczanych od daty początkowej czas względny czasu rzeczywistego w SR na różnych komputerach – różne wskazania czasu (odchylenie czasu) konieczność synchronizacji: ALGORYTM Lamporta Założenia: nie jest konieczna synchronizacja absolutna, zgodność z czasem rzeczywistym, ważna jest wewnętrzna zgodność zegarów zegary logiczne (logical clocks).
5
ZEGARY LOGICZNE ___________________________________________________________________________________________ Definicja uprzedniości zdarzeń: a b - a poprzedza b Jeśli a i b są zdarzeniami, które zaszły w ramach tego samego procesu i a wystąpiło przed b, to a b. Jeśli a jest zdarzeniem wysłania komunikatu przez jeden proces, a b zdarzeniem odebrania tego komunikatu przez inny proces, to a b. Relacja uprzedniości jest przechodnia: jeśli a b i b c, to a c. Jeżeli nie zachodzi a b ani b a, to zdarzenia a i b nazywamy współbieżnymi Relacja całkowitego uporządkowania [C(a) – czas zdarzenia a]: 1. Jeśli a poprzedza b, w tym samym procesie, to C(a) < C(b) 2. Jeśli a i b oznaczają nadanie i odbiór komunikatu, to C(a) < C(b) 3. Dla wszystkich zdarzeń a i b, C(a) < C(b)
6
ZEGARY LOGICZNE – Algorytm Lamporta ___________________________________________________________________________________________ Komunikaty: „A” od procesu 1 do procesu 2, „B” – od 2 do 3; „C” – od 3 do 2 + korekta zegara min. o 1 jednostkę; analogicznie komunikat „D”.
7
ZEGARY FIZYCZNE ___________________________________________________________________________________________ Synchronizowanie zegarów fizycznych: odchylenie zegara kwarcowego – 10-6 (1 sek / 11.6 dnia) międzynarodowy czas atomowy (czas przejścia 2 poziomów energetycznych Cs 133) uniwersalny czas skoordynowany (UTC) dokładność pomiaru czasu 10 ms procesor 10 MIPS wykonuje instrukcji Protokół czasu sieciowego NTP – standard synchronizacji zegarów w Internecie CEL: dostarczanie usług umożliwiających dokładną synchronizację z UTC; dostarczanie usług, zdolnych przetrwać długie braki połączeń; umożliwianie klientom częstych resynchronizacji (wyrównywanie odchyleń); zapewnienie ochrony przed zakłócaniem usług czasu (celowym lub losowym).
8
WZAJEMNE WYKLUCZANIE ___________________________________________________________________________________________ Założenia modelowe: 1. System rozproszony składa się z N węzłów (1..N). Jeden węzeł odpowiada jednemu procesowi. 2. Komunikaty wysyłane od jednego procesu do innego dochodzą w tym samym porządku. 3. Każdy komunikat dochodzi w skończonym czasie. 4. Sieć jest w pełni połączona, każdy proces może wysłać bezpośrednio komunikat do każdego innego.
9
ALGORYTM SCENTRALIZOWANY ___________________________________________________________________________________________ W systemie istnieje jeden koordynator, tylko on może wyrazić zgodę na wejście procesu do sekcji krytycznej. Proces żądanie do koordynatora; Koordynator sprawdza stan sekcji: a) wysyła odpowiedź (zgodę) do procesu; b) wstawia żądanie do kolejki; a)-> Proces wchodzi do sekcji; Po wyjściu proces komunikat zwalniający do koordynatora. Koordynator po otrzymaniu komunikatu zwalniającego usuwa z kolejki jeden z komunikatów i wysyła zgodę do czekającego procesu.
10
ALGORYTM SCENTRALIZOWANY ___________________________________________________________________________________________
11
ALGORYTM ROZPROSZONY RICARTA I AGRAWALI ___________________________________________________________________________________________ Proces Pi żądający zasobu wysyła komunikat REQUEST(Ti, i) do pozostałych procesów (do siebie od razu wysyła REPLY). Odbiorca komunikatu, proces Pk: Jeśli sam nie zgłosił żądania, to odsyła REPLY; Wpp - jeśli (Tk, k) poprzedza (Ti, i), to wstawia REQUEST(Ti, i) do kolejki; Wpp odsyła REPLY. Gdy Pi otrzyma N komunikatów REPLY, to znaczy, że uzyskał pozwolenie od wszystkich i może wejść do sekcji krytycznej. Po zwolnieniu zasobu proces Pi wysyła REPLY na wszystkie czekające w kolejce komunikaty REQUEST.
12
ALGORYTM ROZPROSZONY RICARTA I AGRAWALI ___________________________________________________________________________________________
13
ALGORYTM ROZPROSZONY RICARTA I AGRAWALI ___________________________________________________________________________________________ Cechy algorytmu: Liczba komunikatów potrzebnych do wejścia do sekcji krytycznej wynosi 2 * (N - 1). Procesy muszą znać identyfikatory wszystkich innych procesów w systemie. Nowy proces dołączający do grupy musi przedstawić się wszystkim pozostałym procesom, a także uzyskać ich identyfikatory. System jest bardzo podatny na awarie. Jeśli jakiś proces ulegnie awarii, to wszystkie inne procesy muszą być o tym powiadomione. Gdy proces zostanie reaktywowany, to musi na nowo dołączyć do grupy. Protokół jest odpowiedni dla małych, stabilnych zbiorów współpracujących procesów.
14
ALGORYTM - KRĄŻĄCY ŻETON (Token Ring) ___________________________________________________________________________________________ Procesy tworzą logiczny pierścień. Wzdłuż pierścienia krąży jeden żeton (specjalny rodzaj komunikatu). Tylko proces będący w posiadaniu żetonu może wejść do sekcji krytycznej (tylko raz).
15
ALGORYTM - KRĄŻĄCY ŻETON (Token Ting) ___________________________________________________________________________________________ Cechy algorytmu: > Żeton może zginąć. Wówczas trzeba wybrać proces, który wygeneruje nowy żeton. > Jeśli jakiś proces ulegnie uszkodzeniu, to należy zbudować nowy pierścień logiczny. > Wejście do sekcji wymaga przesłania od 1 do (N - 1) komunikatów.
16
ALGORYTMY ELEKCJI ___________________________________________________________________________________________ W algorytmach rozproszonych potrzebny jest jeden proces koordynujący: wymuszanie wzajemnego wykluczania, generowanie utraconych żetonów, utrzymywanie globalnych struktur danych itp. Cel algorytmów elekcji: wskazanie miejsca, w którym nastąpi wznowienie kopii koordynatora. Koordynatorem jest zawsze proces z najwyższym numerem priorytetu. Jeśli koordynator ulegnie awarii, to algorytm wybiera na koordynatora proces o największym numerze. Numer ten jest wysyłany do każdego aktywnego procesu w systemie.
17
ALGORYTM TYRANA (bully algorithm) ___________________________________________________________________________________________ Proces P wysyła komunikat ELECTION do wszystkich procesów z wyższymi numerami. Jeśli nikt nie odpowiada, to P wygrywa. Proces wygrywający wybory wysyła komunikat COORDINATOR do wszystkich procesów z niższymi numerami. Jeśli ktoś odpowiedział (komunikat ANSWER), to proces P czeka na komunikat COORDINATOR. Jeśli taki komunikat nie przychodzi, to P rozpoczyna następne wybory. Proces, który otrzymał komunikat ELECTION wysyła ANSWER i rozpoczyna następne wybory.
18
ALGORYTM TYRANA (bully algorithm) ___________________________________________________________________________________________
19
ALGORYTM PIERŚCIENIOWY (ring algorithm) ___________________________________________________________________________________________ Wariant 1 (wg Tanenbauma): Jeśli proces Pi wykrywa awarię koordynatora, to wysyła komunikat ELECTION ze swoim numerem do sąsiada. Jeśli sąsiad nie działa, to wysyła komunikat do następnego procesu wzdłuż pierścienia. Kiedy komunikat dociera do procesu, który go wysłał (proces rozpoznaje swój własny numer w komunikacie), to zostaje wybrany zwycięzca (proces z najwyższym numerem), a odbiorca komunikatu wysyła do sąsiada komunikat COORDINATOR w celu poinformowanie wszystkich kto wygrał wybory oraz jakie procesy wchodzą w skład pierścienia i w jakiej kolejności. Kiedy ten komunikat okrąży pierścień, zostaje usunięty przez nadawcę.
20
ALGORYTM PIERŚCIENIOWY (ring algorithm) ___________________________________________________________________________________________ Wariant 2 (wg Coulourisa) Każdy proces zostaje oznaczony jako nieuczestnik. Proces rozpoczynający wybory zostaje uczestnikiem, wysyła kom. ELECTION ze swoim numerem do sąsiada. Proces, który otrzyma komunikat: jeśli ma niższy numer, to przesyła komunikat dalej, wpp jeśli jest nieuczestnikiem, to podstawia swój numer i przesyła komunikat dalej, a wpp nie przesyła. Proces przesyłający komunikat dalej staje się uczestnikiem. Jeśli proces dostaje komunikat ze swoim numerem, to wygrał wybory - wysyła komunikat ELECTED.
21
SYNCHRONIZACJA ZEGARÓW ___________________________________________________________________________________________
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.