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.

Slides:



Advertisements
Podobne prezentacje
Metody badania stabilności Lapunowa
Advertisements

Związki w UML.
Podstawowe pojęcia programowania współbieżnego
Mechanizmy pracy równoległej
11. Różniczkowanie funkcji złożonej
Wykład 10 Metody Analizy Programów Specyfikacja Struktur Danych
Wykład 6 Najkrótsza ścieżka w grafie z jednym źródłem
Synchronizacja w systemach rozproszonych
Systemy rozproszone Synchronizacja
Semafory Autorzy : Michał Winciorek Łukasz Jackowicz.
Badania operacyjne. Wykład 2
PRZERZUTNIKI W aktualnie produkowanych przerzutnikach scalonych TTL wyróżnia się dwa podstawowe rodzaje wejść informacyjnych: - wejścia asynchroniczne,
Liczby Pierwsze - algorytmy
ZŁOŻONOŚĆ OBLICZENIOWA
GRAFY PLANARNE To grafy, które można narysować na płaszczyźnie tak, by krawędzie nie przecinały się (poza swoimi końcami). Na przykład K_4, ale nie K_5.
Urządzenia sieciowe Topologie sieci Standardy sieci Koniec.
ANALITYCZNE MODELE SYSTEMÓW KOLEJKOWYCH
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
Synchronizacja Rozdział 5.
Komunikaty sterujące zestawu protokołów TCP/IP
Systemy czasu rzeczywistego Podstawowe pojęcia, cykl tworzenia oprogramowania W uproszczeniu system czasu rzeczywistego jest określany jako system komputerowy,
Sieci Hopfielda.
Wybrane protokoły aplikacyjne TCP/IP
ZARZĄDZANIE PROCESAMI
Programowanie współbieżne i rozproszone
8. LOGIKA TEMPORALNA Składnia zdaniowej logiki temporalnej:
Diagramy czynności.
Zależności funkcyjne.
Wysokowydajne interfejsy do systemu PI Paweł Maćków.
O relacjach i algorytmach
Systemy Rozproszone Synchronizacja 2
Metody Lapunowa badania stabilności
Badania operacyjne Wykład 5.
A. Sumionka. Starodawna gra marynarska; Gra dwu i wieloosobowa; Gracze wykonują ruchy naprzemian; Złożona ze stosów, w których znajduje się pewna ilość
Protokół drzewa opinającego
Języki i automaty część 3.
Wykład IV Protokoły BOOTP oraz DHCP.
Problem sekcji krytycznej
Algorytmy.
Model relacyjny.
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.
Wykład 7 Synchronizacja procesów i wątków
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.
Obliczalność czyli co da się policzyć i jak Model obliczeń maszyna licznikowa dr Kamila Barylska.
Temat 3: Integralność danych. Integralność danych, określana również mianem spójności danych, jest to funkcja SZBD, która gwarantuje, że dane nie zostaną.
Algorytmy i Struktury Danych
Systemy operacyjne i sieci komputerowe
Systemy informatyczne
Przerzutniki bistabilne
DWhisper Komunikator internetowy bez centralnego serwera.
Andrzej Majkowski 1 informatyka +. 2 Bezpieczeństwo protokołu HTTP Paweł Perekietka.
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.
Metody komunikacji i synchronizacji w obliczeniach równoległych Michał Radziszewski.
Warstwowe sieci jednokierunkowe – perceptrony wielowarstwowe
Model warstwowy ISO-OSI
Wstęp do programowania Wykład 7
Pojęcia podstawowe c.d. Rachunek podziałów Elementy teorii grafów
Algorytmy, sposoby ich zapisu.1 Algorytm to uporządkowany opis postępowania przy rozwiązywaniu problemu z uwzględnieniem opisu danych oraz opisu kolejnych.
Czym będziemy się dziś zajmować? System: ➢ wspomagający kontrolowanie ruchu kolejowego; ➢ w początkowej fazie rozwoju; ➢ złożony z dwóch konwerterów, pozwalających.
Matematyka przed egzaminem czyli samouczek dla każdego
materiały dla uczestników
Efektywność algorytmów
Liczby pierwsze: szukanie, rozmieszczenie, zastosowanie, ciekawostki. Liczby pierwsze: szukanie, rozmieszczenie, zastosowanie, ciekawostki. Kinga Cichoń.
PODSTAWY PRZEDSIĘBIORCZOŚCI
Zarządzanie projektami
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
Zapis prezentacji:

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 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 każda maszyna może posiadać zegar chodzący z inną prędkością, każda maszyna może posiadać zegar chodzący z inną prędkością, zegary mogą się śpieszyć bądź spóźniać zegary mogą się śpieszyć bądź spóźniać

Wiele algorytmów i aplikacji w systemach liczących posługuje się pojęciem czasu i zegarem (np. make). W systemie scentralizowanym nie ma problemów z porządkowaniem zdarzeń w czasie. W systemie rozproszonym utrzymywanie pojęcia globalnego czasu jest zadaniem niebanalnym, gdyż każdy procesor posługuje się własnym lokalnym zegarem Wiele algorytmów i aplikacji w systemach liczących posługuje się pojęciem czasu i zegarem (np. make). W systemie scentralizowanym nie ma problemów z porządkowaniem zdarzeń w czasie. W systemie rozproszonym utrzymywanie pojęcia globalnego czasu jest zadaniem niebanalnym, gdyż każdy procesor posługuje się własnym lokalnym zegarem

Oczywiście w wielu zastosowaniach te rozbieżności czasów nie są istotne; niemniej jednak istnieje bardzo dużo propozycji zmierzających do synchronizacji zegarów Oczywiście w wielu zastosowaniach te rozbieżności czasów nie są istotne; niemniej jednak istnieje bardzo dużo propozycji zmierzających do synchronizacji zegarów algorytm Cristiana algorytm Cristiana algorytm synchronizacji zegarów Berkeley, algorytm synchronizacji zegarów Berkeley, protokoły NTP (ang. Network Time Protocol) protokoły NTP (ang. Network Time Protocol) DTS (ang. Distributed Time Service) DTS (ang. Distributed Time Service) W ogólności, czas wirtualny zależy tylko od zdarzeń zachodzących w systemie, a nie od wartości zegarów fizycznych W ogólności, czas wirtualny zależy tylko od zdarzeń zachodzących w systemie, a nie od wartości zegarów fizycznych

istotą zegarów logicznych jest żądanie zapewnienia, by każde zdarzenie w systemie posiadało własną, unikalną etykietę czasową istotą zegarów logicznych jest żądanie zapewnienia, by każde zdarzenie w systemie posiadało własną, unikalną etykietę czasową w szczególności by zdarzenie wysłania wiadomości miało zawsze etykietę czasową mniejszą niż zdarzenie odebrania wiadomości (by nie można było odbierać wiadomości z przyszłości) w szczególności by zdarzenie wysłania wiadomości miało zawsze etykietę czasową mniejszą niż zdarzenie odebrania wiadomości (by nie można było odbierać wiadomości z przyszłości) spełnienie tych wymagań jest warunkiem koniecznym poprawności niektórych algorytmów (na przykład wielu algorytmów wzajemnego wykluczania) spełnienie tych wymagań jest warunkiem koniecznym poprawności niektórych algorytmów (na przykład wielu algorytmów wzajemnego wykluczania)

W wielu zastosowaniach wystarczy wzajemna spójność różnych zegarach, ich zgodność z czasem rzeczywistych jest nieistotna. W tym kontekście mówimy o zegarach logicznych. Procesy nie muszą się zgodzić co do dokładnej wartości zegara, wystarczy im możliwość porządkowania zdarzeń w czasie. Pojęcie zegarów logicznych pochodzi od Lamporta. W wielu zastosowaniach wystarczy wzajemna spójność różnych zegarach, ich zgodność z czasem rzeczywistych jest nieistotna. W tym kontekście mówimy o zegarach logicznych. Procesy nie muszą się zgodzić co do dokładnej wartości zegara, wystarczy im możliwość porządkowania zdarzeń w czasie. Pojęcie zegarów logicznych pochodzi od Lamporta.

Implementacja: W każdym procesie Pi definiujemy zegar logiczny Ti W każdym procesie Pi definiujemy zegar logiczny Ti Zegar można zaimplementować w postaci prostego licznika, zwiększanego między wystąpieniami każdych dwóch kolejnych zdarzeń w procesie Zegar można zaimplementować w postaci prostego licznika, zwiększanego między wystąpieniami każdych dwóch kolejnych zdarzeń w procesie Jeśli a i b zaszły w procesie Pi i a->b, to Ci(a)- >Ci(b). Jeśli a i b zaszły w procesie Pi i a->b, to Ci(a)- >Ci(b). Jeśli a jest zdarzeniem wysłania komunikatu m przez proces Pi, to m niesie stempel Tm = Ci(a). Jeśli a jest zdarzeniem wysłania komunikatu m przez proces Pi, to m niesie stempel Tm = Ci(a). Pj po odebraniu m w chwili Cj uaktualnia swój czas: Cj' = max(Cj,Tm) + 1 Pj po odebraniu m w chwili Cj uaktualnia swój czas: Cj' = max(Cj,Tm) + 1

Wzajemne wykluczanie Założenia modelowe: System rozproszony składa się z N węzłów (1..N). Jeden węzeł odpowiada jednemu procesowi. System rozproszony składa się z N węzłów (1..N). Jeden węzeł odpowiada jednemu procesowi. Komunikaty wysyłane od jednego procesu do innego dochodzą w tym samym porządku. Komunikaty wysyłane od jednego procesu do innego dochodzą w tym samym porządku. Każdy komunikat dochodzi w skończonym czasie. Każdy komunikat dochodzi w skończonym czasie. Sieć jest w pełni połączona, każdy proces może wysłać bezpośrednio komunikat do każdego innego. Sieć jest w pełni połączona, każdy proces może wysłać bezpośrednio komunikat do każdego innego.

Niech Si oznacza zbiór procesów udzielających pozwolenia procesowi i. Niech Si oznacza zbiór procesów udzielających pozwolenia procesowi i. Wymagane własności algorytmów wzajemnego wykluczania: Wymagane własności algorytmów wzajemnego wykluczania: dla każdej pary indeksów i, j zbiory Si oraz Sj mają elementy wspólne. dla każdej pary indeksów i, j zbiory Si oraz Sj mają elementy wspólne.

Pożądane własności algorytmów wzajemnego wykluczania: Pożądane własności algorytmów wzajemnego wykluczania: Zbiory Si,..., SN są równoliczne. Zbiory Si,..., SN są równoliczne. Każdy proces j należy do takiej samej liczby zbiorów Si. Każdy proces j należy do takiej samej liczby zbiorów Si. Każdy proces i należy do Si. Każdy proces i należy do Si.

Algorytm scentralizowany W systemie istnieje jeden koordynator, tylko on może wyrazić zgodę na wejście procesu do sekcji krytycznej W systemie istnieje jeden koordynator, tylko on może wyrazić zgodę na wejście procesu do sekcji krytycznej Proces wysyła do koordynatora komunikat z żądaniem Proces wysyła do koordynatora komunikat z żądaniem Kiedy otrzyma od niego komunikat z odpowiedzią, wtedy może wejść do sekcji Kiedy otrzyma od niego komunikat z odpowiedzią, wtedy może wejść do sekcji Po wyjściu wysyła do koordynatora komunikat zwalniający. Po wyjściu wysyła do koordynatora komunikat zwalniający.

Koordynator po otrzymaniu żądania sprawdza stan sekcji Koordynator po otrzymaniu żądania sprawdza stan sekcji Jeśli sekcja jest wolna, to wysyła zgodę, wpp. wstawia żądanie do kolejki Jeśli sekcja jest wolna, to wysyła zgodę, wpp. wstawia żądanie do kolejki Po otrzymaniu komunikatu zwalniającego usuwa z kolejki jeden z komunikatów i wysyła zgodę do czekającego procesu. Po otrzymaniu komunikatu zwalniającego usuwa z kolejki jeden z komunikatów i wysyła zgodę do czekającego procesu. Jeśli koordynator ulegnie awarii, to jego miejsce musi zająć inny proces. Jeśli koordynator ulegnie awarii, to jego miejsce musi zająć inny proces.

Proces 1 prosi koordynatora o pozwolenie na wejście do sekcji krytycznej. Uzyskuje pozwolenie.

Proces 2 prosi o pozwolenie na wejście do tej samej sekcji krytycznej. Koordynator nie odpowiada

Kiedy proces 1 opuszcza sekcję krytyczną, zawiadamia o tym koordynatora, a ten wówczas wysyła procesowi 2 pozwolenie na wejście do sekcji.

Porównanie algorytmów wzajemnego wykluczania W przypadku krążącego żetonu, jeśli każdy proces stale chce wejść do sekcji krytycznej, to każde przesunięcie żetonu skutkuje jednym wejściem do sekcji i jednym wyjściem W przypadku krążącego żetonu, jeśli każdy proces stale chce wejść do sekcji krytycznej, to każde przesunięcie żetonu skutkuje jednym wejściem do sekcji i jednym wyjściem W przypadku odwrotnym - żaden proces nie chce wejść - żeton może krążyć w pierścieniu bardzo długo nim ktokolwiek wejdzie (liczba komunikatów przypadających na jedno wejście jest nieograniczona) W przypadku odwrotnym - żaden proces nie chce wejść - żeton może krążyć w pierścieniu bardzo długo nim ktokolwiek wejdzie (liczba komunikatów przypadających na jedno wejście jest nieograniczona)