Synchronizacja w systemach rozproszonych

Slides:



Advertisements
Podobne prezentacje
Zerowanie mikroprocesorów Cel: wprowadzenie mikroprocesora w określony stan początkowy Zwykle realizowany poprzez: inicjalizację licznika rozkazów (PC)
Advertisements

Mechanizmy pracy równoległej
Projektowanie aplikacji równoległych Jarosław Kuchta.
Jarosław Kuchta Dokumentacja i Jakość Oprogramowania
Wykład nr 8: Zakleszczenia
SYSTEMY OPERACYJNE WSTĘP
Semafory Autorzy : Michał Winciorek Łukasz Jackowicz.
ALGORYTM Co to jest algorytm?
Sieci (1) Topologia sieci.
Urządzenia sieciowe Topologie sieci Standardy sieci Koniec.
SSL - protokół bezpiecznych transmisji internetowych
Wykład nr 7: Synchronizacja procesów
Systemy operacyjne Wykład nr 4: Procesy Piotr Bilski.
Wykład nr 2: Struktura systemu komputerowego a system operacyjny
Usługi sieciowe Wykład 5 DHCP- debian Jarosław Kurek WZIM SGGW 1.
Synchronizacja Rozdział 5.
Systemy operacyjne.
Konfiguracja DHCP i dzielenie łącza
Temat nr 10: System przerwań
Komunikaty sterujące zestawu protokołów TCP/IP
Artur Szmigiel Paweł Zarębski Kl. III i
Projektowanie i programowanie obiektowe II - Wykład IV
Wstęp do interpretacji algorytmów
ZARZĄDZANIE PROCESAMI
Programowanie współbieżne i rozproszone
Problem rozbieżności czasów jednym z wielu problemów pojawiających się w systemach rozproszonych jest rozbieżność wartości zegarów na poszczególnych węzłach-maszynach.
Diagramy czynności.
USŁUGA FTP 1. Definicja FTP. FTP (File Transfer Protocol, ang. protokół transmisji plików) jest protokołem typu klient-serwer, który umożliwia przesyłanie.
TOPOLOGIA SIECI LAN.
SIEĆ P2P 1. Definicja sieci równouprawnionej. To taka sieć, która składa się z komputerów o takim samym priorytecie ważności, a każdy z nich może pełnić.
Systemy Rozproszone Synchronizacja 2
Protokół Komunikacyjny
Zbiór do posortowania mieści się w pamięci
Systemy operacyjne.
RODZAJE TRANSMISJI PRZESYŁANIE INFORMACJI W MODELU WARSTWOWYM
Zasada działania komputera
Wymiana informacji w sieciach komputerowych
Prezentacja opisuje mechanizm pracy
Topologie sieci lokalnych.
Prezentacja i szkolenie
Protokół drzewa opinającego
Problem sekcji krytycznej
POŚREDNIK Jak reprezentowana jest informacja w komputerze? liczby – komputer został wymyślony jako zaawansowane urządzenie służące do wykonywania.
Sieci komputerowe Anna Wysocka.
ADRES IP – unikatowy numer przyporządkowany urządzeniom sieci komputerowych. Adres IPv4 składa się z 32 bitów podzielonych na 4 oktety po 8 bitów każdy.
Sieci komputerowe.
Inne technologie sieciowe.
Wykład 7 Synchronizacja procesów i wątków
W ą t e k (lekki proces) thread.
Sieci komputerowe.
Systemy operacyjne i sieci komputerowe
Systemy operacyjne i sieci komputerowe
Systemy rozproszone  Rozdzielenie obliczeń między wiele fizycznych procesorów.  Systemy luźno powiązane – każdy procesor ma lokalną pamięć; procesory.
Algorytmika.
Temat 8: Metody dostępu do nośnika
Diagram aktywności (czynności)
Urząd Skarbowy w Ostrowie Wielkopolskim e-deklaracje
Systemy operacyjne i sieci komputerowe
Procesor, pamięć, przerwania, WE/WY, …
Andrzej Majkowski 1 informatyka +. 2 Bezpieczeństwo protokołu HTTP Paweł Perekietka.
Model OSI.
Procesy, wątki Program a proces Proces: Przestrzeń adresowa, kod, dane, stos (część pamięci do przechowania zmiennych lokalnych i niektórych adresów) Otwarte.
Diagramy przepływu danych
Wstęp do interpretacji algorytmów
Systemy operacyjne i sieci komputerowe DZIAŁ : Systemy operacyjne i sieci komputerowe Informatyka Zakres rozszerzony Zebrał i opracował : Maciej Belcarz.
Model warstwowy ISO-OSI
Wstęp do programowania Wykład 7
Zarządzanie projektami
materiały dla uczestników
Topologie fizyczne i logiczne sieci
Zapis prezentacji:

Synchronizacja w systemach rozproszonych SYSTEMY ROZPROSZONE Synchronizacja w systemach rozproszonych

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

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.

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).

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)

ZEGARY LOGICZNE – Algorytm Lamporta ___________________________________________________________________________________________ 1 2 3 1 2 3 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”.

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 100 000 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).

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.

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.

ALGORYTM SCENTRALIZOWANY ___________________________________________________________________________________________

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.

ALGORYTM ROZPROSZONY RICARTA I AGRAWALI ___________________________________________________________________________________________

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.

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).

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.

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.

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.

ALGORYTM TYRANA (bully algorithm) ___________________________________________________________________________________________

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ę.

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.

SYNCHRONIZACJA ZEGARÓW ___________________________________________________________________________________________