Składowe systemu komputerowego

Transkrypt

Składowe systemu komputerowego
Składowe systemu komputerowego
Sprzęt (ang. hardware) – dostarcza podstawowe zasoby systemu
●
komputerowego: procesor, pamięć, urządzenia wejścia-wyjścia
System operacyjny – nadzoruje i koordynuje posługiwanie się
●
sprzętem przez różne programy użytkowe pracujące na zlecenie różnych
użytkowników.
Programy użytkowe (edytory, kompilatory, systemy baz
danych, gry komputerowe, programy dla biznesu)– określają
●
sposoby użycia zasobów systemu do rozwiązywania zadań stawianych
przez użytkowników.
Użytkownicy (ludzie, maszyny, inne komputery).
●
Schemat systemu komputerowego
Użytkownik
Użytkownik
Użytkownik
Użytkownik
Programy systemowe i użytkowe
System operacyjny
Sprzęt komputerowy
Użytkownik
Przegląd rozwoju systemów operacyjnych
Systemy komputerów głównych ( Mainfraime Systems)
Wczesne systemy – „goła” maszyna (lata 1950-te)
Struktura:
●
●
duże maszyny obsługiwane przy pomocy konsoli;
●
system jednoużytkownikowy;
●
programista/użytkownik jako operator;
●
taśmy papierowe i karty perforowane jako nośniki.
Wczesne oprogramowanie:
●
asemblery, kompilatory;
●
programy łączące (linkers), programy ładujące (loaders);
●
biblioteki typowych funkcji;
●
sterowniki urządzeń (device drivers).
●
Zalety – wysoki poziom bezpieczeństwa.
●
Wady – nieefektywne wykorzystanie drogich zasobów
●
niski poziom wykorzystania CPU,
Przegląd rozwoju systemów operacyjnych
Proste systemy wsadowe (Simple Batch Systems)
●
Podstawowe cechy
●
Konieczne zatrudnienie operatora (użytkownik ≠ operator).
●
Użytkownik przygotowuje zadanie i przekazuje je operatorowi.
●
Operator uruchamia zadanie i wyniki zwraca użytkownikowi.
●
Skrócenie czasu ustawiania (set-up) przez grupowanie podobnych zadań.
●
●
Automatyczne porządkowanie zadań – automatyczne przekazywanie sterowania
od jednego zadania do drugiego.
prowadzenie kart sterujących w celu rozróżniania zadań itd.
●
Zalety – większa przepustowość
●
Wady – niska wydajność:
●
długi czas obiegu zadania;
●
szybki procesor i wolny czytnik kart/drukarka pracujące na przemian.
Przegląd rozwoju systemów operacyjnych
Proste systemy wsadowe (Simple Batch Systems)
●
Rozwiązanie: praca w trybie pośrednim (off-line)
–
czytniki kart (drukarki) obsługiwane przez pomocnicze komputery
–
ładujące zadania na taśmy magnetyczne (drukujące wyniki z taśm) w trybie
off-line;
–
komputer główny czyta zadania z taśmy magnetycznej i zapisuje
wyniki na inną taśmę (taśmy przenoszone ręcznie).
–
Czytniki magnetyczne szybsze niż mechaniczne
Przegląd rozwoju systemów operacyjnych
Spooling (simultaneous peripheral operation on-line)
●
●
●
Metoda nakładania operacji WE/WY jednego
zadania na obliczenia innych zadań.
Dysk pełni rolę bufora między czytnikiem kart a
pamięcią.
Podczas wykonywania jednego zadania system
operacyjny:
●
●
●
●
●
Dysk
czyta następne zadanie z czytnika kart na
dysk (kolejka zadań),
wysyła wyniki poprzedniego zadania z
dysku na drukarkę.
Pula zadań (job pool) – struktura danych
pozwalająca systemowi wybierać następne
zadania do wykonania (poprawia wykorzystanie
CPU).
Zalety: zwiększenie wywykorzystanie procesora,
jak i urządzeń WE/WY.
Wady: mało wydajny dla szybkich procesorów
(tylko jedno zadanie w pamięci operacyjnej).
Czytnik
kart
CPU
Druka
rka
Przegląd rozwoju systemów operacyjnych
Wieloprogramowe ( Multiprogrammed) systemy wsadowe
●
●
Wiele zadań rezyduje w tym samym czasie w pamięci, a procesor jest im
odpowiednio przydzielany (współbieżność)
Niezbędne cechy systemu operacyjnego:
●
●
●
●
Zarządzanie pamięcią – system musi alokować pamięć dla wielu zadań.
Planowanie przydziału procesora (CPU scheduling) – system musi wybrać do
uruchomienia jedno spośród wielu zadań w pamięci.
●
Ochrona zadań na wszystkich etapach pobytu w systemie.
●
Alokowanie urządzeń, dostarczanie procedur WE/WY.
Zalety:
●
●
Szeregowanie zadań – decydowanie, które zadania z puli zadań mają być
załadowane do pamięci operacyjnej.
Wydajne wykorzystanie zasobów (CPU, pamięć operacyjna, urządzenia
zewnętrzne).
Wady:
●
●
Użytkownik nie może ingerować w zadanie w trakcie jego wykonywania, np.
reagować na błędy kompilacji, nie może na bieżąco testować programu itd.
Długi obieg zadania – od złożenia programu do odebrania wyników.
Przegląd rozwoju systemów operacyjnych
Systemy z podziałem czasu (Time-Sharing Systems)
●
●
●
●
●
●
Procesor wykonuje na przemian wiele różnych zadań (wielozadaniowość, ang.
multitasking), a przełączenia następują tak często, że użytkownicy mogą na
bieżąco współdziałać z programami podczas ich wykonywania.
Możliwość pracy interakcyjnej – użytkownik wydaje bezpośrednio instrukcje
systemowi lub programowi i otrzymuje natychmiastowe odpowiedzi
(zazwyczaj przy użyciu klawiatury i ekranu monitora).
Bezpośrednio dostępny systemu plików (on-line file system) – użytkownik ma
bezpośredni dostęp do plików z programami i danymi (zazwyczaj na dysku).
Wymiana zadania pomiędzy pamięcią a dyskiem w trakcie jego wykonywania
(swapping).
Tworzenie pamięci wirtualnej (virtual memory), tzn. rozszerzenie pamięci
operacyjnej pamięcią dyskową – umożliwienie wykonywania zadań nie
mieszczących się w pamięci operacyjnej.
Wielu użytkowników może równocześnie dzielić jeden komputer – każdy z nich
odnosi wrażenie jakby dysponował swoim własnym.
Wieloprogramowość i podział czasu procesora – to podstawowe cechy
nowoczesnych systemów operacyjnych
Przegląd rozwoju systemów operacyjnych
Systemy biurkowe (Desktop Systems)
●
Początkowo:
●
●
Komputery osobiste (personal computers - PC): systemy komputerowe
dedykowane dla pojedynczego użytkownika – pojawiły się w latach 1970-tych.
●
Brak potrzeby maksymalizowania wykorzystania CPU i urządzeń zewnętrznych.
●
Mniej istotna ochrona plików, pamięci.
●
Nacisk na maksimum wygody użytkownika i szybkość kontaktu z użytkownikiem.
●
Systemy operacyjne: MS-DOS, wczesne Microsoft Windows, Apple Macintosh.
Później:
●
●
●
Sieci komputerowe, Internet – zmiana podejścia do kwestii ochrony i
bezpieczeństwa (konieczność ochrony danych, systemów).
Szybkie mikroprocesory, duże pamięci – możliwość zastosowania cech
systemów dużych komputerów (wielozadaniowość itd.).
Nowa generacja systemów operacyjnych dla PC: Microsoft Windows
NT/2000/XP, IBM OS/2, Apple Macintosh OS X, Linux.
Przegląd rozwoju systemów operacyjnych
Systemy wieloprocesorowe (Multiprocessor Systems)
Systemy wieloprocesorowe z więcej niż jednym CPU w ścisłej komunikacji między
sobą. Zwane także systemami równoległymi (parallel systems) lub mocno
sprzężonymi (tightly coupled) – procesory dzielą szynę systemową i zegar, czasami
pamięć i urządzenia peryferyczne, komunikacja zwykle odbywa się przez pamięć
dzieloną.
●
●
Zalety:
●
większa przepustowość,
●
większa niezawodność (łagodna degradacja, tolerancja na awarie),
●
ekonomika skali (oszczędność).
Wieloprzetwarzanie symetryczne (symmetric multiprocessing: SMP):
●
●
●
Każdy procesor wykonuje identyczną kopię systemu operacyjnego.
Wiele procesów może być wykonywanych równocześnie bez spadku wydajności.
Systemy: Sun Solaris, Linux, MS Windows 2000/XP, Mac OS X.
Wieloprzetwarzanie asymetryczne (asymmetric multiprocessing):
●
●
Każdy procesor ma przydzielone specyficzne zadanie; procesor główny (master)
szereguje i przydziela pracę procesorom podrzędnym (slaves).
Częściej spotykana w bardzo dużych systemach.
Przegląd rozwoju systemów operacyjnych
Systemy rozproszone (Distributed Systems)
Systemy luźno powiązane (loosely coupled) – każdy procesor ma swoją własną
pamięć lokalną; procesory komunikują się między sobą za pomocą różnych linii
komunikacyjnych (np. szybkie szyny danych, linie telefoniczne).
●
Zalety:
●
●
●
●
●
●
podział zasobów (w różnych miejscach można mieć różne zasoby),
przyspieszanie obliczeń (rozdzielanie obliczeń między wiele procesorów,
używanie mniej obciążonych komputerów – tzw. dzielenie obciążeń),
niezawodność (awaria jednego komputera nie wstrzymuje pracy pozostałych),
komunikacja (wymiana informacji, plików itd. między węzłami).
Ogromnie zyskały na znaczeniu w ostatnich latach. W przyszłości powinny
jeszcze bardziej się zyskać na znaczeniu – coraz szybsze i tańsze linie
komunikacyjne. Możliwość łączenia przez Internet
Sieci komputerowe: lokalne (LAN), miejskie (MAN), rozległe (WAN), oparte o
technologie bezprzewodow wspierają rozwój takiej architektury
●
Systemy klient-serwer: systemy serwerów obliczeń, systemy serwerów plików.
●
Systemy Peer-to-Peer (P2P): systemy wymiany plików, np. Napster, Gnutella.
●
Rozproszone systemy operacyjne: systemy w bliskiej komunikacji przez sieć.
Rozwijane obecnie systemy Gridowe – rozproszone systemy obliczeń oraz baz
danych o zasięgu globalnym.
Przegląd rozwoju systemów operacyjnych
Systemy klastrowe (zgrupowane) (Cluster Systems)
●
●
●
●
Według ogólnie akceptowanej definicji zgrupowane w klaster komputery dzielą
pamięć dyskową i są blisko ze sobą powiązane poprzez sieć LAN.
Różnią się od systemów równoległych tym, że złożone są z dwu lub więcej
indywidualnych systemów sprzężonych razem.
Zwykle są używane w celu dostarczania serwisów wysokiego poziomu dostępności
(high-availability services), tj. takich serwisów, które będą dostępne nawet gdy jeden
lub więcej systemów w klastrze ulegnie awarii.
Tryby pracy
●
●
●
asymetryczny: jeden komputer pozostaje w pogotowiu (hot-standby host)
monitorując aktywne serwery aplikacji – gdy któryś z nich ulegnie awarii,
wówczas przejmuje jego rolę.
symetryczny: wszystkie komputery klastra działają jako aktywne serwery aplikacji
i zarazem monitorują się nawzajem na wypadek awarii.
Inne rodzaje klastrów:
●
●
równoległe: wiele komputerów ma dostęp do tych samych danych w dzielonej
pamięci masowej (np. Oracle Parallel Server) – potrzebna synchronizacja, np. w
formie distributed lock manager (DLM);
w sieciach rozległych, np. storage-area networks (SAN) – wiele różnych
systemów podłączonych do wielu jednostek pamięci masowej poprzez WAN.
Przegląd rozwoju systemów operacyjnych
●
●
Systemy czasu rzeczywistego (Real-Time Systems)
Używane jako sterowniki urządzeń o ściśle określonym celu.
●
Surowe wymagania czasowe
●
Często sprzężenie zwrotne.
Rygorystyczne systemy czasu rzeczywistego (hard real-time systems):
●
●
●
●
pamięć pomocnicza mała lub jej brak, dane przechowywane w pamięci o krótkim
czasie dostępu lub pamięci tylko do odczytu (ROM);
w konflikcie z systemami z podziałem czasu – dlatego nie są realizowane w
uniwersalnych systemach operacyjnych.
Zastosowania do sterowania procesami przemysłowymi, nadzorowania
eksperymentów naukowych, obrazowania badań medycznych itd.
Łagodne systemy czasu rzeczywistego (soft real-time systems):
●
●
●
●
krytyczne zadanie do obsługi w czasie rzeczywistym otrzymuje pierwszeństwo
przed innymi zadaniami,
łagodniejsze wymagania czasowe – mogą występować pewne opóźnienia.
Zastosowania w technikach multimedialnych, wirtualnej rzeczywistości,
zaawansowanych projektach badawczych – wymagających systemów
operacyjnych o rozbudowanych właściwościach.
Znajdują się w większości współczesnych systemów operacyjnych, (większość
wersji systemu UNIX, Windows XP).
Przegląd rozwoju systemów operacyjnych
Systemy kieszonkowe (Handheld Systems)
●
●
●
●
Personal digital assistants (PDA), takie jak Palm, Pocket-PC, telefony komórkowe –
W porównaniu np. z komputerem PC dysponują niewielką pamięcią, wolnym
procesorem, małym ekranem – wyzwania dla twórców systemów operacyjnych;
zwykle pełnią wyspecjalizowane funkcje.
Ograniczenia w funkcjonalności są równoważone przez ich wygodę i przenośność
(obecnie powszechny jest również dostęp do Internetu).
Użyteczność i rola systemów kieszonkowych ciągle wzrasta!

Podobne dokumenty