Systemy operacyjne Systemy operacyjne Dr inż. Ignacy Pardyka Literatura Siberschatz A. i inn. Podstawy systemów operacyjnych, WNT, Warszawa Skorupski A. Podstawy budowy i działania komputerów, WKiŁ, Warszawa 2000 Lista slajdów: 01 Wprowadzenie 02 Struktury 03 struktury cd 04 Procesy i wątki 06 Przydzielanie procesora 07 Synchronizacja i blokady 09 Zarządzanie pamięcią 10 Pamięć wirtualna 11 System plików i pamięć pomocnicza 15 Struktury sieciowe 1.1 1.2 Systemy operacyjne Zadania systemu operacyjnego Zadania systemu operacyjnego Systemy dla dużych komputerów (Mainframe Systems) Systemy dla komputerów osobistych (Desktop Systems) Systemy wieloprocesorowe Systemy rozproszone (distributed) Systemy klasterowe (clustered) Systemy czasu rzeczywistego (Real Time Systems) Systemy dla urządzeń przenośnych (Handheld Systems) Środowisko obliczeniowe 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. 1.3 1.4 System komputerowy Abstrakcyjne składniki systemu 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.5 1.6 1
Definicje Systemy dla dużych komputerów Mainframe Systems 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). 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 1.7 1.8 Podział pamięci w systemie wsadowym Systemy wsadowe wieloprogramowe Wpamięci jest wiele zadań w tym samym czasie, a CPU jest im przydzielana. 1.9 1.10 Cechy SO potrzebne przy wieloprogramowości Systemy wielozadaniowe (z podziałem czasu) 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ń. 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. 1.11 1.12 2
Systemy komputerów osobistych Systemy równoległe 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). 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.13 1.14 Systemy równoległe (cd.) Architektura systemów wieloprocesorowych symetrycznych 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. 1.15 1.16 Systemy rozproszone Systemy rozproszone (cd.) 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ść Wymagają infrastruktury sieciowej. Sieci lokalne (LAN) lub rozległe (WAN) Systemy typu klient-serwer lub równoprawne (peer-topeer). 1.17 1.18 3
Ogólna struktura systemów typu Klient-Server Systemy klasterowe 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ę). 1.19 1.20 Systemy czasu rzeczywistego Real-Time Systems Często w sterownikach urządzeń o okreś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). Systemy czasu rzeczywistego(cd.) 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.21 1.22 Systemy dla urzadzeń 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.23 1.24 4
Środowisko obliczeniowe Lokalne, tradycyjne (Traditional Computing) Z wykorzystaniem sieci (Web-Based Computing) Wbudowane (Embedded Computing) 1.25 5