Systemy operacyjne wprowadzenie 1 Definicja systemu operacyjnego (1) Definicja systemu operacyjnego (2) System operacyjny jest zbiorem ręcznych i automatycznych procedur, które pozwalają grupie osób na efektywne współdzielenie urządzeń maszyny cyfrowej Per Brinch Hansen System operacyjny (nadzorczy, nadrzędny, sterujący) jest to zorganizowany zespół programów, które pośredniczą między sprzętem a użytkownikami, dostarczając użytkownikom zestawu środków ułatwiających projektowanie, kodowanie, uruchamianie i eksploatację programów oraz w tym samym czasie sterują przydziałem zasobów dla zapewnienia efektywnego działania Alen Shaw System operacyjny jest programem, który działa jako pośrednik między użytkownikiem komputera a sprzętem komputerowym. Zadaniem systemu operacyjnego jest tworzenie środowiska, w którym użytkownik może wykonywać programy w sposób wygodny i wydajny. Abraham Silberschatz System operacyjny jest warstwą oprogramowania operującą bezpośredni na sprzęcie, której celem jest zasobami systemu komputerowego i stworzenie użytkownikowi środowiska łatwiejszego do zrozumienia i wykorzystania. Andrew Tanenbaum Systemy operacyjne wprowadzenie 2 Miejsce systemu operacyjnego w architekturze systemu komputerowego Zadania systemu operacyjnego Programy użytkowe System operacyjny Sprzęt Definicja interfejsu użytkownika Udostępnianie systemu plików Udostępnianie środowiska do wykonywania programów użytkownika mechanizm ładowania i uruchamiani programów mechanizmy synchronizacji i komunikacji procesów Sterowanie urządzeniami wejścia-wyjścia Obsługa podstawowej klasy błędów Zarządzanie zasobami (sprzęt i oprogramowanie) systemu komputerowego Systemy operacyjne wprowadzenie 3 Systemy operacyjne wprowadzenie 4 Zarządzanie zasobami systemu komputerowego Zasoby zarządzane przez system operacyjny Przydział zasobów Synchronizacja dostępu do zasobów Ochrona i autoryzacja dostępu do zasobów Odzyskiwanie zasobów Rozliczanie gromadzenie danych o wykorzystaniu zasobów Systemy operacyjne wprowadzenie 5 Procesor przydział czasu procesora Pamięć alokacja przestrzeni adresowej dla procesów transformacja adresów Urządzenia zewnętrzne udostępnianie i sterowanie urządzeniami pamięci masowej alokacja przestrzeni dyskowej udostępnianie i sterownie drukarkami, skanerami itp. Informacja (system plików) organizacja i udostępnianie informacji ochrona i autoryzacja dostępu do informacji Systemy operacyjne wprowadzenie 6
Systemy operacyjne wprowadzenie 7 sposób przetwarzania dopuszczalną liczbę wykonywanych programów Systemy przetwarzania bezpośredniego (ang. on-line processing systems) systemy interakcyjne występuje bezpośrednia interakcja pomiędzy użytkownikiem a systemem wykonywanie zadania użytkownika rozpoczyna się zaraz po przedłożeniu Systemy przetwarzania pośredniego (ang. off-line processing systems) systemy wsadowe występuje istotna, nieznana zwłoka czasowa między przedłożeniem zadania a rozpoczęciem jego wykonywania niemożliwa jest ingerencja użytkownika w wykonywanie zadania Systemy jednoprogramowe niedopuszczalne jest rozpoczęcie wykonywania następnego zadania użytkownika przed zakończeniem poprzedniego Systemy wieloprogramowe dopuszczalne jest istnienie jednocześnie wielu zadań (procesów), którym kolejno przydzielany jest procesor. Zwolnienie procesora następuje w wyniku żądania przydziału dodatkowego zasobu zainicjowaniu operacji wejścia-wyjścia przekroczenia ustalonego limitu czasu (kwantu czasu) systemy z podziałem czasu (ang. time-sharing systems) Systemy operacyjne wprowadzenie 8 liczbę użytkowników Inne rodzaje systemów operacyjnych Systemy dla jednego użytkownika zasoby systemu przeznaczone są dla jednego użytkownika (np. w przypadku komputerów osobistych), nie ma mechanizmów autoryzacji dostępu, a mechanizmy ochrony informacji są ograniczone Systemy wielodostępne wielu użytkowników może jednocześnie korzystać ze współdzielonych zasobów systemu w taki sposób, że żaden z nich nie musi być świadomy istnienia innych użytkowników, a system synchronizuje dostęp do zasobów i gwarantuje ochronę informacji przed niepowołaną ingerencją Systemy czasu rzeczywistego (ang. real-time systems) umożliwiają wyspecyfikowanie czasu zakończenie przetwarzania zadania, tzw. linii krytycznej (ang. deadline) Systemy sieciowe i rozproszone (ang. network and distributed systems) umożliwiają zbiorem rozproszonych jednostek przetwarzających, czyli zbiorem jednostek (komputerów), które są zintegrowane siecią komputerową i nie współdzielą fizycznie zasobów Systemy operacyjne wprowadzenie 9 Systemy operacyjne wprowadzenie 10 Ogólna struktura systemu operacyjnego Zasada działania systemu operacyjnego interpreter poleceń Jądro systemu operacyjnego Sprzęt programy systemowe Odwołania do jądra systemu przez system przerwań lub specjalne instrukcje (przerwanie programowe) Dualny tryb pracy tryb użytkownika (ang. user mode) i tryb systemowy (ang. system mode) Wyróżnienie instrukcji uprzywilejowanych, wykonywanych tylko w trybie systemowym Sprzętowa ochrona pamięci Uprzywilejowanie instrukcji wejścia-wyjścia Przerwanie zegarowe Systemy operacyjne wprowadzenie 11 Systemy operacyjne wprowadzenie 12
Systemy operacyjne wprowadzenie 13 Przerwania w systemie komputerowym Zasady ochrony pamięci Przerwanie jest reakcją na asynchroniczne zdarzenie, polegającą na automatycznym zapamiętaniu bieżącego stanu procesora w celu późniejszego odtworzenia oraz przekazaniu sterowania do ustalonej procedury obsługi przerwania. Podział przerwań ze względu na źródło: przerwania zewnętrzne od urządzeń zewnętrznych przerwania programowe wykonanie specjalnej instrukcji przerwania diagnostyczne pułapki, błędy programowe i sprzętowe W wyniku wykonywania programu następuje odwołanie do komórek pamięci o określonych adresach Zaalokowane obszary pamięci opisane są przez dwa parametry: bazę (ang. base) i granicę (ang. limit) adres TAK < TAK pamięć rejestr bazowy rejestr graniczny Systemy operacyjne wprowadzenie 14 Przerwanie zegarowe Uruchamianie zadań podstawowe pojęcia Przerwanie zegarowe generowane jest przez czasomierz (ang. timer) po wyznaczonym okresie czasu. Obsługa przerwania zegarowego oznacza przekazanie sterowania do jądra systemu operacyjnego, umożliwiając w ten sposób wykonanie pewnych zdań okresowych oraz uniemożliwiając zawłaszczenie procesora przez program użytkownika. programy użytkow. program 2 program 1 program jądra przerwanie zegarowe Użytkownik (ang. user) jednostka zlecająca wykonywanie zadań Praca (ang. job) zbiór akcji niezbędnych do realizacji określonego przetwarzania, np. sekwencja: kompilacja, załadowanie (uruchomienie) programu i wykonanie programu Proces (zadanie, ang. process, task) najmniejsza jednostka aktywności zarządzana przez system operacyjny, która może ubiegać się o zasoby systemu komputerowego czas Systemy operacyjne wprowadzenie 15 Systemy operacyjne wprowadzenie 16 Rodzaje użytkowników systemu operacyjnego Koncepcja procesu Użytkownik końcowy korzysta z poleceń i programów użytkowych Programista w swoich programach korzysta z usług jądra (jako użytkownik końcowy głównie z edytorów, kompilatorów i debuggerów) Administrator poprzez system praw ustala zasady dostępności zasobów dla użytkowników oraz rozwiązuje bieżące problemy związane w funkcjonowaniem systemu Programista systemowy modyfikuje program jądra stosownie do aktualnych potrzeb użytkowników lub urządzeń Systemy operacyjne wprowadzenie 17 Proces jest elementarną jednostką pracy (aktywności) zarządzaną przez system operacyjny, która może ubiegać się o zasoby systemu komputerowego Proces = wykonujący się program Zasoby potrzebne do wykonania procesu czas procesora pamięć operacyjna pliki urządzenia wejścia-wyjścia Proces wykonuje kod programu użytkownika (proces użytkownika) lub kod systemowy (proces systemowy) Systemy operacyjne wprowadzenie 18
Systemy operacyjne wprowadzenie 19 Stany procesu Cykl zmian stanów procesu Nowy (ang. new) proces jest tworzony Aktywny (ang. active) wykonywane są instrukcje programu Zawieszony (oczekujący, ang. suspanded, waiting) proces oczekuje na jakieś zdarzenie, np. na zakończenie operacji wejścia-wyjścia, na przydział dodatkowego zasobu, synchronizuje się z innymi procesami Gotowy (ang. ready) proces czeka na przydział procesora Zakończony (ang. terminated) proces zakończył działanie i zwalnia zasoby przyjęcie nowy gotowy zakończenie operacji wej-wyj lub wystąpienie zdarzenia decyzja planisty oczekujący przerwanie aktywny zakończony wyjście zażądanie operacji wejwyj lub oczekiwanie na zdarzenie Systemy operacyjne wprowadzenie 20 Elementy składowe jądra systemu operacyjnego Moduł zarządzania procesami Moduł zarządzania procesami Moduł zarządzania pamięcią operacyjną Moduł zarządzania plikami Podsystem wejścia-wyjścia Moduł zarządzania pamięcią pomocniczą Interfejs sieciowy Podsystem ochrony Interpreter poleceń (?) Tworzenie i usuwanie procesów Wstrzymywanie i wznawianie procesów (przełączanie kontekstu) Planowanie przydziału procesora (szeregowanie procesów) Dostarczanie mechanizmów synchronizacji i komunikacji procesów Dostarczanie mechanizmów obsługi zakleszczeń (ang. deadlock) Systemy operacyjne wprowadzenie 21 Systemy operacyjne wprowadzenie 22 Moduł zarządzania pamięcią operacyjną Zarządzanie plikami Przydzielanie i zwalnianie obszarów pamięci Ochrona pamięci utrzymywanie informacji o stanie zajętych obszarów pamięci (prawa dostępu, właściciel itp.) Realizacja wymiany procesów Realizacja wymiany stron w przypadku wirtualizacji Tworzenie i usuwanie plików Tworzenie i usuwanie katalogów Dostarczanie elementarnych operacji manipulowania zawartością plików (zapis, odczyt, usuwanie zawartości) Dostarczanie elementarnych operacji do manipulowania katalogami Odwzorowanie plików na obszary pamięci pomocniczej Składowanie plików na trwałych nośnikach pamięci Systemy operacyjne wprowadzenie 23 Systemy operacyjne wprowadzenie 24
Systemy operacyjne wprowadzenie 25 Podsystem wejścia-wyjścia wyjścia Zarządzanie pamięcią pomocniczą (przestrzenią dyskową) Zarządzanie pamięcią przeznaczoną na potrzeby obsługi urządzeń zewnętrznych buforowanie pamięcią podręczną spooling (simultaneous peripheral operation on-line jednoczesna, bezpośrednia praca urządzeń) Zapewnianie dostępności modułów sterujących urządzeń (programów obsługi, ang. device drivers) Udostępnianie ogólnego interfejsu do modułów sterujących urządzeń Zarządzanie obszarami wolnymi Przydzielanie przestrzeni dyskowej Planowanie przydziału obszarów pamięci dyskowej Systemy operacyjne wprowadzenie 26 Podsystem ochrony Interpreter poleceń Utrzymywanie praw dostępu Kontrola praw przy dostępie do zasobów Udostępnianie mechanizmu zmian praw dostępu Autoryzacja (ang. authorisation) i uwierzytelnianie (ang. authentication) użytkownika Pobieranie poleceń od użytkownika Interpretowanie poleceń Wykonywanie poleceń Przekazywanie użytkownikowi wyników wykonania poleceń, informacji o problemach lub błędach Systemy operacyjne wprowadzenie 27 Systemy operacyjne wprowadzenie 28 Warstwy jądra systemu operacyjnego informacją (system plików) urządzeniami zewnętrznymi procesami (warst. wyż.) pamięcią procesami (warstwa niższa) maszyna podstawowa Systemy operacyjne wprowadzenie 29