Pr-1st-1.1-m01-Slajd04
Problemy związane z konstrukcją systemów rozproszonych
Pełne wykorzystanie powyższych cech systemów rozproszonych wymaga jednak efektywnego rozwiązania wielu problemów. Podstawowa trudność związana jest z konstrukcją poprawnych, efektywnych i niezawodnych algorytmów rozproszonych opisujących procesy rozproszone. Charakterystyczny dla systemów rozproszonych asynchronizm komunikacji i działania procesów implikuje niedeterminizm przetwarzania. Dodatkowo brak wspólnej pamięci ogranicza dostępne wprost mechanizmy komunikacji i synchronizacji. Dlatego też konstrukcja i weryfikacja procesów (algorytmów) rozproszonych ma swoją specyfikę i rodzi wiele trudnych problemów, takich jak:
- optymalne zrównoleglenie algorytmów przetwarzania;
- ocena poprawności i efektywności algorytmów rozproszonych;
- alokacja zasobów rozproszonych;
- synchronizacja procesów;
- ocena globalnego stanu przetwarzania;
- realizacja zaawansowanych modeli przetwarzania;
- niezawodność;
- bezpieczeństwo.
Jak wiadomo, problem zrównoleglenia sprowadza się do takiej transformacji algorytmu rozwiązywania zadania obliczeniowego w zbiór wzajemnie powiązanych procesów (wątków) wykonywanych równolegle albo sekwencyjnie, by zminimalizować najdłuższą ścieżkę obliczeń sekwencyjnych, abstrahując od ograniczeń fizycznych i funkcjonalnych rzeczywistego środowiska przetwarzania.
Trudność oceny poprawności i efektywności algorytmów rozproszonych związana jest z koniecznością analizy wszelkich możliwych realizacji niedeterministycznego w ogólności algorytmu rozproszonego.
Problem alokacji zasobów polega na takim przydziale (alokacji) dostępnych zasobów (procesorów, pamięci, urządzeń wejścia/wyjścia, danych, programów itd.) do procesów (zadań), by przy spełnieniu przyjętych bądź narzuconych warunków podzielności i ograniczeń kolejnościowych, zoptymalizować wybrane kryterium efektywności.
Problem synchronizacji procesów, związany w ogólności z kooperacją procesów lub ich współzawodnictwem o dostęp do wspólnych zasobów, polega na realizacji w asynchronicznym środowisku rozproszonym mechanizmów umożliwiających wzajemne oddziaływanie procesów na ich względne prędkości przetwarzania, w celu dochowania ograniczeń kolejnościowych i zagwarantowania poprawności obliczeń.
Problem oceny stanu globalnego polega natomiast na wyznaczaniu wartości parametrów lub predykatów związanych z globalnymi stanami procesów rozproszonych. W asynchronicznym środowisku rozproszonym wyznaczanie stanu globalnego jest trudne i w ogólności niemożliwe bez wstrzymywania przetwarzania.
Problem realizacji zaawansowanych modeli przetwarzania sprowadza się do transparentnej realizacji w środowisku rozproszonym systemu stosowniejszego dla danego zastosowania lub wygodniejszego z punktu widzenia użytkownika (rozproszona pamięć współdzielona, synchronizm przetwarzania lub komunikacji, przetwarzanie transakcyjne itp.).
Problemy niezawodności i bezpieczeństwa związane są z potrzebą zagwarantowania wymaganego poziomu jakości pracy systemu niezależnie od nieuniknionych błędów, przypadkowych lub celowych prób zniszczenia systemu, czy naruszenia poufności i autentyczności informacji.