Wprowadzenie do systemów operacyjnych SOE

advertisement
SOE - Systemy Operacyjne
Wykład 1
Wprowadzenie do systemów
operacyjnych
dr inż. Andrzej Wielgus
Instytut Mikroelektroniki i Optoelektroniki
WEiTI PW
Systemy operacyjne
Andrzej Wielgus IMiO
Podstawowe pojęcia
• System komputerowy
• System operacyjny
• Jądro systemu
Systemy operacyjne
Andrzej Wielgus IMiO
System komputerowy
• Sprzęt komputerowy
Ø
Ø
Ø
Ø
CPU
pamięć operacyjna (główna)
magistrale systemowe
urządzenia wejścia/wyjścia
• System operacyjny
• Programy
Ø systemowe
Ø aplikacje użytkowników
• Użytkownicy
Systemy operacyjne
Andrzej Wielgus IMiO
System operacyjny
• Program lub zestaw programów, które pośredniczą
między użytkownikami i ich programami a sprzętem
komputerowym
• Administrator zasobów systemu komputerowego
• Program sterujący wykonywaniem innych
programów
Systemy operacyjne
Andrzej Wielgus IMiO
Budowa systemu operacyjnego
• Jądro systemu operacyjnego
Ø zawiera podstawowy kod systemu operacyjnego,
niezbędny do jego działania
Ø jądro lub jego rdzeń stale znajduje się w pamięci
operacyjnej
• Programy systemowe
Ø świadczą różne usługi systemowe i ułatwiają pracę
użytkownikom
Systemy operacyjne
Andrzej Wielgus IMiO
Cele systemu operacyjnego
• Wykonywanie programów użytkowników
• Zapewnienie wygodnej pracy użytkownikom
• Efektywne zarządzanie zasobami systemu
komputerowego
Systemy operacyjne
Andrzej Wielgus IMiO
Cechy współczesnych systemów
operacyjnych
• Wieloprogramowość (multiprogramming)
Ø możliwość jednoczesnego uruchamiania i
przechowywania w pamięci operacyjnej wielu
procesów
Ø przełączanie pomiędzy procesami następuje, gdy
proces wykonywany zakończy się lub zamówi operację
wejścia - wyjścia
Systemy operacyjne
Andrzej Wielgus IMiO
Cechy współczesnych systemów
operacyjnych c.d.
• Wielozadaniowość (multitasking)
podział czasu (time-sharing)
Ø możliwość współbieżnego wykonywanie wielu
procesów z podziałem czasu procesora
Ø przełączanie pomiędzy poszczególnymi zadaniami
odbywa się w regularnych odstępach czasu, na tyle
często, że wszyscy użytkownicy mają możliwość pracy
interakcyjnej
Systemy operacyjne
Andrzej Wielgus IMiO
Cechy współczesnych systemów
operacyjnych c.d.
• Wieloprzetwarzanie (multiprocessing)
przetwarzanie równoległe (parallel processing)
Ø możliwość współbieżnego wykonywania procesów
przez wiele procesorów w jednym systemie
komputerowym.
Ø w wieloprocesorowym systemie komputerowym, czyli
systemie ściśle powiązanym, procesory współdzielą
pamięć, zegar i szyny systemowe.
Systemy operacyjne
Andrzej Wielgus IMiO
Cechy współczesnych systemów
operacyjnych c.d.
• Wieloprzetwarzanie symetryczne
(symmetric multiprocessing – SMP)
symetryczne przetwarzanie wieloprocesorowe
Ø występuje w sytuacji, gdy żaden procesor nie jest
wyróżniony i wszystkie mogą wykonywać takie same
zadania.
Systemy operacyjne
Andrzej Wielgus IMiO
Cechy współczesnych systemów
operacyjnych c.d.
• Wieloprzetwarzanie asymetryczne
(asymmetric multiprocessing)
Ø występuje w sytuacji, gdy wyróżniony procesor główny
zarządza całym systemem i przydziela zadania innym
procesorom.
Systemy operacyjne
Andrzej Wielgus IMiO
Cechy współczesnych systemów
operacyjnych c.d.
• Przetwarzanie w czasie rzeczywistym
(real-time processing)
Ø możliwość wykonywania procesów przy ściśle
określonych ograniczeniach czasowych
Ø rygorystyczny system czasu rzeczywistego zapewnia
wypełnianie krytycznych zadań (procesów) w
gwarantowanym czasie
Ø łagodny system czasu rzeczywistego zapewnia
krytycznym procesom jedynie najwyższy priorytet
wykonania, ale nie gwarantuje czasu wykonania
Systemy operacyjne
Andrzej Wielgus IMiO
Cechy współczesnych systemów
operacyjnych c.d.
• Przetwarzanie rozproszone
(distributed processing)
Ø możliwość współbieżnego wykonywania procesów
przez wiele procesorów w systemie rozproszonym
Ø w rozproszonym systemie komputerowym, czyli luźno
powiązanym, procesory nie dzielą pamięci ani zegara
Ø każdy procesor dysponuje własną pamięcią lokalną i
może komunikować się z innymi procesorami poprzez
sieć komunikacyjną
Systemy operacyjne
Andrzej Wielgus IMiO
Cechy współczesnych systemów
operacyjnych c.d.
• Pamięć wirtualna (virtual memory)
Ø możliwość wykonywania procesów, które nie są w
całości przechowywane w pamięci operacyjnej
systemu
Ø rozmiar procesu może przekraczać rozmiar fizycznej
pamięci operacyjnej
Systemy operacyjne
Andrzej Wielgus IMiO
Klasyfikacja systemów operacyjnych
• Systemy ogólnego przeznaczenia
Ø
Ø
Ø
Ø
systemy jednostanowiskowe
systemy wsadowe
systemy wielodostępne
systemy czasu rzeczywistego łagodne
• Systemy specjalnego przeznaczenia np.
Ø systemy czasu rzeczywistego rygorystyczne
– sterowanie procesami przemysłowymi, robotami,
eksperymentami naukowymi, systemy medyczne, wojskowe
Ø systemy przetwarzania transakcji
– systemy bankowe, systemy rezerwacji biletów
Ø systemy wbudowane (embedded systems)
– zegarki, aparaty fotograficzne, telefony, palmtopy,
odtwarzacze MP3 itp.
Systemy operacyjne
Andrzej Wielgus IMiO
Działanie systemu operacyjnego
• System operacyjny jest sterowany przerwaniami
(interrupt driven)
Ø przerwania z urządzeń wejścia-wyjścia
– informują o zakończeniu operacji wejścia-wyjścia
Ø przerwania z czasomierza
– informują o upłynięciu przydzielonego czasu
– możliwość przejęcia sterowania przez system operacyjny
– ochrona CPU przed nieskończonymi pętlami
Ø przerwania programowe (pułapki)
Systemy operacyjne
Andrzej Wielgus IMiO
Działanie systemu operacyjnego
• Obsługa przerwania przez system operacyjny
Ø zachowanie stanu procesora (licznik rozkazów, rejestry)
Ø określenie typu przerwania
– odpytywanie urządzeń
– wektor przerwań
Ø wykonania odpowiedniego fragmentu kodu
Systemy operacyjne
Andrzej Wielgus IMiO
Działanie systemu operacyjnego
• Dualny tryb pracy systemu
Ø tryb użytkownika
– wykonywany jest kod programu użytkownika
Ø tryb systemu (monitora, jądra)
– wykonywany jest kod systemu
– tryb uprzywilejowany
Ø bit trybu procesora
• Rozkazy uprzywilejowane
Ø wykonywane tylko w trybie systemu
Ø wywołania systemowe, funkcje systemowe
Systemy operacyjne
Andrzej Wielgus IMiO
Składniki systemu operacyjnego
•
•
•
•
•
•
•
•
Zarządzanie procesami (zadaniami)
Zarządzanie pamięcią operacyjną
Zarządzanie plikami
Zarządzanie systemem wejścia-wyjścia
Zarządzanie pamięcią pomocniczą
Praca sieciowa
System ochrony
System interpretacji poleceń
Systemy operacyjne
Andrzej Wielgus IMiO
Usługi systemu operacyjnego
• Dla użytkowników
Ø interfejs użytkownika
– graficzny (GUI) lub tekstowy (CLI)
Ø
Ø
Ø
Ø
Ø
wykonywanie programów
operacje wejścia-wyjścia
manipulowanie systemem plików
komunikacja
wykrywanie błędów
• Dla samego systemu
Ø przydzielanie zasobów
Ø rozliczanie
Ø ochrona
Systemy operacyjne
Andrzej Wielgus IMiO
Interfejsy programowe
• Interfejs funkcji systemowych
Ø interfejs między programami a jądrem s.o.
Ø umożliwiają programom korzystanie z usług jądra i
sprzętu komputerowego bez naruszania
bezpieczeństwa systemu
• Interfejs programów systemowych
Ø interfejs użytkownika
Ø umożliwiają użytkownikom wykonywanie typowych
operacji dotyczących manipulowania plikami,
przetwarzania ich zawartości, tworzenia i wykonywania
programów, komunikacji czy informowania o stanie
systemu
Systemy operacyjne
Andrzej Wielgus IMiO
Struktury systemów operacyjnych
• Struktura jednolita
Ø zbiór procedur w ramach jednego programu
Ø brak lub słabo wydzielone poziomy funkcjonalne
Ø proste systemy jednostanowiskowe (MS-DOS)
• Struktura modułowa
Ø zalety:
– zmniejsza stopień zależności między poszczególnymi
składowymi systemu
– ułatwia weryfikację systemu i wyszukiwanie błędów
Ø warstwowa
Ø oparta na mikrojądrze
Systemy operacyjne
Andrzej Wielgus IMiO
Struktura warstwowa
• Podział systemu na moduły powiązane w postaci
kolejnych warstw
• Każda warstwa
Ø jest zdefiniowana na szczycie poprzedniej warstwy
Ø korzysta z funkcji warstw leżących poniżej
Ø ukrywa cechy sprzętu, operacje, struktury danych
przed wyższymi warstwami
• Trudność definiowania warstw
• Przykłady systemów
Ø systemy akademickie: THE, Venus
Ø VMS
Ø UNIX, OS/2
Systemy operacyjne
Andrzej Wielgus IMiO
Struktura warstwowa systemu UNIX
Procesy
Interfejs
funkcji systemowych
Jądro
Sprzęt
Systemy operacyjne
Andrzej Wielgus IMiO
Struktura oparta na mikrojądrze
• Struktura klient - serwer
• Wyróżniony moduł centralny - mikrojądro
Ø działa w trybie chronionym
Ø realizuje tylko kilka podstawowych funkcji systemu
• Równorzędne moduły
Ø realizują większość usług systemowych
Ø działają w trybie użytkownika
Ø komunikują się za pomocą komunikatów poprzez
mikrojądro
Systemy operacyjne
Andrzej Wielgus IMiO
Struktura oparta na mikrojądrze
• Zalety
Ø elastyczność, łatwiejsza implementacja, niezawodność
i bezpieczeństwo
• Wady
Ø mniejsza wydajność
• Przykłady:
Ø Windows NT 3.0
Ø Windows NT 4.0, 2000, XP - struktura zmodyfikowana
Ø MacOS X
Systemy operacyjne
Andrzej Wielgus IMiO
Struktura systemu Windows XP
podsystem
bezpieczeństwa
aplikacje
OS/2
aplikacje
Win16
aplikacje
Win16
podsystem
bezpieczeństwa
podsystem
OS/2
podsystem
Win16
aplikacje
MSDOS
aplikacje
POSIX
podsystem
MSDOS
podsystem
POSIX
podsystem
Win32
tryb użytkownika
tryb jądra
zarządca
wejścia-wyjścia
system
plików
pamięć
podręczna
sterowniki
urządzeń
Egzekutor
monitor
zarządca wywołania zarządca
zarządca
zarządca
bezpieczeństwa
plug and procedur pamięci
obiektów
procesów
odwołań
play
lokalnych wirtualnej
mikrojądro
warstwa abstrakcji sprzętu HAL
zarządca
okien
sterowniki
urządzeń
graficznych
sprzęt
Systemy operacyjne
Andrzej Wielgus IMiO
Struktura jądra
• Jądro monolityczne
• Jądro modularne
Ø mikrojądro
Ø moduły jądra
Systemy operacyjne
Andrzej Wielgus IMiO
Jądro modularne systemu UNIX
pliki
wykonywalne
moduł
pamięci
wirtualnej
obsługa
urządzeń
mechanizmy
wspólne
interfejs
VFS
moduł
szeregowania
strumienie
(STREAMS)
Systemy operacyjne
Andrzej Wielgus IMiO
Maszyny wirtualne
• Maszyna wirtualna
Ø obraz maszyny rzeczywistej, wirtualna kopia
komputera
Ø tworzy interfejs identyczny z podstawowym sprzętem
komputerowym, ukrywa przed użytkownikiem cechy
sprzętu
• Zasoby komputera dzielone pomiędzy maszyny
wirtualne
Systemy operacyjne
Andrzej Wielgus IMiO
Maszyny wirtualne
procesy
procesy
procesy
procesy
jądro
jądro
jądro
MW1
MW2
MW3
jądro
implementacja maszyn wirtualnych
sprzęt
sprzęt
Systemy operacyjne
Andrzej Wielgus IMiO
Maszyny wirtualne
• Realizacja
Ø
Ø
Ø
Ø
planowanie przydziału procesora
pamięć wirtualna
dyski wirtualne
wirtualne konsole – terminale
• Przykłady
Ø system operacyjny VM dla komputerów IBM
Ø wirtualne maszyny procesorów:
– Intela na komputerach Sun i DEC,
– Motorola 68000 na PowerPC
Ø maszyna wirtualna Java
Systemy operacyjne
Andrzej Wielgus IMiO
Download