Systemy operacyjne Zadania systemu operacyjnego Dr inż. Ignacy Pardyka Wykłady: 1. Wprowadzenie 2. Procesy i zarządzanie procesorem 3. Synchronizacja i zarządzanie zasobami 4. Zarządzanie pamięcią 5. Systemy plików Pośrednictwo pomiędzy użytkownikiem komputera a sprzętem komputerowym. Zadania: Wykonywanie programów użytkownika i ułatwianie rozwiązywania problemów stawianych przez użytkownika. Dostarczenie przyjaznego interfejsu. Efektywne wykorzystanie sprzętu. Literatura Siberschatz A. Galvin P. Podstawy systemów operacyjnych wyd. 5, WNT, Warszawa 2002 http://wazniak.mimuw.edu.pl http://th-www.if.uj.edu.pl/~placzek/dydaktyka/so/ 1.1 1.3 Wprowadzenie System komputerowy Zadania systemu operacyjnego Architektura systemów komputerowych Zasada działania systemu operacyjnego Rodzaje systemów operacyjnych 1. Sprzęt podstawowe zasoby obliczeniowe (CPU, pamięć, urządzenia). 2. System operacyjny nadzoruje i koordynuje posługiwanie się sprzętem przez wielu użytkowników. 3. Aplikacje określają sposób użycia zasobów systemu do rozwiązywania zadań stawianych przez użytkowników (kompilatory, systemy baz danych, gry, programy wspomagające zarządzanie itp.). 4. Użytkownicy (ludzie, maszyny, inne komputery). 1.2 1.4
Architektura systemu komputerowego Wykonywanie programu przez CPU 1.5 1.7 Działanie systemu komputerowego Cykl rozkazowy CPU i urządzenia we/wy mogą pracować współbieżnie. Każdym urządzeniem steruje kontroler (sterownik urządzenia). Każdy sterownik posiada lokalny bufor. CPU przesyła dane z/do pamięci do/z lokalnego bufora. Pod pojęciem we/wy rozumie się urządzenie wraz z buforem sterownika. Sterownik urządzenia informuje CPU, że zakończył operację we/wy generując przerwanie (interrupt). 1.6 1.8
Cykl rozkazowy wykonanie rozkazu Podstawy działania systemu operacyjnego 1.9 1.11 Podstawy działania systemu operacyjnego Obsługa przerwań (Interrupt Handling) System operacyjny zachowuje stan CPU: stan licznika programu stan innych rejestrów. Określa typ przerwania: odpytywanie (polling) wektorowe (vectored interrupt system) Dla każdego typu przerwań oddzielne procedury. 1.10 1.12
Struktura we/wy tryby pracy Struktura pamięci Po rozpoczęciu operacji we/wy, sterowanie jest zwracane programowi użytkownika dopiero po zakończeniu operacji we/wy. Instrukcja wait (czekaj) wprowadza CPU w stan bezczynny (iddle) aż do następnego przerwania Pętla wait (rywalizacja o dostęp do pamięci). Co najwyżej jedno zamówienie na transmisje danych pozostaje nie obsłużone, wykluczona jest równoczesna praca urządzeń. Po rozpoczęciu operacji we/wy, sterowanie jest zwracane programowi użytkownika natychmiast, nie czekając na zakończenie operacji we/wy. Odwołanie do systemu operacyjnego (System call) żądanie skierowane do systemu, aby pozwolił użytkownikowi na zakończenie operacji we/wy. Tablica stanów urządzeń (Device-status table) dla każdego urządzenia zawiera: typ, adres i stan (nieoperatywne, bezczynne, zajęte). System operacyjny odwołuje się do tej tablicy aby określić stan urządzenia i modyfikować jej zawartość, odnotowując przerwanie. Pamięć główna, operacyjna (Main memory) pamięć, do której CPU ma dostęp bezpośredni. Pamięć pomocnicza (Secondary storage) rozszerzenie pamięci głównej o część nieulotną. Dyski magnetyczne (Magnetic disks) metalowe lub szklane talerze pokryte warstwą materiału magnetycznego. Powierzchnia dysku jest logicznie podzielona na ścieżki (tracks), które dzielą się na sektory. Sterownik dysku odpowiada za interakcję urządzenia i komputera. 1.13 1.15 Struktura bezpośredniego dostępu do pamięci (DMA) Urządzenie dyskowe Dla urządzeń we/wy mogących przesyłać informacje z prędkością porównywalną do prędkości pamięci. Sterownik urządzenia przesyła bloki danych do/z pamięci głównej bez pośrednictwa CPU. Przerwania generowane są po każdym bloku, a nie po każdym bajcie. 1.14 1.16
Hierarchia pamięci Operacje w trybie dualnym - podsumowanie Dzielenie zasobów systemowych wymaga aby SO zapewnił, żeby żaden nieprawidłowo działający program nie powodował błędnego wykonania innego programu. SO rozróżnia dwa tryby pracy: 1. Tryb użytkownika (User mode) wykonywanie w imieniu użytkownika. 2. Tryb monitora albo systemowy, czasem: tryb jądra (Monitor mode) wykonanie w imieniu systemu operacyjnego. Bit trybu pracy (Mode bit) wskazuje na bieżący tryb: monitor (0), user (1). W przypadku przerwania lub błędu sprzętowe przełączanie w tryb systemowy. Instrukcje we/wy - uprzywilejowane. SO powinien zapewnić, że użytkownik nigdy nie przejmie kontroli nad komputerem pracującym w trybie systemowym (przechwyci wektor przerwań). 1.17 1.19 Pamięć podręczna Abstrakcyjne składniki systemu 1.18 1.20
Definicje Podział pamięci w systemie wsadowym Dystrybutor zasobów zarządza zasobami i ich przydzielaniem Program sterujący steruje wykonaniem programów użytkownika i operacjami we/wy. Jądro program wykonywany przez cały czas (pozostałe programy to aplikacje). 1.21 1.23 Systemy dla dużych komputerów Mainframe Systems Systemy wsadowe wieloprogramowe Skrócenie czasu instalowania zadania przez przygotowanie wsadu zadań o podobnych wymaganiach Automatyczne porządkowanie zadań automatyczne przekazywanie sterowania od jednego zadania do drugiego. Rezydentny monitor Inicjalnie sterowanie jest w monitorze Przekazanie sterowania do zadania Po zakończeniu zadania sterowanie wraca do monitora W pamięci jest wiele zadań w tym samym czasie, a CPU jest im przydzielana. 1.22 1.24
Cechy SO potrzebne przy wieloprogramowości Systemy komputerów osobistych Procedury we/wy dostarczane przez system. Zarządzanie pamięcią system musi przydzielać pamięć wielu zadaniom. Planowanie przydziału procesora (CPU scheduling) system musi wybrać, któremu z zadań gotowych do wykonania przydzielić procesor. Przydział urządzeń. Komputer osobisty system komputerowy dedykowany dla pojedynczego użytkownika. Urządzenia we/wy klawiatura, mysz, ekrany, drukarki. Wygoda użytkownika. Pozwalają na korzystanie z technologii opracowanych dla dużych komputerów (przy pojedynczym użytkowniku nie korzysta się z wielu możliwości dostępnych, np. zabezpieczeń. Możliwość instalowania wielu systemów jednocześnie (Windows, Unix, Linux). 1.25 1.27 Systemy wielozadaniowe (z podziałem czasu) Systemy równoległe CPU jest przełączana pomiędzy różne zadania rezydujące w pamięci lub na dysku (przydzielenie CPU tylko do zadania rezydującego w pamięci) Wymiana zadania między pamięcią i dyskiem. Bieżąca komunikacja użytkownika i systemu. Systemy wieloprocesorowe z procesorami silnie powiązanymi. System silnie powiązany procesory korzystają ze wspólnej pamięci i zegara; komunikacja zwykle odbywa się poprzez pamięć. Korzyści: Zwiększona przepustowość Ekonomiczne Zwiększona niezawodność 1.26 1.28
Systemy równoległe (cd.) Systemy rozproszone Wieloprocesorowość symetryczna - Symmetric multiprocessing (SMP) Każdy procesor wykonuje identyczną kopię systemu operacyjnego. Wiele procesów może się wykonywać równocześnie. Większość współczesnych systemów pozwala na SMP Wieloprocesorowość asymetryczna Każdemu procesorowi powierzane jest specyficzne zadanie; procesor główny (master) planuje i przydziela zadania procesorom podrzędnym (slave). Częściej stosowana w bardzo dużych systemach. Rozdzielenie obliczeń między wiele fizycznych procesorów. Systemy luźno powiązane każdy procesor ma lokalną pamięć; procesory komunikują się ze sobą poprzez różne łącza komunikacyjne (szybkie szyny danych, łącza telefoniczne). Korzyści. Wspólne użytkowanie zasobów Podział obciążenia Niezawodność Łączność 1.29 1.31 Architektura systemów wieloprocesorowych symetrycznych Systemy rozproszone (cd.) Wymagają infrastruktury sieciowej. Sieci lokalne (LAN) lub rozległe (WAN) Systemy typu klient-serwer lub równoprawne (peer-topeer). 1.30 1.32
Ogólna struktura systemów typu Klient-Server Systemy czasu rzeczywistego Real-Time Systems Często w sterownikach urządzeń ookreślonym przeznaczeniu (np. sterowniki przemysłowe, aparatura medyczna, aparatura laboratoryjna). Ostre wymagania czasowe. Rozwiązanie sprzętowe lub programowe (Real-Time systems may be either hard or soft real-time). 1.33 1.35 Systemy klasterowe Systemy czasu rzeczywistego(cd.) Pozwalają dwom lub więcej systemom na korzystanie ze wspólnej pamięci. Są bardzo niezawodne. Asymetryczne (Asymmetric clustering): gdy jeden z serwerów wykonuje aplikację, drugi jest wolny). Symetryczne (Symmetric clustering): jednocześnie wszystkie systemy wykonują aplikację). Rozwiązanie sprzętowe (Hard real-time): Szybka pamięć (często ROM) Konflikty z systemami wielozadaniowymi typu uniwersalnego. Rozwiązanie programowe (Soft real-time) Rzadziej w sterownikach przemysłowych i robotach. Najczęściej w systemach wymagających zaawansowanych możliwości (multimedia, virtual reality). 1.34 1.36
Systemy dla urządzeń przenośnych Wędrówka cech i koncepcji systemów operacyjnych Personal Digital Assistants (PDAs) Telefony komórkowe Problemy: Ograniczona pamięć Wolne procesory Małe ekrany. 1.37 1.39 Wędrówka cech i koncepcji systemów operacyjnych Wędrówka cech i koncepcji systemów operacyjnych 1.38 1.40
Wędrówka cech i koncepcji systemów operacyjnych Wędrówka cech i koncepcji systemów operacyjnych 1.41 1.43 Wędrówka cech i koncepcji systemów operacyjnych Wędrówka cech i koncepcji systemów operacyjnych 1.42 1.44
Wędrówka cech i koncepcji systemów operacyjnych 1.45