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