Cele i korzysci lączenia komputerów w sieci

Transkrypt

Cele i korzysci lączenia komputerów w sieci
Sieci komputerowe
© Jerzy Skurczyński
Instytut Matematyki Uniwersytetu Gdańskiego
Gdańsk, 2002 r.
1
Literatura:
1. M.J. Bach, Budowa systemu operacyjnego UNIX, WNT, 1995.
2. Ch. Brenton, Projektowanie sieci wieloprotokołowych (t. I, II), Exit, 1995.
3. C. Hunt, TCP/IP. Administracja sieci, RM, 1998.
4. K. Nowicki, J. Woźniak, Sieci LAN, MAN i WAN – protokoły komunikacyjne, Wydawnictwo
Fundacji Postępu Telekomunikacji, 1998.
5. A. Silberschatz, J.L. Peterson, P.B. Galvin, Podstawy systemów operacyjnych, WNT, 1993.
6. R. Stevens, Programowanie zastosowań sieciowych w systemie Unix, WNT, 1996.
7. A.S. Tanenbaum, Rozproszone systemy operacyjne, PWN, 1997.
8. A. Wolisz, Podstawy lokalnych sieci komputerowych (t. I – sprzęt sieciowy), WNT, 1990.
2
1. CELE I KORZYŚCI Z ŁĄCZENIA KOMPUTERÓW W SIECI
1)
Współdzielenie zasobów
Zasobami są wszystkie części składowe (fizyczne i abstrakcyjne) systemu komputerowego,
o których udostępnianiu użytkownikowi decyduje system operacyjny.
Do zasobów zaliczamy między innymi:
- moc obliczeniową procesora;
- pojemność pamięci operacyjnej;
- pojemność pamięci zewnętrznych;
- urządzenia zewnętrzne (drukarki, skanery, ...).
3
Zwykle zasoby rozumiemy w sposób abstrakcyjny, dostrzegając je przez pryzmat usług, jakie
oferuje system operacyjny, np. w jednoprocesorowym systemie wielodostępnym poszczególnym
procesom przydzielane są procesory wirtualne, w przypadku zbyt małej pamięci operacyjnej
większa jej ilość może być symulowana przez przestrzeń wymiany na dysku - uzyskujemy wtedy
wirtualną przestrzeń adresową, na dużym dysku mogą być wydzielone fragmenty widziane
jako dyski wirtualne (dyski logiczne) itp.
Zwykły użytkownik systemu komputerowego nie mając uprawnień administratora i odpowiednich
programów narzędziowych na ogół nie ma możliwości dowiedzenia się, jakie są parametry
fizyczne systemu z którym współpracuje - ma do czynienia wyłącznie z maszyną wirtualną.
4
W przeciętnym komputerze osobistym „czas życia” jego procesora (licząc od chwili zakupu do
chwili zniszczenia) jest efektywnie wykorzystywany w mniej niż jednym procencie !
Podobnie wygląda wykorzystanie innych zasobów - np. pliki z programami na dysku mogłyby być
używane przez wiele osób bez potrzeby tworzenia oddzielnych kopii dla każdego komputera.
Współdzielenie zasobów systemu komputerowego jest bardzo korzystne ekonomicznie elementy systemu zazwyczaj „starzeją się moralnie” dużo szybciej, niż ulegają zużyciu lub
uszkodzeniu, więc należy starać się je jak najintensywniej eksploatować.
5
2)
Komunikacja
Sieć komputerowa jest bardzo dogodnym medium komunikacyjnym. Umożliwia łączność pomiędzy
poszczególnymi osobami (poczta elektroniczna, programy zastępujące telegraf i telefon), w obrębie
grup osób („telekonferencje”), zastępuje tablice ogłoszeń (strony domowe - widoczne w obrębie
całego Internetu). W przypadku dużej przepustowości łącz umożliwia nawet transmisję dźwięku
i obrazu w czasie rzeczywistym (może więc zastępować radio i telewizję).
Dużą część danych przesyłanych w sieciach komputerowych stanowią dane, które nie są
przeznaczone do bezpośredniego odbioru przez ludzi (zakodowane transakcje bankowe,
cyfrowe sygnały zdalnego sterowania, rozdzielone dane do dużych obliczeń naukowych
lub technicznych prowadzonych współbieżnie na wielu komputerach).
6
W przypadku zastosowań komunikacyjnych istotną rzeczą jest standaryzacja formy przesyłanych
informacji. Różne systemy komputerowe mogą mieć różne procesory - dysponujące rejestrami
o różnych długościach i różnych uszeregowaniach bajtów, odmienne systemy operacyjne
wykorzystujące różnie zorganizowane systemy plików oraz różne urządzenia zewnętrzne
(w szczególności karty sieciowe i modemy). Aby komputery mogły się ze sobą skutecznie
porozumiewać, muszą dysponować:
a) wspólnym systemem adresowania;
b) wspólnym formatem przesyłanych ciągów bitów.
Efektem prac standaryzacyjnych są protokoły komunikacyjne specyfikujące (na różnych
poziomach abstrakcji) sposoby przesyłania informacji pomiędzy komputerami. Protokoły są
zaimplementowane w postaci oprogramowania, jak również w postaci norm technicznych
określających np. rodzaje i maksymalne długości przewodów, charakterystyki nadawanych
sygnałów elektrycznych itp.
W przypadku łączenia ze sobą sieci komputerowych o odmiennych protokołach potrzebne jest
odpowiednie „oprogramowanie tłumaczące” z jednego protokołu na drugi i na odwrót.
7
3)
Niezawodność
W niektórych dziedzinach zastosowań niezawodność działania jest szczególnie istotna (służba
zdrowia, kierowanie ruchem lotniczym, obronność, ...). W tych dziedzinach komputery powinny
w razie awarii być w stanie przejmować wzajemnie swoje funkcje (co najwyżej przy niewielkim
pogorszeniu wydajności pracy).
W tego rodzaju zastosowaniach istotne jest:
a) zwielokrotnianie danych (plików, a czasem nawet zawartości pamięci operacyjnej);
b) zwielokrotnianie łącz (tak, aby nie było łącz krytycznych);
c) istnienie pewnych rezerw mocy obliczeniowej procesorów;
d) zastępcze źródło (czasowego) zasilania.
8
4)
Uzyskiwanie łącznych mocy obliczeniowych nieosiągalnych dla pojedynczych komputerów
Obecnie istnieją już komputery wieloprocesorowe (nawet zawierające tysiące procesorów), ale
cały czas istnieje bariera technologiczna ograniczająca liczbę procesorów w pojedynczym
komputerze. Nie ma natomiast praktycznie żadnych barier ograniczających możliwości łączenia
komputerów w sieci (sieć działa nieco wolniej, niż pojedynczy komputer, ale przy umiejętnym
rozdzieleniu podzadań na poszczególne współpracujące ze sobą komputery może nie mieć to
dużego znaczenia).
Przykład: analiza sygnałów z Kosmosu przy użyciu wielu indywidualnych komputerów
podłączonych do Internetu.
Wiele klasycznych zastosowań sieci komputerowych wiąże się z więcej niż jedną spośród wyżej
omówionych korzyści (wielodostępne rozproszone bazy danych, programy do zdalnej współpracy,
zdalna dydaktyka, sieciowe gry komputerowe ...).
9
2. SIECIOWE SYSTEMY OPERACYJNE
Sieciowy system operacyjny to taki, który ma wbudowane mechanizmy komunikacji z innymi
komputerami o takim samym systemie (lub posiadającymi kompatybilne oprogramowanie).
Programy użytkowe oparte na funkcjach komunikacyjnych systemu operacyjnego oferują
różnego rodzaju usługi - np. umożliwiają korzystanie z systemu plików na innym komputerze,
mogą zlecać wykonanie na nim pojedynczych procedur lub nawiązywać z nim trwałą łączność
(otwierać sesję).
Klasycznym przykładem systemu sieciowego jest Unix (udostępnia wszystkie w/w usługi).
System oferujący jedynie zdalny dostęp do swojego systemu plików nazywany jest serwerem
plików.
10
Rozproszony system operacyjny to taki sieciowy system operacyjny, który działając w pewnej
liczbie komputerów połączonych w sieć sprawia na ich użytkownikach wrażenie, że pracują na
jednym (dużym, wielodostępnym) komputerze.
Własność uwalniania użytkowników systemu sieciowego od potrzeby świadomości (szczegółów
technicznych) aspektów komunikacji wewnątrz sieci nazywamy przezroczystością (transparency).
Istnieją różne rodzaje przezroczystości, np.:
•
przezroczystość położenia zasobów
•
przezroczystość zwielokrotniania
•
przezroczystość awarii
•
przezroczystość działań równoległych
Ostatni rodzaj przezroczystości (dotyczący programistów, a nie zwykłych użytkowników
komputerów) jest algorytmicznie najtrudniejszy do uzyskania.
11