Systemy rozproszone - wprowadzenie
Spis treści
Literatura
- A. Silberschatz, P. Galvin, rozdział 15 (z tej książki pochodzi część rysunków)
- G. Coulouris, J. Dollimore, T. Kindberg, rozdział 1-3.
- A. Tanenbaum, M. van Steen, rozdział 2 (z tej książki pochodzi część rysunków)
Wprowadzenie
System rozproszony jest zbiorem niezależnych komputerów (aspekt
sprzętowy), które z punktu widzenia użytkowników systemu sprawiają wrażenie
pojedynczego komputera (aspekt programowy).
System rozproszony jest zbiorem komputerów, które nie mają wspólnej
pamięci ani zegara.
System rozproszony jest zbiorem niezależnych komputerów połączonych
siecią komunikacyjną, która umożliwia wymianę komunikatów.
System rozproszony to termin służący do określenia szerokiej gamy
systemów komputerowych od systemów słabo powiązanych, takich jak
sieci rozległe, poprzez systemy silnie powiązane, takie jak
sieci lokalne, do systemów bardzo silnie powiązanych, takich
jak systemy wieloprocesorowe.
Zalety systemów rozproszonych
- Dzielenie zasobów (dane, urządzenia sprzętowe, jak np. drukarki,
dyski).
- Przyśpieszenie obliczeń (dzielenie obciążenia).
- Niezawodność (awaria jednego urządzenia nie powinna uniemożliwiać
działania systemu, lecz co najwyżej pogorszyć jego wydajność).
- Komunikacja (np. poczta elektroniczna).
- Ekonomiczność (system rozproszony może być tańszy niż
odpowiadający mu mocą obliczeniową system scentralizowany)
- Wewnętrzne rozproszenie (niektóre aplikacje są z natury rozproszone
i wymagają rozproszonych komputerów).
- Stopniowy wzrost (można stopniowo zwiększać moc obliczeniową
systemu; skalowalność to zdolność systemu do adaptowania się do
wzrastających zapotrzebowań).
Wady systemów rozproszonych
- Oprogramowanie (zdecydowanie bardziej złożone; wymaga opracowania
wspólnych standardów).
- Sieć (może ulec awarii lub zostać przeciążona).
- Bezpieczeństwo (komputer podłączony do sieci jest mniej bezpieczny).
Systemy rozproszone a systemy równoległe
Klasyfikacja systemów komputerowych wg Flynna (1972):
- SISD
- Single Instruction, Single Data Stream
- SIMD
- Single Instruction, Multiple Data Stream (systemy wektorowe)
- MISD
- Multiple Instruction, Single Data Stream - nie ma
- MIMD
- Multiple Instruction, Multiple Data Stream
Klasyfikacja architektur MIMD:
Komputery równoległe i rozproszone:
- silnie powiązane: wieloprocesory (pamięć dzielona)
- słabo powiązane: wielokomputery (pamięć prywatna)
Cechy systemów rozproszonych
Przezroczystość (ang. transparency)
- dostępu (sposobu dostępu i różnic w reprezentacji danych),
- położenia (zasobów sprzętowych i programowych),
- migracji (zasoby, np. pliki, mogą migrować, czyli zmieniać położenie
bez zmiany nazwy),
- relokacji (zasoby mogą migrować w trakcie używania),
- istnienia kopii (zasoby mogą istnieć w wielu kopiach dla zwiększenia
wydajności i/lub niezawodności),
- błędu (program zostanie dokończony bez względu na awarie),
- trwałości - ang. persistence (zasób - programowy - może być
w pamięci lub na dysku),
- współużytkowania (użytkownicy mogą wspólnie korzystać z zasobów),
- równoległości (obliczenia mogą przebiegać równolegle).
Niejednorodność (ang. heterogeneity)
- sprzętu komputerowego (różne architektury węzłów systemu
komputerowego),
- sieci (różne środki transmisji, sygnały, interfejsy sieciowe,
protokoły),
- oprogramowania.
Autonomiczność (ang. autonomy)
- wysoka (redundancja, niskie współużytkowanie zasobów, może
wymagać centralnego sterowania),
- niska (mniejsza elastyczność, większa zawodność).
Topologia systemu komputerowego
Kryteria oceny:
- koszt podstawowy - ile kosztuje połączenie różnych stanowisk
w jeden system?
- koszt komunikacji - ile trwa przesłanie komunikatu z jednego
stanowiska do innego?
- niezawodność - jeśli łącze lub stanowisko ulegnie awarii, to czy
pozostałe stanowiska pozostaną w kontakcie?
Połączenie pełne
- koszt podstawowy - rośnie wprost proporcjonalnie do kwadratu
liczby stanowisk,
- koszt komunikacji - komunikat pokonuje tylko jedno łącze,
- niezawodność - bardzo duża.
Połączenie częściowe
- koszt podstawowy - niższy niż dla sieci pełnej,
- koszt komunikacji - wysłanie komunikatu może wymagać przejścia
przez kilka stanowisk pośrednich,
- niezawodność - awaria jednego łącza może rozbić sieć.
Hierarchia
- koszt podstawowy - na ogół mniejszy niż dla sieci częściowej,
- koszt komunikacji - wyższy niż dla sieci pełnej,
- niezawodność - awaria dowolnego węzła (z wyjątkiem liścia)
powoduje na ogół rozbicie sieci.
Gwiazda
- koszt podstawowy - funkcja liniowa liczby stanowisk,
- koszt komunikacji - niski, ale węzeł centralny może być wąskim
gardłem,
- niezawodność - awaria stanowiska centralnego powoduje rozbicie
sieci.
Pierścień
- koszt podstawowy - funkcja liniowa liczby stanowisk,
- koszt komunikacji - może być wysoki,
- niezawodność - awaria stanowiska (lub łącza) powoduje
rozbicie sieci.
Szyna wielodostępna
- koszt podstawowy - funkcja liniowa liczby stanowisk,
- koszt komunikacji - dość niski,
- niezawodność - awaria stanowiska nie zakłóca komunikacji, awaria
szyny powoduje rozbicie sieci.
Typy sieci
Sieci lokalne (ang. LAN) - obejmują niewielki obszar
geograficzny (budynek, kilka sąsiadujących ze sobą budynków)
- szyna wielodostępna, sieć pierścieniowa lub gwiaździsta,
- prędkość rzędu 10 Mbitów/s, 100 Mbitów/s lub wyższa (1 Gbit/s),
- opóźnienia komunikacyjne i współczynnik błędów są niewielkie,
- wysokiej jakości kable (drogie): skrętka, światłowody,
- wspólne korzystanie z zasobów bardzo naturalne,
- rozgłaszanie jest tanie i szybkie,
- węzły - zwykle stacje robocze i komputery osobiste, kilka (niewiele)
komputerów typu mainframe.
Sieci globalne (ang. WAN) - obejmują duży obszar
geograficzny
- linie telefoniczne, łącza mikrofalowe, kanały satelitarne,
- prędkość rzędu 1.544-45 Mbit/s,
- duże opóźnienia i częste błędy w transmisji,
- kinie telefoniczne, łącza mikrofalowe, kanały satelitarne,
- złożone systemy zarządzania,
- rozgłaszanie zwykle wymaga wielu komunikatów,
- węzły - zwykle duży procent komputerów typu mainframe.
Komunikacja w systemach rozproszonych
Nadawanie nazw i rozpoznawanie nazw: jak dwa procesy mogą
"odszukać" się w sieci?
DNS (ang. Domain Name Service) - określa sposób nadawania
nazw komputerom macierzystym w sieci Internet.
Strategie wyboru trasy: którędy komunikaty są przesyłane przez sieć?
(wybór na podstawie tablicy tras - ang. routing table,
brama, ruter)
- trasa stała (ang. fixed routing) - droga od A do B jest
ustalona i zmienia się jedynie w przypadku sprzętowej awarii; zwykle
najkrótsza, brak dostosowania do zmian obciążenia, komunikaty dotrą w
kolejności wysłania,
- trasa wirtualna (ang. virtual circuit) - drogę z A do B
ustala się na okres jednej sesji; możliwość dostosowania do zmian obciążenia,
komunikaty dotrą w kolejności wysłania,
- trasa dynamiczna (ang. dynamic routing) - drogę z A bo B
wybiera się w chwili wysyłania komunikatu; zwykle wybiera się najmniej
obciążone łącze, komunikaty mogą docierać w innej kolejności - można je
numerować.
Strategie połączeń: jak dwa procesy wysyłają ciąg komunikatów,
czyli tworzą sesję komunikacji?
- komutowanie łączy (ang. circuit switching) - stałe fizyczne
połączenie na czas trwania komunikacji; analogia z połączeniem telefonicznym,
w tym czasie nie może z tego łącza korzystać żaden inny proces,
- komutowanie komunikatów (ang. message switching) - ustala
się czasowe łącze na czas przesyłania jednego komunikatu, łącza fizyczne
są przydzielane korespondentom dynamicznie, tym samym łączem można
wysyłać wiele komunikatów (od różnych użytkowników)
- komutowanie pakietów (ang. packet switching) - komunikaty
zmiennej długości dzieli się na pakiety o stałym rozmiarze, każdy pakiet
może być wysłany inną drogą, pakiety trzeba ponownie łączyć w komunikaty w
miejscu przeznaczenia.
Współzawodnictwo: jak rozwiązywać konflikty wynikające ze
współużytkowania sieci?
- CSMA/CD (ang. Carrier sense with multiple access and collision
detection) - stanowisko prowadzi nasłuch łącza; jeśli łącze jest wolne,
to rozpoczyna transmisję (dalej nasłuchując); jeśli wykryje kolizję, to
przestaje nadawać i generuje sygnał informujący o kolizji, po losowym czasie
próbuje znowu; niebezpieczeństwo wielu kolizji w przeciążonym systemie;
standard IEEE 802.3; używane w Ethernecie,
- przekazywanie żetonu (ang. token passing) - komunikat-żeton
krąży stale w sieci (zwykle pierścień); stanowisko, które chce wysłać komunikat
czeka na żeton, usuwa go z sieci, transmituje komunikat i ponownie przesyła
żeton; standard IEEE 802.5,
- przegródki na komunikaty (ang. message slots) - pewna
liczba stałej długości przegródek na komunikaty stale krąży w sieci (zwykle
pierścień); stanowisko czeka aż nadejdzie pusta przegródka, wstawia do niej
komunikat (ew. podzielony na pakiety) i informację kontrolną.
Protokoły komunikacyjne
Protokół - zbiór formalnych reguł i konwencji dotyczących formatu
i synchronizacji w czasie wymiany komunikatów między procesami.
Architektura sieci: podział na warstwy i protokoły.
Open System Interconnection (OSI) Reference Model of the International
Organization for Standarization (ISO) - czyli model ISO/OSI
- Warstwa fizyczna
Odpowiada za fizyczną transmisję bitów między dwoma warstwami łącza danych.
Zajmuje się synchronizacją na poziomie bitów i sygnałami zależnymi od
środka transmisji (jak fizycznie wygląda bit 1 i bit 0, jaka jest prędkość
transmisji w bitach/s, czy transmisja może przebiegać równocześnie w
dwóch kierunkach itp.)
- Warstwa łącza danych
Zajmuje się grupowaniem bitów w ramki i ich transmisją, wykrywaniem i
usuwaniem błędów (tworzy sumy kontrolne).
- Warstwa sieci
Zajmuje się ustalaniem tras pakietów w sieci, organizacją połączeń, obsługą
adresów, utrzymywaniem informacji o trasach i reagowaniem na zmieniające się
obciążenie. W tej warstwie działają rutery.
Protokół połączeniowy: X.25, protokół bezpołączeniowy: IP.
- Warstwa transportu
Dostarcza warstwie sesji niezawodne połączenie. Odpowiada za przesyłanie
komunikatów między klientami, dzielenie komunikatów na pakiety i łączenie
pakietów w komunikaty, pilnowanie kolejności pakietów, generowanie adresów
fizycznych. Protokół połączeniowy: TCP, protokół bezpołączeniowy:
UDP.
- Warstwa sesji
Ulepszona wersja warstwy transportu. Odpowiada za implementację sesji. Na tym
poziomie realizuje się RPC.
- Warstwa prezentacji
Odpowiada za pokonywanie różnic w formatach danych między różnymi stanowiskami
w sieci, za kompresję i kodowanie/dekodowanie danych, za konwersję znaków.
- Warstwa aplikacji
Odpowiada za bezpośrednią interakcję z użytkownikami, przesyłanie plików,
obsługę telnetu, poczty elektronicznej, rozproszonych baz danych.
- Każdy komputer w sieci musi zapewniać trzy najniższe warstwy.
- Każda warstwa przed wysłaniem dołącza do przesyłanej informacji pewien
nagłówek (ew. stopkę), a po odebraniu - usuwa (kapsułkowanie
, ang. encapsulation).
1: strumień bitów, 2: ramka, 3: pakiet, 4 i 5: komunikat, 6: zaszyfrowane
dane, 7: dane użytkownika
- Model ISO/OSI jest bardzo ogólny. Każda warstwa to dodatkowy narzut na
transmisję. Często implementuje się mniejszą liczbę warstw (np. TCP/IP - cztery
warstwy).
Klasyfikacja systemów operacyjnych dla SR
- Sieciowy system operacyjny
- każdy komputer ma swój prywatny system operacyjny,
- użytkownik wie, na którym komputerze pracuje, użycie zdalnego komputera
wymaga jawnego zarejestrowania się na nim (rlogin, telnet),
- użytkownik wie, gdzie znajdują się jego pliki, musi jawnie przesyłać
pliki między komputerem zdalnym i lokalnym (FTP),
- mała tolerancja na błędy,
- przykład: NFS (ang. Network File System firmy Sun).
- Rozproszony system operacyjny
- słabo powiązany sprzęt, silnie powiązane oprogramowanie,
- jeden system operacyjny,
- użytkownicy nie muszą być świadomi liczby komputerów ani położenia
swoich plików,
- dostęp do zasobów zdalnych uzyskują tak samo jak do zasobów lokalnych,
- przemieszczanie danych, obliczeń i procesów z jednego komputera na drugi
odbywa się pod nadzorem SO.
przemieszczanie danych: można przemieszczać całe pliki lub ich
fragmenty,
przemieszczanie obliczeń: czasem bardziej opłaca się przesłać
obliczenia zamiast danych,
przemieszczanie procesów: równoważenie obciążenia, przyśpieszenie
obliczeń, preferencje sprzętowe, preferencje oprogramowanie; migracja
procesu może być jawna lub niejawna.
- komputery w systemie rozproszonym nie są autonomiczne,
- duża tolerancja na błędy,
- przykłady: Amoeba. Mach, Chorus, DCE.
- Usługi typu middleware
Porównanie systemów operacyjnych dla SR