Pr-1st-1.1-m07-Slajd30

Z Studia Informatyczne
Wersja z dnia 15:58, 7 wrz 2006 autorstwa Szopen (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

Niedeterminizm przetwarzania rozproszonego

Niedeterminizm przetwarzania rozproszonego


Na slajdzie tym widzimy różne realizacje przetwarzania rozproszonego klient-serwer jako wynik nieprzewidywalnych czasów transmisji. Są na nim przedstawione dwa procesy użytkowe P1 i P2, żądające realizacji usługi przez dwa serwery P3 i P4 . Proces P4 jest przy tym repliką procesu P3. Przyjmijmy ponadto, że dla prawidłowego działania procesów użytkowych muszą one korzystać z obu serwerów w trybie wzajemnego wykluczania. Aby to osiągnąć, każdy z procesów P1 i P2 wysyła komunikaty zawierające żądania, odpowiednio do obu serwerów, w celu uzyskania wyłącznego do nich dostępu. Ponieważ zdarzenia wysyłania żądań są współbieżne, a kanały wnoszą nieprzewidywalne opóźnienia, żądania mogą dotrzeć do serwerów w różnej kolejności. Jeśli przyjmiemy jeszcze, że procesy P1 i P2 mogą kontynuować działanie dopiero po otrzymaniu potwierdzeń od oby procesów P3 i P4, skutki niedeterminizmu transmisji mogą być bardzo istotne.

Na górnej części rysunku, w chwili τ1 (po zakończeniu przesyłania wszystkich wiadomości) został osiągnięty pewien stan Σ(τ1). w którym proces P1 może kontynuować działanie, a proces P2 oczekuje na zwolnienie serwerów przez P1. Stan ten można uznać za poprawny. Natomiast w dolnej części rysunku widzimy osiągnięcie pewnego stanu Σ(τ2), w którym proces P1 otrzymał potwierdzenie od P3, a proces P2 otrzymał potwierdzenie od P4. Dla każdego z procesów P1 i P2 z osobna, otrzymane potwierdzenia nie są wystarczające do kontynuacji działania i dalej zwolnienia potwierdzonych serwerów. Zauważmy też, że jeżeli inne, zewnętrzne w stosunku do P1, P2, P3 i P4, procesy nie wymuszą na P1 lub P2 zwolnienia serwerów, to wówczas zarówno serwery jak i procesy żądające usług pozostaną trwale zablokowane. W rozważanym przykładzie, wykrycie wystąpienia stanu Σ(τ2) odpowiadającego trwałej blokadzie wszystkich procesów, miałoby na celu zainicjowanie specjalnych działań prowadzących do osiągnięcia stanu, w którym dalsze poprawne przetwarzanie byłoby możliwe.


<< Poprzedni slajd | Spis treści | Następny slajd >>