SOE - Systemy Operacyjne Wykład 1 Wprowadzenie do systemów operacyjnych dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW
System komputerowy Podstawowe pojęcia System operacyjny Jądro systemu
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
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
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
Cele systemu operacyjnego Wykonywanie programów użytkowników Zapewnienie wygodnej pracy użytkownikom Efektywne zarządzanie zasobami systemu komputerowego
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
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
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.
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.
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.
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
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ą
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
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.
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)
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
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
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ń
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
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
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
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
Struktura warstwowa systemu UNIX Procesy Interfejs funkcji systemowych Jądro Sprzęt
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
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
Struktura systemu Windows XP podsystem bezpieczeństwa aplikacje OS/2 aplikacje Win16 aplikacje Win16 aplikacje MSDOS aplikacje POSIX podsystem bezpieczeństwa podsystem OS/2 podsystem Win16 podsystem MSDOS podsystem POSIX tryb użytkownika podsystem Win32 tryb jądra zarządca wejścia-wyjścia system plików pamięć podręczna sterowniki urządzeń zarządca obiektów monitor bezpieczeństwa odwołań Egzekutor zarządca procesów mikrojądro zarządca plug and play warstwa abstrakcji sprzętu HAL wywołania procedur lokalnych zarządca pamięci wirtualnej zarządca okien sterowniki urządzeń graficznych sprzęt
Struktura jądra Jądro monolityczne Jądro modularne mikrojądro moduły jądra
Jądro modularne systemu UNIX moduł pamięci wirtualnej pliki wykonywalne obsługa urządzeń mechanizmy wspólne moduł szeregowania strumienie (STREAMS) interfejs VFS
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
Maszyny wirtualne procesy procesy procesy procesy jądro MW1 jądro MW2 jądro MW3 jądro sprzęt implementacja maszyn wirtualnych sprzęt
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