Systemy rozproszone
Systemy rozproszone
Wg
Wg
Wikipedii
Wikipedii
:
:
System rozproszony
System rozproszony
to zbiór niezależnych urządzeń
to zbiór niezależnych urządzeń
(komputerów) połączonych w jedną, spójną logicznie całość.
(komputerów) połączonych w jedną, spójną logicznie całość.
Połączenie najczęściej realizowane jest przez
Połączenie najczęściej realizowane jest przez
sieć
sieć
komputerową
komputerową
. Urządzenia są wyposażone w
. Urządzenia są wyposażone w
oprogramowanie
oprogramowanie
umożliwiające współdzielenie
umożliwiające współdzielenie
zasobów
zasobów
systemowych
systemowych
.
.
Jedną z podstawowych cech
Jedną z podstawowych cech
systemu
systemu
rozproszonego jest
rozproszonego jest
jego
jego
transparentność
transparentność
, inaczej
, inaczej
przezroczystość
przezroczystość
, która stwarza
, która stwarza
na użytkownikach systemu rozproszonego wrażenie
na użytkownikach systemu rozproszonego wrażenie
pojedynczego i zintegrowanego systemu.
pojedynczego i zintegrowanego systemu.
Systemy rozproszone - cechy
Systemy rozproszone - cechy
współdzielenie zasobów
- wielu użytkowników systemu może
korzystać z danego zasobu (np. drukarek, plików, usług, itp.)
otwartość
- podatność na rozszerzenia, możliwość rozbudowy
systemu zarówno pod względem sprzętowym, jak i oprogramowania
współbieżność
- zdolność do przetwarzania wielu zadań jednocześnie
skalowalność
- zachowanie podobnej wydajności systemu przy
zwiększeniu skali systemu (np. liczby procesów, komputerów, itp.)
odporność na błędy
- zdolność działania systemu mimo pojawiania
się błędów (np. poprzez utrzymywanie nadmiarowego sprzętu)
transparentność, przeźroczystość
- postrzeganie systemu przez
użytkownika jako całości, a nie poszczególnych składowych.
Otwartość
Otwartość
-usługi muszą być zgodne ze standardowymi regułami
opisującymi ich składnię i semantykę (np. protokoły
sieciowe)
-specyfikacja interfejsu musi być kompletna i neutralna
Programy od różnych dostawców MUSZĄ współpracować
ze sobą, o ile spełniają warunek zgodności interfejsów
Przenośność – aplikacja stworzona dla jednego systemu
może być uruchomiona w innym bez potrzeby dokonania
jakichkolwiek zmian.
Przezroczystość
Przezroczystość
dostępu – poprzez ujednolicenie metod dostępu do danych
i ukrywanie różnic w ich reprezentacji
położenia – użytkownicy nie mogą określić położenia zasobu,
np. na podstawie jego nazwy
wędrówki – można przenosić zasoby między serwerami bez
zmiany odwoływania się do nich
przemieszczania– możliwość przenoszenia zasobów nawet
podczas ich używania
Przezroczystość
Przezroczystość
zwielokrotniania– użytkownik nie zauważa faktu zwielokrotniania
zasobów
współbieżności – możliwość współbieżnego przetwarzania nie
powodującego utraty spójności
awarii – niezauważalne zastępowanie uszkodzonych węzłów
trwałości – maskowanie sposobu przechowywania zasobu
(pamięć lub dysk)
Skalowalność
Skalowalność
pod względem rozmiaru (możliwość dodawania
pod względem rozmiaru (możliwość dodawania
nowych zasobów i użytkowników)
nowych zasobów i użytkowników)
geograficzna (rozrzucenie zasobów i
geograficzna (rozrzucenie zasobów i
użytkowników po całym świecie)
użytkowników po całym świecie)
administracyjna (skuteczna, mimo że rozrzucona
administracyjna (skuteczna, mimo że rozrzucona
administracja systemem)
administracja systemem)
Skalowalność - rozwiązania
Skalowalność - rozwiązania
1.
1.
Ukrywanie opóźnień komunikacji
Ukrywanie opóźnień komunikacji
komunikacja asynchroniczna
komunikacja asynchroniczna
część obliczeń po stronie klienta
część obliczeń po stronie klienta
2.
2.
Rozpraszanie (
Rozpraszanie (
np
np
DNS)
DNS)
3.
3.
Zwielokrotnianie
Zwielokrotnianie
równoważenie obciążenia
równoważenie obciążenia
zwiększenie dostępności
zwiększenie dostępności
zwiększenie niezawodności
zwiększenie niezawodności
caching
caching
Problem spójności danych
Problem spójności danych
Realizacje sprzętowe rozproszenia
Realizacje sprzętowe rozproszenia
Systemy
Systemy
wieloprocesory
wieloprocesory
(pamięć dzielona)
(pamięć dzielona)
multikomputery
multikomputery
(pamięć odrębna)
(pamięć odrębna)
Architektura
Architektura
szyna
szyna
przełącznik
przełącznik
Systemy homogeniczne
Systemy homogeniczne
Sieci systemowe
–
–
grupa komputerów
grupa komputerów
homogenicznych połączonych siecią
homogenicznych połączonych siecią
architektura połączeń
architektura połączeń
–
–
szyna lub przełącznik
szyna lub przełącznik
topologia połączeń
topologia połączeń
–
–
siatki i
siatki i
hiperkostki
hiperkostki
Realizacje:
Realizacje:
procesory o masywnej równoległości (specjalna
procesory o masywnej równoległości (specjalna
sieć)
sieć)
klastry
klastry
, grupy stacji roboczych (sieć standardowa)
, grupy stacji roboczych (sieć standardowa)
Oprogramowanie
Oprogramowanie
1.
1.
Systemy operacyjne dla komp. rozproszonych:
Systemy operacyjne dla komp. rozproszonych:
a)
a)
ś
ciśle powiązane (zarządzanie wszystkimi
ś
ciśle powiązane (zarządzanie wszystkimi
globalnymi zasobami przez system)
globalnymi zasobami przez system)
–
–
w
w
wieloprocesorach
wieloprocesorach
, komp.
, komp.
homogeniczych
homogeniczych
b)
b)
luźno powiązane (zbiór współpracujących
luźno powiązane (zbiór współpracujących
komputerów z lokalnymi S.O.)
komputerów z lokalnymi S.O.)
–
–
sieciowe
sieciowe
systemy operacyjne
systemy operacyjne
2.
2.
Oprogramowanie warstwy pośredniej
Oprogramowanie warstwy pośredniej
Oprogramowanie - cele
Oprogramowanie - cele
Ad 1a: Ukrywanie zasobów sprzętowych i
Ad 1a: Ukrywanie zasobów sprzętowych i
zarządzanie nimi
zarządzanie nimi
Ad 1b: Oferowanie lokalnych usług klientom
Ad 1b: Oferowanie lokalnych usług klientom
zdalnym
zdalnym
Ad 2: Zapewnianie przezroczystości rozproszenia
Ad 2: Zapewnianie przezroczystości rozproszenia
Wielokomputerowy S.O.
Wielokomputerowy S.O.
Jądro
Jądro
Jądro
Usługi rozproszonego systemu operacyjnego
Aplikacje rozproszone
Rozproszona pamięć dzielona
Rozproszona pamięć dzielona
Stronicowana rozproszona pamięć dzielona
Stronicowana rozproszona pamięć dzielona
jako forma komunikacji
jako forma komunikacji
Problemy z efektywnością:
Problemy z efektywnością:
-
-
zwielokrotniania stron do odczytu,
zwielokrotniania stron do odczytu,
-
-
zwielokrotnianie wszystkich stron,
zwielokrotnianie wszystkich stron,
-
-
rezygnacja ze ścisłej spójności
rezygnacja ze ścisłej spójności
-
-
fałszywe dzielenie (gdy 2 procesy odwołują się
fałszywe dzielenie (gdy 2 procesy odwołują się
do różnych zmiennych, ale na tej samej stronie)
do różnych zmiennych, ale na tej samej stronie)
Sieciowy S.O.
Sieciowy S.O.
Jądro
Jądro
Jądro
Aplikacje rozproszone
Usługi
sieciowego
systemu
operacyjnego
Usługi
sieciowego
systemu
operacyjnego
Usługi
sieciowego
systemu
operacyjnego
Usługi sieciowego S.O.
Usługi sieciowego S.O.
Praca zdalna (np.
Praca zdalna (np.
rlogin
rlogin
)
)
Kopiowane plików (np.
Kopiowane plików (np.
rcp
rcp
)
)
Sieciowy system plików
Sieciowy system plików
-
-
serwer
serwer
-
-
klient
klient
Oprogramowanie warstwy pośredniej
Oprogramowanie warstwy pośredniej
Jądro
Jądro
Jądro
Aplikacje rozproszone
Usługi
sieciowego
systemu
operacyjnego
Usługi
sieciowego
systemu
operacyjnego
Usługi
sieciowego
systemu
operacyjnego
Warstwa pośrednia
Wzorce, założenia do warstwy pośredniej
Wzorce, założenia do warstwy pośredniej
Wszystko jest plikiem (z
Wszystko jest plikiem (z
Unixa
Unixa
)
)
-
-
komunikacja
komunikacja
jako zapis/odczyt pliku
jako zapis/odczyt pliku
Zdalne wywołania procedur (RPC)
Zdalne wywołania procedur (RPC)
–
–
procedury
procedury
zdalne jak lokalne (ukrywanie komunikacji)
zdalne jak lokalne (ukrywanie komunikacji)
Obiekty rozproszone
Obiekty rozproszone
–
–
obiekt na jednej
obiekt na jednej
maszynie, interfejs do niego na wielu
maszynie, interfejs do niego na wielu
Model dokumentów rozproszonych (WWW)
Model dokumentów rozproszonych (WWW)
Usługi warstwy pośredniej
Usługi warstwy pośredniej
Komunikacja
Komunikacja
–
–
RPC, zdalne obiekty, przezroczysty
RPC, zdalne obiekty, przezroczysty
dostęp do rozproszonych plików, baz danych,
dostęp do rozproszonych plików, baz danych,
dokumenty WWW
dokumenty WWW
Nazewnictwo
Nazewnictwo
–
–
lokalizacja zasobów
lokalizacja zasobów
-
-
skalowalność
skalowalność
Trwałość
Trwałość
–
–
pliki, bazy danych, rozproszona pamięć
pliki, bazy danych, rozproszona pamięć
dzielona
dzielona
Transakcje rozproszone
Transakcje rozproszone
–
–
atomowość
atomowość
, dane na wielu
, dane na wielu
maszynach, maskowanie awarii
maszynach, maskowanie awarii
Bezpieczeństwo
Bezpieczeństwo
Otwartość warstwy pośredniej
Otwartość warstwy pośredniej
Nadbudowa nad systemem
Nadbudowa nad systemem
–
–
uniezależnienie od
uniezależnienie od
systemu
systemu
Zależność aplikacji od warstwy pośredniej
Zależność aplikacji od warstwy pośredniej
Niekompletność interfejsów warstwy pośredniej
Niekompletność interfejsów warstwy pośredniej
–
–
konieczność odwoływania się bezpośrednio do
konieczność odwoływania się bezpośrednio do
systemu
systemu
Zgodność warstwy pośredniej ze standardem, ale
Zgodność warstwy pośredniej ze standardem, ale
nieprzenośność
nieprzenośność
aplikacji
aplikacji
Przykłady warstw pośrednich
Przykłady warstw pośrednich
•
gniazda (ang. sockets)
•
RPC (Remote Procedure Call)
•
DCE (Distributed Computing Environment)
•
CORBA (Common Object Request Broker
Architecture
)
•
DCOM (Distributed Component Object Model)
•
RMI (Remote Method Invocation)
Porównanie systemów
Porównanie systemów
Warstwa
Warstwa
pośrednia
pośrednia
Sieciowy
Sieciowy
system
system
operacyjny
operacyjny
Rozproszony S.O.
Rozproszony S.O.
otwarty
otwarty
otwarty
otwarty
zamknięty
zamknięty
zamknięty
zamknięty
Otwartość
Otwartość
zmienna
zmienna
tak
tak
umiarkowana
umiarkowana
nie
nie
Skalowalność
Skalowalność
lokalne
lokalne
lokalne
lokalne
globalne,
globalne,
rozproszone
rozproszone
globalne,
globalne,
centralne
centralne
Zarządzanie
Zarządzanie
zasobami
zasobami
zależna
zależna
od modelu
od modelu
pliki
pliki
komunikaty
komunikaty
pamięć
pamięć
dzielona
dzielona
Komunikacja
Komunikacja
n
n
n
n
n
n
1
1
Kopie S.O.
Kopie S.O.
nie
nie
nie
nie
tak
tak
tak
tak
Jeden SO?
Jeden SO?
duża
duża
mała
mała
duża
duża
b. duża
b. duża
Przezroczystość
Przezroczystość
Wielokomp
Wielokomp
.
.
Wieloproc
Wieloproc
.
.
Model klient-serwer
Model klient-serwer
Klient
Serwer
żądanie
odpowiedź
wykonanie
usługi
Model trójwarstwowy
Model trójwarstwowy
Klient
Serwer
aplikacji
Serwer
b. danych
Interfejs
Interfejs
Interfejs
Interfejs
Interfejs
Interfejs
Aplikacja
Aplikacja
Aplikacja
Aplikacja
Aplikacja
Aplikacja
B. danych
B. danych
B. danych
B. danych
B. danych
B. danych
S e r w e r
K l i e n t