Plan wykładu System operacyjny Zarządzanie zasobami Mechanizmy ochrony zasobów niepodzielnych Podstawy Informatyki Systemy operacyjne dr inż. Alina MOMOT [email protected] http://zti.polsl.pl/AMomot/pi dr inż. Alina MOMOT Systemy operacyjne Plan wykładu System operacyjny Zarządzanie zasobami Mechanizmy ochrony zasobów niepodzielnych Plan wykładu 1 System operacyjny Definicje systemu operacyjnego Zadania systemu operacyjnego Klasyfikacja systemów operacyjnych 2 Zarządzanie zasobami Zasoby systemu komputerowego Zasoby podzielne i niepodzielne Sposoby ochrony zasobów niepodzielnych 3 Mechanizmy ochrony zasobów niepodzielnych Procedura TAS Zasuwka Semafor dr inż. Alina MOMOT Systemy operacyjne Plan wykładu System operacyjny Zarządzanie zasobami Mechanizmy ochrony zasobów niepodzielnych Definicje systemu operacyjnego Zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Definicja wg Alana Shaw System operacyjny 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. Stosowane wymiennie określenia: system operacyjny, system nadzorczy, system nadrzędny, system sterujący. dr inż. Alina MOMOT Systemy operacyjne Plan wykładu System operacyjny Zarządzanie zasobami Mechanizmy ochrony zasobów niepodzielnych Definicje systemu operacyjnego Zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Inne definicje Abraham Silberschatz 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. Andrew Tanenbaum System operacyjny jest warstwą oprogramowania operującą bezpośrednio na sprzęcie, której celem jest zarządzanie zasobami systemu komputerowego i stworzenie użytkownikowi środowiska łatwiejszego do zrozumienia i wykorzystania. dr inż. Alina MOMOT Systemy operacyjne Plan wykładu System operacyjny Zarządzanie zasobami Mechanizmy ochrony zasobów niepodzielnych Definicje systemu operacyjnego Zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Czym jest system operacyjny Nie ma precyzyjnego określenia, które składniki wchodzą w skład systemu operacyjnego jako jego części. Ogólnie w strukturze SO wyróżnia się: jądro, programy systemowe. Jądro zbiór modułów, które ukrywają szczegóły sprzętowej realizacji systemu komputerowego, udostępniając pewien zestaw usług, wykorzystywanych między innymi do implementacji programów systemowych. dr inż. Alina MOMOT Systemy operacyjne Plan wykładu System operacyjny Zarządzanie zasobami Mechanizmy ochrony zasobów niepodzielnych Definicje systemu operacyjnego Zadania systemu operacyjnego Klasyfikacja systemów operacyjnych System operacyjny jako pośrednik System operacyjny pośredniczy pomiędzy użytkownikiem a sprzętem, dostarczając wygodne środowisko do wykonywania programów. dr inż. Alina MOMOT Systemy operacyjne Plan wykładu System operacyjny Zarządzanie zasobami Mechanizmy ochrony zasobów niepodzielnych Definicje systemu operacyjnego Zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Efektywność a wygoda System operacyjny dostarcza tzw. interfejs użytkownika, który umożliwia interakcję z systemem komputerowym jako: zbiór poleceń lub system okienkowy wraz z odpowiednim menu. Dwa ogólne, niezależne cele projektowe systemów operacyjnych to: efektywność zarządzania zasobami, (kluczowy w rozwoju rodziny systemów uniksowych) wygodny interfejs dla użytkownika (charakterystyczny dla systemów rodziny MS Windows). dr inż. Alina MOMOT Systemy operacyjne Plan wykładu System operacyjny Zarządzanie zasobami Mechanizmy ochrony zasobów niepodzielnych Definicje systemu operacyjnego Zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Wprowadzenie Użytkownik końcowy korzysta z programów (aplikacji), na potrzeby których przydzielane są zasoby systemu komputerowego. Przydziałem zasobów zarządza system, dzięki czemu można uzyskać: stosunkowo duży stopień niezależności programów od sprzętu, odpowiedni poziom bezpieczeństwa i sprawności działania. Program użytkownika Kompilator języka wyższego rzędu Asembler/Makroasembler Bootstrap Loader/Linker System operacyjny Przerwania Układ we/wy DMA Procesor PaO dr inż. Alina MOMOT Zasoby programowe Jądro systemu Sprzęt Systemy operacyjne Plan wykładu System operacyjny Zarządzanie zasobami Mechanizmy ochrony zasobów niepodzielnych Definicje systemu operacyjnego Zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zadania systemu operacyjnego (1) 1. Udostępnianie systemu plików. 2. Udostępnianie środowiska do wykonywania programów: mechanizm ładowania i uruchamiania programów dostarczenie struktur danych do organizacji wykonywania programu oraz zachowywania i odtwarzania stanu przetwarzania (procesy i przełączanie kontekstu), mechanizmy synchronizacji i komunikacji procesów udostępnienie mechanizmów komunikacji pomiędzy procesami kolejki komunikatów, strumienie, pamięć współdzielona oraz mechanizmów synchronizacji procesów (np. semafory). zarządzanie czasem procesora, pamięcią, ochrona danych i pamięci. dr inż. Alina MOMOT Systemy operacyjne Plan wykładu System operacyjny Zarządzanie zasobami Mechanizmy ochrony zasobów niepodzielnych Definicje systemu operacyjnego Zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zadania systemu operacyjnego (2) 3. Sterowanie urządzeniami wejścia-wyjścia: odpowiednie moduły sterujące (integrowane z systemem operacyjnym) inicjalizują pracę urządzeń zewnętrznych, pośredniczą w efektywnym przekazywaniu danych pomiędzy jednostką centralną a tymi urządzeniami. 4. Obsługa podstawowej klasy błędów: system operacyjny reaguje na błędy użytkowników, np. niedostępność zasobów, brak prawa dostępu, programistów, np. błąd dzielenia przez zero, naruszenie ochrony pamięci, nieprawidłowy kod rozkazu, systemu, np. błąd braku strony, błąd magistrali. dr inż. Alina MOMOT Systemy operacyjne Plan wykładu System operacyjny Zarządzanie zasobami Mechanizmy ochrony zasobów niepodzielnych Definicje systemu operacyjnego Zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Podział ze względu na sposób przetwarzania 1 Systemy przetwarzania bezpośredniego – systemy interakcyjne występuje bezpośrednia interakcja pomiędzy użytkownikiem a systemem, wykonywanie zadania użytkownika rozpoczyna się zaraz po jego przedłożeniu. 2 Systemy przetwarzania pośredniego – systemy wsadowe występuje znacząca zwłoka czasowa między przedłożeniem a rozpoczęciem wykonywania zadania, niemożliwa jest ingerencja użytkownika w wykonywanie zadania. dr inż. Alina MOMOT Systemy operacyjne Plan wykładu System operacyjny Zarządzanie zasobami Mechanizmy ochrony zasobów niepodzielnych Definicje systemu operacyjnego Zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Podział ze względu na dopuszczalną liczbę zadań 1 Systemy jednozadaniowe – niedopuszczalne jest rozpoczęcie wykonywania następnego zadania użytkownika przed zakończeniem poprzedniego. 2 Systemy wielozadaniowe – dopuszczalne jest istnienie jednocześnie wielu zadań (procesów), którym zgodnie z pewną strategią przydzielany jest procesor. Zwolnienie procesora następuje w wyniku: żądania przydziału dodatkowego zasobu, zainicjowania operacji wejścia/wyjścia, przekroczenia ustalonego limitu czasu (kwantu czasu), uzyskania gotowości przez inne zadanie o wyższym priorytecie. dr inż. Alina MOMOT Systemy operacyjne Plan wykładu System operacyjny Zarządzanie zasobami Mechanizmy ochrony zasobów niepodzielnych Definicje systemu operacyjnego Zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Podział systemów wielozadaniowych Wielozadaniowe systemy operacyjne mogą oferować wywłaszczanie. W systemie z wywłaszczaniem jest możliwe przerwanie wykonywania aktywnego procesu i przeniesienie go z powrotem do kolejki kontrolowanej przez algorytm szeregowania, bez wywłaszczania zadania muszą przełączać się dobrowolnie (proces aktywny jest przenoszony do kolejki procesów oczekujących tylko wtedy, gdy sam przerwie swoje działanie; dopóki tego nie uczyni lub nie zakończy działania, żaden inny proces nie otrzyma dostępu do procesora). dr inż. Alina MOMOT Systemy operacyjne Plan wykładu System operacyjny Zarządzanie zasobami Mechanizmy ochrony zasobów niepodzielnych Definicje systemu operacyjnego Zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Podział ze względu na liczbę użytkowników 1 Systemy dla jednego użytkownika – zasoby przeznaczone są dla jednego użytkownika, np. w przypadku komputerów osobistych nie ma mechanizmów autoryzacji dostępu, mechanizmy ochrony informacji są ograniczone. 2 Systemy wielodostępne – wielu użytkowników może korzystać z zasobów systemu system operacyjny gwarantuje ochronę przed niepowołaną ingerencją. dr inż. Alina MOMOT Systemy operacyjne Plan wykładu System operacyjny Zarządzanie zasobami Mechanizmy ochrony zasobów niepodzielnych Definicje systemu operacyjnego Zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Inne rodzaje systemów operacyjnych 1 Systemy czasu rzeczywistego (ang. real-time systems) – zorientowane na przetwarzanie z uwzględnieniem czasu zakończenie zadania, tzw. linii krytycznej (ang. deadline). 2 Systemy sieciowe i rozproszone (ang. network and distributed systems) – umożliwiają zarządzanie zbiorem rozproszonych jednostek przetwarzających zbiór komputerów jest zintegrowany w sieć komputerową, komputery nie współdzielą fizycznie zasobów. 3 Systemy operacyjne komputerów naręcznych – tworzone dla rozwiązań typu PDA, czy telefonów komórkowych podlegają istotnym ograniczeniom zasobowym. dr inż. Alina MOMOT Systemy operacyjne Plan wykładu System operacyjny Zarządzanie zasobami Mechanizmy ochrony zasobów niepodzielnych Definicje systemu operacyjnego Zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Inne rozwiązania 1 Systemy operacyjne pracujące na maszynie wirtualnej – system wirtualny w postaci procesu działającego pod kontrolą innego systemu operacyjnego. 2 Język programowania wykorzystywany jako system operacyjny. W komputerach 8-bitowych często rolę powłoki systemu operacyjnego spełniał interpreter poleceń języka BASIC. W dużych systemach komputerowych, np. serii Odra 1300 implementowany był język Jean, który mógł pracować zarówno pod kontrolą innego systemu operacyjnego (np. GEORGE 3), jak również samodzielnie. Językami programowania, których implementacja może stanowić samodzielne systemy operacyjne są również FORTH (stosowany w systemach sterowania automatyki przemysłowej) oraz Smalltalk. dr inż. Alina MOMOT Systemy operacyjne Plan wykładu System operacyjny Zarządzanie zasobami Mechanizmy ochrony zasobów niepodzielnych Zasoby systemu komputerowego Zasoby podzielne i niepodzielne Sposoby ochrony zasobów niepodzielnych Zasoby systemu komputerowego Zasób systemu zbiór układów wewnętrznych maszyny cyfrowej oraz zbiór programów pomocniczych i funkcji bibliotecznych niezbędnych do realizacji procesów. Zasoby dzieli się na: sprzętowe: procesor, pamięć operacyjna, urządzenia zewnętrzne, system plików, programowe: biblioteki funkcji i programy pomocnicze. dr inż. Alina MOMOT Systemy operacyjne Plan wykładu System operacyjny Zarządzanie zasobami Mechanizmy ochrony zasobów niepodzielnych Zasoby systemu komputerowego Zasoby podzielne i niepodzielne Sposoby ochrony zasobów niepodzielnych Zasoby podzielne Zasób podzielny taki, który oddać innemu zadaniu do wykorzystania a następnie powrócić do obsługi zadania pierwszego (można przerywać korzystanie z danego zasobu), np. procesor. Podział czasu procesora(time-sharing) dr inż. Alina MOMOT Systemy operacyjne Plan wykładu System operacyjny Zarządzanie zasobami Mechanizmy ochrony zasobów niepodzielnych Zasoby systemu komputerowego Zasoby podzielne i niepodzielne Sposoby ochrony zasobów niepodzielnych Zasoby niepodzielne Zasób niepodzielny taki, z którego może korzystać na raz tylko jedno zadanie (innemu zadaniu można przydzielić zasób dopiero, gdy aktualnie z niego korzystające zakończy używanie go), np. drukarka. dr inż. Alina MOMOT Systemy operacyjne Plan wykładu System operacyjny Zarządzanie zasobami Mechanizmy ochrony zasobów niepodzielnych Zasoby systemu komputerowego Zasoby podzielne i niepodzielne Sposoby ochrony zasobów niepodzielnych Sposób ochrony zasobów niepodzielnych Przed skorzystaniem z zasobu niepodzielnego proces musi poprosić system operacyjny o ten zasób Procedura wejścia do zasobu: 1 sprawdzić, czy zasób o który prosi proces jest dostępny 2 jeśli tak przydzielić go procesowi i odnotować ten fakt; jeśli nie odmówić procesowi i go wstrzymać (do czasu zwolnienia zasobu). Po wykorzystaniu zasobu proces oddaje zasób do systemu Procedura wyjścia z zasobu: 1 odnotować fakt zwrócenia zasobu przez proces do puli systemu. dr inż. Alina MOMOT Systemy operacyjne Plan wykładu System operacyjny Zarządzanie zasobami Mechanizmy ochrony zasobów niepodzielnych Zasoby systemu komputerowego Zasoby podzielne i niepodzielne Sposoby ochrony zasobów niepodzielnych Przykład Proces 1 i Proces 2 korzystają z jednego niepodzielnego zasobu: drukarki. dr inż. Alina MOMOT Systemy operacyjne Plan wykładu System operacyjny Zarządzanie zasobami Mechanizmy ochrony zasobów niepodzielnych Procedura TAS Zasuwka Semafor Procedura TAS (Test And Set) Najprostszy sposób realizacji procedury wejścia do zasobu – najczęściej realizowana jako pojedynczy rozkaz maszynowy. Wykorzystanie zmiennej przyjmującej dwie wartości: 0 – zasób dostępny, 1 – zasób zajęty. TAS m Zablokuj dostęp do zmiennej m jeżeli m = 0, to m=1 licznik rozkazów = licznik rozkazów + 2 w przeciwnym razie licznik rozkazów = licznik rozkazów + 1 Odblokuj dostęp do zmiennej m dr inż. Alina MOMOT Systemy operacyjne Plan wykładu System operacyjny Zarządzanie zasobami Mechanizmy ochrony zasobów niepodzielnych Procedura TAS Zasuwka Semafor Ochrona zasobu z użyciem TAS Procedura wejścia ET: TAS M SOB ET Procedura wyjścia M := 0 dr inż. Alina MOMOT Systemy operacyjne Plan wykładu System operacyjny Zarządzanie zasobami Mechanizmy ochrony zasobów niepodzielnych Procedura TAS Zasuwka Semafor Ochrona zasobu z użyciem TAS Procedura wejścia ET: TAS M SOB ET Procedura wyjścia M := 0 Przykład ochrony drukarki (początkowo dr = 0): Proces 1 ··· ET1: TAS dr SOB ET1 Drukowanie POB St0 ŁAD dr dr inż. Alina MOMOT Proces 2 ··· ET2: TAS dr SOB ET2 Drukowanie POB St0 ŁAD dr Systemy operacyjne Plan wykładu System operacyjny Zarządzanie zasobami Mechanizmy ochrony zasobów niepodzielnych Procedura TAS Zasuwka Semafor Wady instrukcji TAS Czekanie aktywne. Brak porządkowania procesów. Możliwe ”zagłodzenie” procesu. dr inż. Alina MOMOT Systemy operacyjne Plan wykładu System operacyjny Zarządzanie zasobami Mechanizmy ochrony zasobów niepodzielnych Procedura TAS Zasuwka Semafor Zasuwka Zmienna binarna p wraz ze stowarzyszoną z nią kolejką f(p) Procedura wejścia do zasobu jeżeli p = 0, to p := 1 w przeciwnym razie zawieś program i dołącz do kolejki f(p) Procedura wyjścia z zasobu jeżeli f(p) 6= 0, to wprowadź kolejny program z kolejki w stan aktywny i usuń go z kolejki w przeciwnym razie p := 0 dr inż. Alina MOMOT Systemy operacyjne Plan wykładu System operacyjny Zarządzanie zasobami Mechanizmy ochrony zasobów niepodzielnych Procedura TAS Zasuwka Semafor Semafor Zmienna całkowita e(s) wraz ze stowarzyszoną z nią kolejką f(s). Zmiennej można nadać wartość początkową i można się odwoływać tylko za pośrednictwem dwu niepodzielnych operacji: P oraz V. Interpretacja wartości zmiennej e(s): e(s) > 0 określa liczbę wolnych zasobów danego typu e(s) = 0 oznacza zasób wyczerpany e(s) < 0 stwierdza istnienie kolejki o długości |e(s)| dr inż. Alina MOMOT Systemy operacyjne Plan wykładu System operacyjny Zarządzanie zasobami Mechanizmy ochrony zasobów niepodzielnych Procedura TAS Zasuwka Semafor Semafor - procedury P oraz V Procedura wejścia P(s) e(s) = e(s) − 1 jeżeli e(s) < 0, to zmień stan procesu pytającego na zawieszony wprowadź proces do kolejki f(s) Procedura wyjścia V(s) e(s) = e(s) + 1 jeżeli e(s) ¬ 0, to wyprowadź z kolejki f(s) pierwszy proces i ustaw jego stan na aktywny dr inż. Alina MOMOT Systemy operacyjne Plan wykładu System operacyjny Zarządzanie zasobami Mechanizmy ochrony zasobów niepodzielnych Procedura TAS Zasuwka Semafor Przykład Wykorzystanie semafora dla ochrony zasobu niepodzielnego: drukarki. Założenia: Dwa procesy chcą skorzystać z jednej drukarki. Istnieje semafor dr i zmienna e0 (dr ) = 1. Proces 1 ··· P(dr) Drukowanie V(dr) dr inż. Alina MOMOT Proces 2 ··· P(dr) Drukowanie V(dr) Systemy operacyjne Plan wykładu System operacyjny Zarządzanie zasobami Mechanizmy ochrony zasobów niepodzielnych Procedura TAS Zasuwka Semafor Semafory - uzupełnienie Semafory najczęściej stosuje się do synchronizacji dostępu do zasobów systemowych współdzielonych przez kilka zadań, (aby zapobiec problemom wynikającym z prób jednoczesnego dostępu i modyfikacji danego zasobu). są zwykle implementowane w obszarze jądra systemu operacyjnego, co pozwala na zaawansowaną obsługę zadań chcących uzyskać dostęp do zasobu: wstrzymywanie ich do czasu zwolnienia semafora powiązanego z danym zasobem, wznowienie pracy zadania oczekującego na semaforze, utrzymywanie semafora nawet po zakończeniu zadania, które go utworzyło. dr inż. Alina MOMOT Systemy operacyjne