Systemy Rozproszone Synchronizacja 2

Slides:



Advertisements
Podobne prezentacje
Przetwarzanie transakcyjne
Advertisements

Podstawowe pojęcia programowania współbieżnego
Mechanizmy pracy równoległej
Jarosław Kuchta Dokumentacja i Jakość Oprogramowania
Wykład nr 8: Zakleszczenia
Synchronizacja w systemach rozproszonych
SYSTEMY OPERACYJNE ZAKLESZCZENIA (BLOKADY)
Systemy rozproszone W. Bartkiewicz Wykład 11. Transakcje
Systemy rozproszone Synchronizacja
Semafory Autorzy : Michał Winciorek Łukasz Jackowicz.
ALGORYTM Co to jest algorytm?
Zrównoleglanie programu sekwencyjnego
zarządzanie produkcją
Wykład nr 7: Synchronizacja procesów
Systemy operacyjne Wykład nr 4: Procesy Piotr Bilski.
Wykład 11 Prowadzący: dr Paweł Drozda
Wykład 10 Prowadzący: dr Paweł Drozda
Synchronizacja Rozdział 5.
Wykład 3 Wojciech Pieprzyca
Rozproszone bazy danych
Projektowanie i programowanie obiektowe II - Wykład IV
Wstęp do interpretacji algorytmów
ZARZĄDZANIE PROCESAMI
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.
Język Java Wielowątkowość.
Modele baz danych - spojrzenie na poziom fizyczny
Algorytmy Marek Pudełko
Wątki.
Diagramy czynności.
Zarządzanie transakcjami Wykład S. Kozielski. Zarządzanie transakcjami Transakcja – jedna lub więcej operacji na bazie danych stanowiących pewną logiczną
Architektura systemów wykorzystujących bazy danych (systemów bazodanowych) Wykład S. Kozielski.
? Rosnące potrzeby użytkowników Rozmiar problemu Czas Komputer domowy
Message-Driven Bean.
Systemy operacyjne.
Zasada działania komputera
Główne cechy systemu Integracja z systemem RCP Przejrzysty moduł raportowania pozwalający wyświetlać zarejestrowane zdjęcia wraz z raportem czasu pracy.
Automatyka i Robotyka Systemy czasu rzeczywistego Wykład 4.
Problem sekcji krytycznej
Buforowanie D e f i n i c j a.
Elżbieta Fiedziukiewicz
Wykład 7 Synchronizacja procesów i wątków
W ą t e k (lekki proces) thread.
Podstawy Przetwarzania Rozproszonego
Systemy rozproszone  Rozdzielenie obliczeń między wiele fizycznych procesorów.  Systemy luźno powiązane – każdy procesor ma lokalną pamięć; procesory.
Systemy operacyjne i sieci komputerowe
Temat 7: Instrukcje warunkowe
Algorytmika.
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Rozdział 1: Wprowadzenie do baz danych.
Diagram aktywności (czynności)
1 Zarządzanie transakcjami Przygotował Lech Banachowski na podstawie: 1.Raghu Ramakrishnan, Johannes Gehrke, Database Management Systems, McGrawHill, 2000.
Slajd 1© J.Rumiński Jacek Rumiński  Bazy danych Kontakt: Katedra Inżynierii Biomedycznej, pk. 106, tel.: , fax: ,
Diagram czynności Diagram czynności (activity diagram) służy do modelowania dynamicznych aspektów systemu. Diagram czynności przedstawia sekwencyjne lub.
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.
STEROWANIE WSPÓŁBIEŻNOŚCIĄ Prowadzący: mgr inż. Leszek Siwik Autorzy: Andrzej Mazur Jacek Roman Michał Pawłowski.
Wstęp do interpretacji algorytmów
Model warstwowy ISO-OSI
Wstęp do programowania Wykład 7
Architektura Rafał Hryniów. Architektura Wizja projektu systemu, którą dzielą twórcy Struktura komponentów systemu, ich powiązań oraz zasad i reguł określających.
ASP.NET Dostęp do bazy danych z poziomu kodu Elżbieta Mrówka-Matejewska.
Algorytmy. Co to jest algorytm? Przepis prowadzący do rozwiązania zadania.
Komponentowe i rozproszone (Web)Service Oriented Architecture.
Algorytmy, sposoby ich zapisu.1 Algorytm to uporządkowany opis postępowania przy rozwiązywaniu problemu z uwzględnieniem opisu danych oraz opisu kolejnych.
Przetwarzanie transakcyjne. Wprowadzenie (1) Baza danych – jest abstrakcyjnym odzwierciedleniem wybranego fragmentu rzeczywistości (ang. miniworld) mini.
Komponentowe systemy rozproszone
Wątki, programowanie współbieżne
Efektywność algorytmów
Projekt modułu BANK INTERNETOWY Moduł funkcji banku
Zarządzanie projektami
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
Modele baz danych - spojrzenie na poziom fizyczny
Zapis prezentacji:

Systemy Rozproszone Synchronizacja 2

Wzajemne wykluczanie Problem: Szereg procesów w systemie rozproszonym domaga się wyłącznego dostępu do jakiegoś zasobu. Podstawowe rozwiązania: scentralizowany serwer, w pełni rozproszone, bez wyraźnej topologii, w pełni rozproszone, z użyciem (logicznego) pierścienia.

Wzajemne wykluczanie : algorytm scentralizowany Proces 1 prosi koordynatora o pozwolenie na wejście do obszaru krytycznego. Udziela się zgody Proces 2 pyta o pozwolenie na wejście do tego samego obszaru krytycznego. Koordynator nie odpowiada. Kiedy proces 1 opuszcza obszar krytyczny, to informuje o tym koordynatora, a tamten odpowiada 2

Wzajemne wykluczanie: Algorytm Lamporta(1) - Wykorzystuje mechanizm synchronizacji zegarów lamporta -Zbiór żądań – zbiór procesów, od których wymagane są pozwolenia na wejście do sekcji krytycznej -Zbiór żądań w algorytmie Lamporta jest zbiorem wszystkich procesów -Każdy proces przechowuję kolejkę żądań sekcji krytycznej uszeregowanych według znaczników czasowych

Wzajemne wykluczanie: Algorytm Lamporta(2) 1. Żądanie sekcji krytycznej w procesie Pi - wysłanie żądania ze znacznikiem czasu(ts(i),i) do wszystkich procesów z zbioru Ri -dodanie żądania do kolejki -odesłanie odpowiedzi z znacznikiem czasu 2.Wejście do sekcji krytycznej gdy: -odpowiedz od wszystkich procesów Pj mają znaczniki czasowe (ts(j),i) większe od znacznika żądania -żądanie to jest na poczaątku kolejki żądającego 3. Zwalnianie sekcji krytycznej -wysłanie wiadomości ZWOLNIJ do innych procesów -usunięcie żądania z początku kolejki

Wzajemne wykluczanie:Algorytm Lamporta(3)

Wzajemne wykluczanie : Algorytm rozproszony (1) Algorytm Ricarta & Agrawali Ten sam co Lamporta z tą róznicą że potwierdzenia nie są wysyłane. Zamiast tego, odpowiedzi (tj. pozwolenia) udzielane są tylko wtedy kiedy: Proces-odbiorca nie jest zainteresowany w zasobie dzielonym lub Proces-odbiorca czeka na dzielony zasób, ale ma niższy priorytet (wynikający np. z porównania znaczników czasowych). w pozostałych przypadkach, udzielenie odpowiedzi jest odkładane, a są wykonywane jakieś lokalne działania.

Wzajemne wykluczanie : Algorytm rozproszony (2) Dwa procesy chcą wejść do tego samego obszaru krytycznego w tym samym momencie. Proces 0 ma najniższy znacznik czasowy, więc wygrywa. Kiedy proces 0 zrobił swoje, to wysyła również OK, więc 2 może teraz wejść do obszaru krytycznego.

Wzajemne wykluczanie: Algorytm Meakawy(1) Algorytm Maekawy różni się od poprzednich algorytmów 1) Jeżeli proces chce wejśc do sekcji krytycznej, potrzebuje pozwolenia tylko od pewnego podzbioru wszystkich procesów 2)Proces może naraz wysłąć tylko jedną odpowiedź

Wzajmne wykluczanie: Algorytm Meakwy(2) Warunki które musi spełniać zbiór żądań(N-liczba procesów): M1: (Vi Vj : i != j, 1 <= i,j <= N :: Ri n Rj != 0) M2: (Vi : 1 <= i <= N :: Si E Ri) M3: (Vi :1 <= i <= N:: |Ri| = K) M4: Dowolony proces Pj zawarty jest w K zbiorach Ri, 1<=i,j<=N Meakawa ustalił następująca relację pomiędzy N i K: N =K(K-1)+1 Realacja ta daje: |Ri| = sqrt(N)

Wzajemne wykluczanie: Algorytm Meakawy(3) 1. Żądanie sekcji krytycznej -Wysłanie przez Pi żądania do wszystkich procesów w Ri - Odesłanie odpowiedzi lub odłożenie żądania do kolejki 2. Wejście do sekcji po otrzymaniu odpowiedzi od wszystkich procesów ze zbioru Ri 3. Zwalnianie sekcji krytycznej -Wysyłanie wiadomości ZWOLNIJ do wszystkich procesów z Ri -Wysyłanie odpowiedzi do kolejnych procesów,które są w kolejce

Wzajemne wykluczanie: Algorytm Meakwy(4)

Wzajemne wykluczanie : Algorytm Token Ring organize processes in a logical ring, and let a token be passed between them. Procesy organizuje się w logiczny pierścień, między nimi może być przekazywany żeton (token). Ten, który ma żeton, może wejść do obszaru krytycznego (jeżeli ma takie życzenie). Nieuporządkowana grupa procesów w sieci. Pierścień logiczny zorganizowany programowo.

Wzajemne wykluczanie:Algorytm Raymonda(1) -Algorytm Raymonda używa struktury drzewa -Korzeniem drzewa jest proces,który posiada token pozwalający na wejście do sekcji krytycznej -Każdy proces dysponuje zmienną posiadacz, która wskazuje na kolejny proces na ścieżce prowadzącej do korzenia drzewa -Struktura zmienia się dynamiczne w zależności od posiadacza tokenu -Każdy proces w drzewie przechowuje kolejkę żądań sąsiednich procesów, które nie posiadały jeszcze tokenu

Wzajemne wykluczanie:Algorytm Raymonda(2) 1. Żądanie sekcji krytycznej -wysyłanie żądania wzdłuż ścieżki do korzenia i dodanie żądania do kolejki -odebranie żądania, wstawienie go do kolejki i przesłanie dalej wzdłuż ścieżki do korzenia -wysłanie żetonu przez korzeń do ubiegającego się procesu oraz aktualizacja zmiennej 'posiadacz' -odebranie tokenu, wyjęcie żądania z kolejki i wysłanie do procesu, który jest wskazany w tym żądaniu, aktualizacja zmiennej 'posiadacz'

Wzajemne wykluczanie:Algorytm Raymonda(3) 2. Proces wchodzi do sekcji krytycznej pod warunkiem, że otrzymał token, a jego żądanie jest na szczycie jego kolejki żądań 3.Zwalnianie sekcji krytycznej -przesłanie tokenu i aktualizacja kolejki oraz zmiennej 'posiadacz' -ewentualne przesłanie żądania, jeżeli kolejka żądań jest niepusta

Wzajemne wykluczanie: Algorytm Raymonda(4)

Wzajemne wykluczanie : porównanie Algorithm # Komunikatów na wejście/wyjście Opóźnienie przed wejściem (mierzone liczbą komunikatów) Problemy Scentralizowany 3 2 Awaria koordynatora Rozproszony 2 ( n – 1 ) Awaria dowolnego procesu Token ring 1 to  0 to n – 1 Utrata żetonu, awaria procesu Porównanie trzech algorytmów wzajemnego wykluczania

Rozproszone transakcje Model transakcji Właściwości ACID Klasyfikacja transakcji płaskie transakcje, zagnieżdżone transakcje, rozproszone transakcje. Sterowanie współbieżnością serializowalność, techniki synchronizacji blokowanie dwu-fazowe, pesymistyczne porządkowanie wg znaczników czasowych, optymistyczne porządkowanie wg znaczników czasowych.

Aktualizowanie taśmy głównej toleruje awarie Model transakcji (1) Aktualizowanie taśmy głównej toleruje awarie

Przykłady operacji dla transakcji Model transakcji (2) Przykłady operacji dla transakcji Operacja Opis BEGIN_TRANSACTION Zaznaczenie początku transakcji END_TRANSACTION Zakończenie transakcji i próba jej zatwierdzenia ABORT_TRANSACTION Likwidacja transakcji, odtworzenie starych wartości READ Czytanie danych z pliku, tabeli, lub inaczej WRITE Zapisywanie danych do pliku, tabeli, lub inaczej

Model transakcji (3) Transakcja potwierdzonych rezerwacji trzech lotów BEGIN_TRANSACTION reserve WP -> JFK; reserve JFK -> Nairobi; reserve Nairobi -> Malindi; END_TRANSACTION (a) BEGIN_TRANSACTION reserve WP -> JFK; reserve JFK -> Nairobi; reserve Nairobi -> Malindi full => ABORT_TRANSACTION (b) Transakcja potwierdzonych rezerwacji trzech lotów Transakcja zaniechana wskutek niemożności zarezerwowania trzeciego lotu

Właściwości ACID Model: Transakcja - zbiór operacji na stanie obiektu (baza danych, złożony obiekt, itd), które spełnia następujące właściwości: Niepodzielność (Atomicity): Wszystkie operacje albo się udają, albo żadna z nich. Jeżeli transakcja się nie powiedzie, stan obiektu pozostanie bez wpływu ze strony transakcji. Spójność (Consistency): Transakcja realizuje ważne przejście stanu. Nie wyklucza to możliwości nieważnych, przejściowych stanów w trakcie realizacji transakcji. Izolacja (Isolation): Współbieżne transakcje nie koliduje ze sobą. Każdej transakcji T wydaje się, że inne transakcje występują albo przed T, albo po T, ale nigdy oba. Trwałość (Durability): Po realizacji transakcji, jej skutki są stałe: zmiany stanu przetrwają awarie.

Klasyfikacja transakcji Płaskie transakcje: Najbardziej znany typ: sekwencja operacji która spełnia właściwości ACID. Transakcje zagnieżdżone: Hierarchia transakcji, która pozwala (1) współbieżnie przetwarzać pod- transakcje, oraz (2) odtworzenie w ramach pod- transakcji. Rozproszone transakcje: (Płaska) transakcja wykonywana na rozproszonych danych => często implementowana jako dwupoziomowa zagnieżdżona transakcja z jedną pod-transakcją przypadającą na węzeł.

Płaskie transakcje - ograniczenia nie pozwalają na zatwierdzenie lub zaniechanie częściowych wyników, mocna strana właściwości niepodzielności płaskiej transakcji jest jednocześnie jej słabą stroną, rozwiązanie: użycie zagnieżdżonych transakcji, trudne scenariusze: pod-transakcja zatwierdzona ale nadrzędna transakcja zaniechana, jeśli pod-transakcja wnioskuje zatwierdzenie i rozpoczęła się nowa pod-transakcja, to druga powinna mieć wyniki pierwszej pod-transakcji.

Rozproszone transakcje zagnieżdżona transakcja logicznie jest dekomponowana na hierarchię pod-transakcji, rozproszona transakcja logicznie płaska, niepodzielna transakcja która operuje na rozproszonych danych. Osobne rozproszone algorytmy potrzebne do: zarządzania blokowaniem danych, zatwierdzania całej transakcji.

Implementacja transakcji Prywatna przestrzeń robocza użycie prywatnej przestrzeni roboczej, za której pośrednictwem klient dostaje własną kopię (części) bazy danych. Kiedy coś jest nie tak kopia jest likwidowana, w przeciwnym wypadku zatwierdza się zmiany w oryginale, optimalizacja poprzez nie pozyskiwanie wszystkiego. Rejestrowanie z wyprzedzeniem (writeahead log) mechanizm w którym zapisywane zmiany umożliwiają wycofanie (roll back) gdy coś dzieje się nie tak.

Implementacja transakcji: Prywatna przestrzeń robocza Indeks i bloki dyskowe trzy-blokowego pliku Sytuacja po zmodyfikowaniu przez transakcję bloku 0 i dodaniu bloku 3 Stan po zatwierdzeniu

Implementacja transakcji : rejestracja z wyprzedzeniem x = 0; y = 0; BEGIN_TRANSACTION; x = x + 1; y = y + 2 x = y * y; END_TRANSACTION; (a) Rejestr [x = 0 / 1] (b) [y = 0/2] (c) [x = 1/4] (d) a) Transakcja b) – d) Rejestr przed wykonaniem każdej instrukcji

Sterowanie współbieżnością (1) Organizacja zarządców obsługi transakcji

Sterowanie współbieżnością (2) Organizacja zarządców obsługi rozproszonych transakcji.

Serializowalność (1) a) – c) Trzy transakcje T1, T2, i T3 BEGIN_TRANSACTION x = 0; x = x + 1; END_TRANSACTION (a) BEGIN_TRANSACTION x = 0; x = x + 2; END_TRANSACTION (b) BEGIN_TRANSACTION x = 0; x = x + 3; END_TRANSACTION (c) Plan 1 x = 0; x = x + 1; x = 0; x = x + 2; x = 0; x = x + 3 Dopuszczalny Plan 2 x = 0; x = 0; x = x + 1; x = x + 2; x = 0; x = x + 3; Plan 3 x = 0; x = 0; x = x + 1; x = 0; x = x + 2; x = x + 3; Niedozwolony (d) a) – c) Trzy transakcje T1, T2, i T3 d) Możliwe plany

Serializowalność (2) Rozważmy zbiór E transakcji T1, ..., Tn. Celem jest przeprowadzenie serializowalnego wykonania E: transakcje w E są wykonywane ewentualnie współbieżnie zgodnie z jakimś planem S. plan S jest ekwiwalentem jakiegoś w pełni uporządkowanego wykonania T1, ..., Tn. Ponieważ nie wchodzimy w szczegóły obliczeń w ramach transakcji, transakcję można zamodelować jako zarejestrowane operacje read i write. Dwie operacje OPER( Ti, x) i OPER( Tj, x) mogą działać na tym samym elemencie danych x, i na poziomie zarządcy danych na podstawie zbioru rekordów można wywnioskować konflikt(y): konflikt read-write (rw): jedna operacja to read, a druga to write na x, Konflikt write-write (ww): obie operacje to write na x.

Techniki synchronizacji Dwufazowy zamek Przed czytaniem lub zapisem elementu danych, musi być uzyskany zamek. Po oddaniu zamka, transakcja nie może uzyskać innych żadnych zamków. Uporządkowanie wg znaczników czasowych Operacje w transakcji są wyposażone w znaczniki czasu, zarządcy danych są zmuszeni do obsługi operacji w kolejności znaczników czasowych. Optimistyczne sterowanie Don't prevent things from going wrong, but correct the situation if conflicts actually did happen. Basic assumption: you can pull it off in most cases. Nie wtrącamy się, jak coś jest nie tak, ale naprawiamy sytuację, jeżeli konflikty faktycznie miały miejsce. Podstawowe założenie: można odkładać synchronizację w większości przypadków.

Dwufazowe blokowanie (1) klienci wykonują w ramach transakcji tylko operacje READ i WRITE, zamki są przydzielane i zwalniane tylko przez planistę, celem polityki blokowania jest jest unikanie konfliktów między operacjami. gdy klient żąda wykonania OPER(Ti,x), planista sprawdza czy nie zachodzi konflikt z operacją OPER(Tj,x) od jakiegoś innego klienta. Jeśli konflikt nie grozi, to jest udzielany LOCK(Ti,x), w przeciwnym wypadku odkładamy wykonywanie OPER(Ti,x). konfliktujące operacje są wykonywane w tej samej kolejności w jakiej są udzielane zamki. jeśki LOCK(Ti,x) został udzielony, nie oddajemy zamka póki OPER(Ti,x) nie zostanie wykonana przez zarządcę danych. jeśli RELEASE(Ti,x) miało miejsce, Ti nie dostanie więcej zamków.

Dwufazowe blokowanie (2)

Dwufazowe blokowanie (3) Scentralizowane 2PL: Jedno stanowisko zarządza wszystkimi blokadami, 2PL z kopią podstawową: Dla każdej danej określamy jej kopię podstawową do obsługi jej zamków. Dane niekonieczne są replikowane, Rozproszone 2PL: Zakładamy że dane mogą być repikowane. Planiści dbają nie tylko o nakładanie i zdejmowanie zamków,, ale też o przekazywanie operacji lokalnym zarządcom danych. Problemy możliwe zakleszczenie - kolejność żądań, wykrywanie zakleszczeń, schemat timeout’u , kaskadowe zaniechania - ścisłe dwufazowe blokowanie.

Dwufazowe blokowanie (4) Ścisłe dwufazowe blokowanie

Pesymistyczne porządkowanie wg znaczników czasu (1) każda transakcja T posiada znacznik czasowy ts(T), znaczniki czasowe są unikatowe (algorytm Lamport‘a), każda operacja, stanowi część T, ze znacznikiem czasowym ts(T), każda dana x ma znacznik czasowy tsRD(x) operacji read oraz znacznik czasowy tsWR(x) operacji write jeśli operacje wchodzą w konflikt, zarządca danych przetwarza operację z najmniejszym znacznikiem czasowym, w porównaniu z blokowaniem: zaniechania są możliwe ale zakleszczenia są wyeliminowane. Przykład: a. – d. – T2 probuje zapisać daną, e. – f. – T2 próbuje odczytać daną.

Pesymistyczne porządkowanie wg znaczników czasu (2)

Optymistyczne porządkowanie wg znaczników czasu konflikty są stosunkowo rzadkie, idziemy do przodu z realizacją działań, konflikty rozwiążemy później, rejestrujemy które elementy danych były czytane i zapisywane (prywatne obszary robocze, kopie), sprawdamy możliwe konflikty w momencie zatwierdzania, brak zakleszczeń przy maksymalnej równoległości, w warunkach dużego obciążenia, prawdopodobieństwo awarii (i zaniechania) znacznie wzrasta, głównie w systemach nierozproszonych, rzadko stosowane w systemach komercyjnych lub prototypowych.

Zakleszczenia -Zakleszczenia pojawiają się, gdy proces chce mieć na wyłączność dostęp do pewnego zasobu, ale nie może go otrzymać i w wyniku zostaje zablokowany Warunki konieczne zakleszczenia: -wzajemne wykluczanie -istnienie procesu który blokuje zasób, a jednocześnie sam czeka na zasób blokowany przez inny proces -brak wywłaszczania zasobów -czekanie cykliczne

Zakleszczenia: Strategie postępowania z zakleszczeniami Sposoby postępowania z zakleszczeniami -niedopuszczanie do zakleszczeń -dopuszczanie do zakleszczeń i późniejsze ich usuwania -ignorowanie zakleszczeń Metody niedopuszczania do zakleszczeń -zapobieganie zakleszczeniom -unikanie zakleszczeń

Zakleszczenia: zapobieganie zakleszczeniom w systemach rozproszonych -Przydział priorytetów dla procesów przy dostępie do zasobów -Zastosowanie znaczników czasowych – możliwość pozbycia się problemu zagłodzenia procesów o niskich priorytetach. Metody: 1)Czekanie albo śmierć 2) Zranienie albo czekanie -Wadą powyższych algorytmów jest występowanie niepotrzebnych wywłąszczeń

Zakleszczenia:Wykrywanie zakleszczeń -Do wykrywania zakleszczeń używa się grafu oczekiwania, który reprezentuje stan przydziału zasobów -Jeżeli stan przedstawiony przez graf dotyczy całego systemu rozproszonego mówimy o globalnym grafie oczekiwania -Jeżeli stan, który reprezentuje graf dotyczy tylko danego stanowiska, to jest to lokalny graf oczekiwania

Zakleszczenia:Podejście scentralizowane(1) -Kontrole nas systemem sprawuje koordynator wykrywania zakleszczeń -Zadaniem koordynatora jest konstruowanie globalnego grafu oczekiwania na podstawie informacji o lokalnych grafach oczekiwania i wykrywanie zakleszczeń -sposoby konstruowania globalnego grafu oczekiwania: 1)przy każdej zmianie grafów lokalnych 2)po uzbieraniu odpowiedniej liczby zmian w grafach lokalnych 3)przy uruchamianiu algorytmu wykrywania Zakleszczeń -Problem fałszywych cykli i niepotrzebnych wywołań

Zakleszczenia:Podejście scentralizowane (2)

Zakleszczenia:Podejście Rozproszone(1) -Za wykrywanie zakleszczeń jest odpowiedzialnych wiele procesów -W podejściu rozproszonych do lokalnego grafu oczekiwania wprowadzono dodatkowy wierzchołek 'Pzew', który reprezentuje powiązanie lokalnych procesów z zasobami przechowywanymi przez procesy na innych stanowiskach -Każde stanowisko buduje pewną część globalnego grafu oczekiwania -Wystąpienie zakleszczenie jest stwierdzane w momencie wykrycia na którymś ze stanowisk cyklu, który nie zawiera wierzchołka 'Pzew'

Zakleszczeni: Podejście rozproszone(2)