Stan globalny. Krzysztof Banaś Systemy rozproszone 1

Podobne dokumenty
Koordynacja procesów w środowisku rozproszonym

Czas w systemach rozproszonych. Krzysztof Banaś Systemy rozproszone 1

Algorytmy Równoległe i Rozproszone Część VI - Systemy rozproszone, podstawowe pojęcia

PROJEKT WSPÓŁFINANSOWANY ZE ŚRODKÓW UNII EUROPEJSKIEJ W RAMACH EUROPEJSKIEGO FUNDUSZU SPOŁECZNEGO OPIS PRZEDMIOTU

Systemy Rozproszone. Zagadnienia do egzaminu.

5. Model komunikujących się procesów, komunikaty

Klient-Serwer Komunikacja przy pomocy gniazd

Elekcja, wzajemne wykluczanie i zakleszczenie

Mechanizmy pracy równoległej. Jarosław Kuchta

1.Wprowadzenie do projektowania układów sekwencyjnych synchronicznych

Projektowanie algorytmów równoległych. Zbigniew Koza Wrocław 2012

Akademia Techniczno-Humanistyczna w Bielsku-Białej

procesów Współbieżność i synchronizacja procesów Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Konstrukcja spójnego obrazu stanu globalnego algorytmy

Konstrukcja spójnego obrazu stanu globalnego algorytmy

Konstrukcja spójnego obrazu stanu globalnego algorytmy

Konstrukcja spójnego obrazu stanu globalnego - wprowadzenie

System Rozproszone Komunikator Dokumentacja. Maciej Muszkowski Jakub Narloch

DHCP Copyright : JaRo

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

Algorytm Lamporta. Czy można to ulepszyć?

Cele. Założenia. Format komunikatów

Algorytmy Równoległe i Rozproszone Część VII - Systemy rozproszone, wstęp

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

Płatności CashBill - SOAP

Spis treści. 1 Wprowadzenie. 1.1 Podstawowe pojęcia. 1 Wprowadzenie Podstawowe pojęcia Sieci komunikacyjne... 3

Wirtualna centralka telefoniczna P2P

Wprowadzenie. Dariusz Wawrzyniak 1

Kolejki FIFO (łącza nazwane)

IPC: Kolejki komunikatów

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Wykład 1. Systemy przekazywania wiadomości z założeniem bezbłędności działania

Programowanie współbieżne Wykład 2. Iwona Kochańska

SYSTEMY ROZPROSZONE Problem synchronizacji zegarów

Algorytmy równoległe: prezentacja i ocena efektywności prostych algorytmów dla systemów równoległych

REGULAMIN OTWIERANIA I PROWADZENIA EFEKTYWNEGO KONTA OSZCZĘDNOŚCIOWEGO EKO PROFIT I ieko PROFIT W ZŁOTYCH DLA OSÓB FIZYCZNYCH W BANKU SPÓŁDZIELCZYM W

Przesyłania danych przez protokół TCP/IP

Zdalne wywołanie procedur. Krzysztof Banaś Systemy rozproszone 1

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010

Mechanizmy rozgłaszania niezawodnego

Wzajemne wykluczanie i zakleszczenie

Aplikacja Sieciowa wątki po stronie klienta

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

(86) Data i numer zgłoszenia międzynarodowego: , PCT/DE01/02954 (87) Data i numer publikacji zgłoszenia międzynarodowego:

5. Algorytm genetyczny przykład zastosowania

ARP Address Resolution Protocol (RFC 826)

Problem detekcji zakończenia (II)

Komunikacja za pomocą potoków. Tomasz Borzyszkowski

Czas wirtualny, złożoność algorytmów

Technologie informacyjne (5) Zdzisław Szyjewski

Problem detekcji zakończenia

Losowość w rozproszonym modelu

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Programowanie równoległe i rozproszone. Monitory i zmienne warunku. Krzysztof Banaś Programowanie równoległe i rozproszone 1

Instrukcja logowania i realizacji podstawowych transakcji w systemie bankowości internetowej dla klientów biznesowych BusinessPro.

dr inż. Jarosław Forenc

SEGMENT TCP CZ. II. Suma kontrolna (ang. Checksum) liczona dla danych jak i nagłówka, weryfikowana po stronie odbiorczej

Topologie sieci lokalnych

Algorytm Dijkstry znajdowania najkrótszej ścieżki w grafie

Programowanie w językach asemblera i C

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

Replikacje. dr inż. Dziwiński Piotr Katedra Inżynierii Komputerowej. Kontakt:

UMOWA NR SKO Nr 342/ /2014

Ćwiczenia 3: Specyfikacja wymagań Pytania:

Przetwarzanie rozproszone

Uproszczony opis obsługi ruchu w węźle IP. Trasa routingu. Warunek:

Programowanie współbieżne i rozproszone

Integrator ze sklepem internetowym (dodatek do Sage Symfonia ERP Handel)

Program dla praktyki lekarskiej

Lekcja 8, 9 i 10. Konspekt lekcji Poczta elektroniczna. Materiał z podręcznika: Rozdział 5. Poczta elektroniczna

Konsorcjum FEN Sp. z o.o. ul. Dąbrowskiego 273A, Poznań Mateusz Zapotoczny support [at] fen.pl

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP (96) Data i numer zgłoszenia patentu europejskiego:

Systemy operacyjne III

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Wstęp. Historia i przykłady przetwarzania współbieżnego, równoległego i rozproszonego. Przetwarzanie współbieżne, równoległe i rozproszone

Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1

Problem detekcji zakończenia (I)

Wykład Nr Sieci bezprzewodowe 2. Monitorowanie sieci - polecenia

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

LICZNIKI PODZIAŁ I PARAMETRY

1. Kim jesteśmy. 2. Katalog usług i umowy SLA. 3. Organizacja obsługi. 4. Typy zgłoszeń. 5. Ankiety. 6. Obsługa systemu HelpDesk.

Rozszerzenia sieci Petriego

Skrócona instrukcja korzystania z Platformy Zdalnej Edukacji w Gliwickiej Wyższej Szkole Przedsiębiorczości

Wzorcowy załącznik techniczny, do umowy w sprawie przesyłania faktur elektronicznych pomiędzy Firmą A oraz Firmą B

Pomoc dla użytkowników systemu asix 6. Strategia buforowa

Replikacja bazy danych polega na kopiowaniu i przesyłaniu danych lub obiektów bazodanowych między serwerami oraz na zsynchronizowaniu tych danych w

INSTRUKCJA KROK PO KROKU Z UWZGLĘDNIENIEM ROLI

Instalacja rozwiązania Uruchomienie rozwiązania w systemie Sage Konfiguracja dodatku Ustawienia dodatkowe rozwiązania...

Część 3. Układy sekwencyjne. Układy sekwencyjne i układy iteracyjne - grafy stanów TCiM Wydział EAIiIB Katedra EiASPE 1

Detekcja zakleszczenia (2)

REGULAMIN OTWIERANIA I PROWADZENIA EFEKTYWNEGO KONTA OSZCZĘDNOŚCIOWEGO EKO PROFIT I ieko PROFIT W ZŁOTYCH DLA OSÓB FIZYCZNYCH W BANKU SPÓŁDZIELCZYM W

Zdalne wywoływanie procedur RPC

Zdalne wywoływanie procedur RPC

Systemy operacyjne III

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Laboratorium Sieci Komputerowych - 2

Sławomir Kulesza. Projektowanie automatów asynchronicznych

TRX API opis funkcji interfejsu

Współpraca z platformą Emp@tia. dokumentacja techniczna

Transkrypt:

Stan globalny Krzysztof Banaś Systemy rozproszone 1

Stan globalny Z problemem globalnego czasu jest związany także problem globalnego stanu: interesuje nas stan systemu rozproszonego w konkretnej pojedynczej chwili czasu przykład kiedy jest to istotne, np. naliczanie procentów w banku: dwie filie, przelew z konta w filii A na konto w filii B brak czasu globalnego, jeśli zegary w A i B różnią się, może dojść do sytuacji, że procent nie zostanie naliczony ani w A, ani w B lub zostanie naliczony i w A, i w B inny przykład: rozproszone odśmiecanie Krzysztof Banaś Systemy rozproszone 2

Spójny stan globalny Przykład przelewu bankowego: rozważając szczegółowo stan systemu widać, że konieczne jest uwzględnienie stanu kanałów komunikacyjnych bez wprowadzenia czasu globalnego operacja taka jest trudna do realizacji jeśli pomijamy stan kanałów komunikacyjnych okazuje się, że stan procesów może być niezgodny ze stanem pożądanym W celu zdefiniowania poprawności stanu globalnego wprowadza się pojecie spójności Krzysztof Banaś Systemy rozproszone 3

Stan globalny Spójność stanu globalnego: stan globalny określamy jako kolekcję stanów lokalnych stan lokalny zapisujemy w pewnym konkretnym momencie stan lokalny zawiera informację lokalną oraz informację o wszystkich wysłanych i odebranych komunikatach przed zapisem stanu lokalnego dwa stany lokalne dwóch procesów w ramach stanu globalnego są w relacji przejściowej, jeśli istnieje komunikat wysłany z jednego procesu do drugiego i jeszcze nie odebrany przez ten drugi dwa stany lokalne dwóch procesów w ramach stanu globalnego są w relacji niespójności jeśli istnieje komunikat od jednego do drugiego, odebrany w drugim, ale jeszcze nie wysłany w pierwszym stan globalny jest spójny wtedy i tylko wtedy kiedy żadne dwa stany lokalne nie są w relacji niespójności stan globalny jest silnie spójny wtedy i tylko wtedy kiedy żadne dwa stany lokalne nie są ani w relacji niespójności, ani w relacji przejściowej Krzysztof Banaś Systemy rozproszone 4

Stan globalny Algorytm Chandy Lamporta pozwala zapisać sekwencję stanów lokalnych tworzących spójny stan globalny systemu rozproszonego uzyskany obraz systemu nazywany jest migawką (ujęciem, snapshot) algorytm zakłada, że procesy są połączone kanałami komunikacyjnymi tworzącymi silnie spójny graf skierowany przesyłanie komunikatów kanałem odbywa się zgodnie z porządkiem FIFO Krzysztof Banaś Systemy rozproszone 5

Algorytm Chandy Lamporta Proces rozpoczynający algorytm zapisuje swój stan lokalny i wysyła żeton do wszystkich procesów połączonych z jego wyjściami Proces P j, który odbiera żeton od procesu P i : jeśli jeszcze nie zapisał swojego stanu lokalnego zapisuje stan kanału P i P j jako pusty zapisuje stan lokalny wysyła żeton do wszystkich procesów połączonych z jego wyjściami jeśli już zapisał swój stan zapisuje stan kanału P i P j (wszystkie komunikaty odebrane przez P j od P i po zapisie stanu lokalnego przez P j, a przed odebraniem żetonu od P i ) Krzysztof Banaś Systemy rozproszone 6

Algorytm Chandy Lamporta Krzysztof Banaś Systemy rozproszone 7

Koordynacja działań w systemach rozproszonych Wzajemne wykluczanie w systemach rozproszonych centralny serwer dostępu rozproszone uzgadnianie z zastosowaniem zegarów logicznych pierścień z żetonem posiadacz żetonu może wejść do sekcji krytycznej Algorytmy elekcji wyboru jednego wyróżnionego procesu (dokonywane najczęściej w przypadkach awarii) algorytm tyrana każdy proces wysyła informację do procesów o wyższej randze i na podstawie odpowiedzi podejmuje decyzję (brak odpowiedzi oznacza, że ten proces zostaje wybrany) algorytm pierścieniowy w krążącej po pierścieniu informacji, każdy proces umieszcza swój identyfikator, jeśli jest większy niż aktualny na zakończenie proces zostaje ustalony Krzysztof Banaś Systemy rozproszone 8

Algorytm Ricart'a i Agrawala Inicjacja: stan := ZWOLNIONY Wejście do sekcji krytycznej: stan: = ŻĄDANY rozgłoszenie żądania do wszystkich pozostałych N-1 procesów T := znacznik czasowy żądania oczekiwanie, aż liczba odpowiedzi osiągnie N-1 stan := ZAMKNIĘTY Wyjście z sekcji krytycznej: stan := ZWOLNIONY odpowiedź na żądania ustawione w kolejce Krzysztof Banaś Systemy rozproszone 9

Algorytm Ricart'a i Agrawala Po otrzymaniu żądania ze znacznikiem czasowym (T i,p i ) (przez procesor p j mający lokalny licznik T) JEŻELI (stan = ZAMKNIĘTY lub ( stan = ŻĄDANY i (T,p j ) < (T i,p i ) ) ) { wstaw żądanie do kolejki (bez odpowiedzi) } WPP { odpowiedz niezwłocznie p i } Algorytm gwarantuje bezpieczeństwo i żywotność (przy braku awarii) Algorytm wymaga wymiany 2(N 1) komunikatów Krzysztof Banaś Systemy rozproszone 10

Algorytm Ricart'a i Agrawala z żetonem Do sekcji krytycznej wchodzi proces posiadający żeton Aby uzyskać żeton proces wysyła do wszystkich procesów ubiegających się o wejście do sekcji krytycznej żądanie zawierające jednocześnie znacznik czasowy (z identyfikatorem procesu) Początkowo żeton przydziela się dowolnemu procesorowi Po wyjściu z sekcji krytycznej proces przekazuje żeton jednemu z oczekujących procesów (w tym celu przeszukuje listę wszystkich procesów uczestniczących w obliczeniach, począwszy od swego numeru, z powrotem na początek) Krzysztof Banaś Systemy rozproszone 11

Algorytm Ricart'a i Agrawala z żetonem Każdy proces przechowuje tablicę zawierającą znaczniki czasowe żądań innych procesów (znajduje się w niej znacznik ostatniego żądania od danego procesu) Wewnątrz żetonu znajduje się inna tablica, w której procesy przechowują znacznik czasowy ostatniego zdarzenia posiadania żetonu przez siebie Każdy proces posiadający żeton może porównywać elementy obu tablic i ustalać, które procesy oczekują na wejście do sekcji krytycznej Krzysztof Banaś Systemy rozproszone 12

Algorytm Ricart'a i Agrawala z żetonem Algorytm w wersji z żetonem wymaga tylko n komunikatów (n 1 żądań i jedna odpowiedź) do uzyskania wejścia do sekcji krytycznej Awaria procesu nie posiadającego żetonu nie powoduje zakłócenia działania Krzysztof Banaś Systemy rozproszone 13

Koordynacja w systemach rozproszonych Krzysztof Banaś Systemy rozproszone 14

Pierścień z żetonem Pierścień z żetonem jest prostym sposobem rozwiązania problemu sekcji krytycznej Każdy z procesów zna identyfikator procesu poprzedzającego i następującego po nim w ten sposób procesy ułożone są w topologii pierścienia Żeton (początkowo przydzielony losowo) krąży dookoła pierścienia Wejście może uzyskać tylko proces posiadający aktualnie żeton Czas oczekiwania może być długi (czas przesłania n 1 komunikatów) Awaria procesu wymaga rekonfiguracji pierścienia Krzysztof Banaś Systemy rozproszone 15

Algorytmy elekcji Zakłada się, że każdy proces posiada identyfikator p i (>0) identyfikatory muszą być różne i całkowicie uporządkowane Każdy proces posiada też zmienną elekt, która przechowuje wartość 0 lub identyfikator procesu Na zakończenie algorytmu elekcji wszystkie uczestniczące w niej procesy, które kontynuują działanie, mają mieć tę samą wartość zmiennej elekt, równą największemu identyfikatorowi dla tej grupy procesów Krzysztof Banaś Systemy rozproszone 16

Algorytm Changa i Robertsa Procesy ułożone są w pierścień i wysyłają komunikaty tylko w jednym kierunku komunikaty zawierają wartość zmiennych: kandydat i wybrany Każdy proces może być w stanie: bierny nie uczestniczący lub czynny uczestniczący w elekcji Początkowo każdy proces ustala swój stan na bierny Proces bierny p i zmienia swój stan na czynny kiedy rozpoczyna elekcję (i wysyła swój identyfikator p i w komunikacie) lub kiedy otrzymuje komunikat z wartością kandydat (jeśli kandydat > p i wtedy przesyła dalej wartość kandydat, jeśli kandydat < p i wtedy podstawia kandydat:=p i i przesyła dalej nową wartość kandydat) Krzysztof Banaś Systemy rozproszone 17

Algorytm Changa i Robertsa Proces czynny p i kiedy otrzymuje komunikat z wartością kandydat wtedy: jeśli kandydat > p i przesyła dalej wartość kandydat jeśli kandydat < p i nie robi nic (ta własność jest istotna jeśli kilka procesów na raz rozpoczyna elekcję) wreszcie jeśli kandydat = p i proces ustawia swój stan na bierny, podstawia wybrany := p i i wysyła komunikat z wartością wybrany Proces czynny p i kiedy otrzymuje komunikat z wartością wybrany ustawia swój stan na bierny, przesyła komunikat dalej (chyba że sam jest wybranym) i kończy ustawiając swoją wartość elekt na otrzymaną wartość wybrany Krzysztof Banaś Systemy rozproszone 18

Algorytm Changa i Robertsa Algorytm gwarantuje wybór (w przypadku niezawodnego przesyłania komunikatów) Algorytm wymaga maksymalnie przesłania 3N 1 komunikatów Algorytm jest asynchroniczny (procesy nie odbierają informacji zwrotnej o dotarciu wysyłanego komunikatu) Procesy uczestniczące w algorytmie nie znają identyfikatorów innych procesów Wadą algorytmu jest nietolerowanie uszkodzeń Krzysztof Banaś Systemy rozproszone 19

Algorytm tyrana (Garcia Moliny) Procesy wysyłają trzy typy komunikatów: kandydat, odpowiedź i wybrany Proces rozpoczyna elekcję kiedy zorientuje się (na podstawie pomiarów czasu), że aktualny serwer uległ awarii. Wtedy: jeśli wie, że jego identyfikator jest największy ogłasza siebie wybranym i przesyła procesom o mniejszych identyfikatorach komunikat wybrany jeśli ma mniejszy identyfikator wtedy wysyła do wszystkich procesów o większych identyfikatorach komunikat kandydat Krzysztof Banaś Systemy rozproszone 20

Algorytm tyrana (Garcia Moliny) Proces, który wysłał komunikat kandydat: jeśli nie otrzymał żadnej odpowiedzi w ustalonym czasie, ogłasza siebie wybranym i przesyła procesom o mniejszych identyfikatorach komunikat wybrany jeśli otrzymuje komunikat odpowiedź wtedy oczekuje na komunikat wybrany, jeśli ten nie nadejdzie w ustalonym czasie rozpoczyna nową elekcję Proces, który otrzymał komunikat kandydat odsyła komunikat odpowiedź i rozpoczyna nową elekcję Proces, który otrzymał komunikat wybrany ustawia wartość identyfikatora nowego serwera na właśnie otrzymaną Krzysztof Banaś Systemy rozproszone 21

Algorytm Garcia Moliny Algorytm jest synchroniczny (procesy podejmują decyzję na podstawie pomiarów czasu komunikacji) Algorytm gwarantuje wybór (w przypadku niezawodnego i efektywnego przesyłania komunikatów) Algorytm wymaga maksymalnie przesłania O(N 2 ) komunikatów jeśli N 1 procesów rozpocznie jednocześnie elekcję Procesy uczestniczące w algorytmie muszą pierwotnie znać identyfikatory innych procesów (choć nie wiedzą, które procesy uległy awarii, a które uczestniczą w elekcji) Zaletą algorytmu jest dopuszczenie do awarii procesów, które to awarie nie uniemożliwiają dokonania wyboru Krzysztof Banaś Systemy rozproszone 22