Zdzisław Stryła Instytut Fizyki UAM W8 – System operacyjny Zdzisław Stryła Instytut Fizyki UAM Zdzisław Stryła komputer
Czym jest system operacyjny? System operacyjny jest programem (zbiorem programów), który zarządza zasobami komputera, obsługuje programistów i szereguje wykonywanie innych programów. System operacyjny jest programem, który steruje wykonywaniem programów użytkowych i działa jako interfejs między użytkownikiem a sprzętem komputerowym. Realizuje on dwa cele: wygodę; sprawność. Zdzisław Stryła komputer
Zdzisław Stryła komputer Dlaczego system? W większości przypadków komputery używane są do wykonywanie jednego lub wielu programów użytkowych (aplikacji). Użytkownika końcowego na ogół nie interesuje architektura komputerów. Patrzy na system komputerowy poprzez swój program użytkowy. Program ten jest przygotowywany przez programistę tworzacego oprogramowanie użytkowe. Zdzisław Stryła komputer
Zdzisław Stryła komputer Dlaczego system ? Jest oczywiste, że opracowanie programu użytkowego w języku maszynowym z uwzględnieniem pełnego sterowania sprzętem komputerowym, staje się skrajnie złożone. Dla ułatwienia stosuje się programy narzędziowe i systemowe. Umożliwiają one realizowanie często używanych funkcji, niezbędnych dla: ułatwienia tworzenia programów, zarządzanie plikami; sterowania urządzeniami wejścia-wyjścia. Programista wykorzystuje te ułatwienia, przygotowując program użytkowy, a program ten podczas pracy uruchamia programy narzędziowe w celu wykonania pewnych funkcji. Zdzisław Stryła komputer
Zdzisław Stryła komputer System Cechą charakterystyczną S.O. jest to, że oddaje sterowanie wykonywanemu zadaniu, po czym wznawia sterowanie dla przygotowania następnego. Zdzisław Stryła komputer
System i reszta System operacyjny Sprzęt System operacyjny maskuje przed programistą szczegóły sprzętowe i dostarcza mu wygodnego interfejsu z systemem komputerowym. Działa jako pośrednik, ułatwiając programiście i programom użytkowym dostęp do tych udogodnień i usług. Użytkownik końcowy Programy użytkowe programista Programy narzędziowe System operacyjny Autor progr. narzędziowych Sprzęt Projektant S.O. Zdzisław Stryła komputer
Zdzisław Stryła komputer Kiedy nam potrzebny S.O. ? Tworzenie programów. S.O. dostarcza wielu ułatwień i usług (programów narzędziowych), wspomagających programistę przy tworzeniu programów. Nadzór nad wykonywaniem programów. Rozkazy i dane muszą być załadowane do pamięci głównej, urządzenia wejścia-wyjścia i pliki muszą być zainicjowane, potrzebne jest też przygotowanie pozostałych zasobów. Zdzisław Stryła komputer
Zdzisław Stryła komputer Kiedy nam potrzebny S.O. ? Dostęp do urządzeń wejścia-wyjścia. Każde urządzenie wejścia-wyjścia do działania wymaga własnego, specyficznego zestawu poleceń lub sygnałów sterowania. System operacyjny zajmuje się tymi szczegółami, dzięki czemu programista może myśleć w kategoriach prostych odczytów i zapisów. Zdzisław Stryła komputer
Zdzisław Stryła komputer Kiedy nam potrzebny S.O. ? Kontrolowany dostęp do plików. sterowanie musi być uwzględniać charakter sprzętowy urządzeń wejścia-wyjścia (napędów dyskowych, napędów taśmowych), lecz także format plików na nośniku. W systemach wielodostępnych system operacyjny winien zapewnić mechanizmy ochrony, kontrolujące dostęp poszczególnych użytkowników do zasobów, takich jak pliki. Zdzisław Stryła komputer
Zdzisław Stryła komputer Kiedy nam potrzebny S.O. ? Dostęp do systemu. W przypadku systemów wspólnych lub publicznych system operacyjny kontroluje dostęp użytkowników do systemu jako całości oraz do określonych zasobów systemu. Zdzisław Stryła komputer
Zdzisław Stryła komputer Rodzaje S.O. Wsadowy Konwersacyjny Jednozadaniowy Pojedynczy wsad System dedykowany Wieloprogramowy Złożony wsad Podział czasu Zdzisław Stryła komputer
Proste systemy wsadowe Przetwarzanie przerwań Sterowniki urządzeń Szeregowanie zadań Interpreter języka sterowania Obszar programu użytkownika monitor Zdzisław Stryła komputer
Zdzisław Stryła komputer Wsad Pojawia się język poleceń dla monitora Zdzisław Stryła komputer
Zdzisław Stryła komputer Mechanizmy sprzętowe Wymagane są również pewne inne własności sprzętowe: Ochrona pamięci. Próba zapisu z poziomu programu użytkownika w pamięć zajętą przez monitor jest traktowana jako błąd. Procesor przekazuje sterowanie monitorowi, który porzuca zadanie, wysyła komunikat o błędzie i ładuje następne zadanie. Czasomierz - zapobiega monopolizacji systemu przez pojedyncze zadanie. Gdy zadanie nie zakończy się w wyznaczonym czasie, czasomierz zgłasza przerwanie i sterowanie wraca do monitora. Rozkazy uprzywilejowane - wykonywane tylko przez program zarządzający. Należą do nich np. rozkazy wejścia-wyjścia. Program użytkownika dla wykonania takiej operacji musi się odwołać do monitora. Próba wykonania rozkazu uprzywilejowanego z poziomu programu użytkowego jest traktowana jako błąd. Zdzisław Stryła komputer
Zdzisław Stryła komputer wieloprogramowość W pamięci rezyduje więcej, niż jedno zadanie. Gdy aktualne zadanie musi czekać na operacje we-wy procesor przełącza na inne.. Zdzisław Stryła komputer
Zdzisław Stryła komputer wieloprogramowość A oczekiwanie A oczekiwanie A B C D oczekiwanie A B C D oczekiwanie WAŻNE !!! Operacje we-wy sterowane przerwaniami lub DMA. Zdzisław Stryła komputer
Zdzisław Stryła komputer Podział czasu Systemy wsadowe nie dają możliwości bezpośredniej ingerencji użytkownika w wykonywane zadanie. Pojawienie się koncepcji systemu konwersacyjnego w połączeniu z wieloprogramowością doprowadziło do powstania systemów z podziałem czasu. W tym przypadku oprócz oczekiwania na we-wy o przełączaniu między zadaniami decyduje upływ czasu przyznanego danemu zadaniu. Zdzisław Stryła komputer
Zdzisław Stryła komputer Szeregowanie czasowe W tym przypadku decyzja o uaktywnieniu danego zadania jest bardziej skomplikowana i wymaga zarządzania zarówno pamięcią, jak i czasem procesora. Aby efektywnie wykonywać szeregowanie potrzebujemy więcej informacji służących do zarządzania systemem. Zdzisław Stryła komputer
Szeregowanie wysokiego poziomu Zgłoszenie nowego użytkownika wymaga decyzji o przydzieleniu mu procesu: Weryfikacja użytkownika i jego uprawnień; Miejsce w pamięci; Priorytet; Czas realizacji; wymagania co do we-wy. Zdzisław Stryła komputer
Zdzisław Stryła komputer kolejkowanie CPU Proces bieżący Nowe zadanie scheduler Pamięć główna Kolejka we-wy Zadania oczekujące Kolejka dostępu Zdzisław Stryła komputer
Zdzisław Stryła komputer Proces Proces to: program, związane z nim dane; informacje dodatkowe (blok sterujący). Zdzisław Stryła komputer
Szeregowanie krótkookresowe Program dyspozytora wybiera spośród procesów gotowych następny proces aktywny: algorytm cykliczny z uwzględnieniem priorytetów; kolejka we-wy; Zdzisław Stryła komputer
Zdzisław Stryła komputer Stany procesu Nowy. Program jest przyjęty przez program szeregujący wysokiego poziomu. Czeka na inicjalizację przez system operacyjny. Gotowy. Proces jest gotowy do wykonywania i czeka na dostęp do procesora. Bieżący. Proces jest realizowany przez procesor. Oczekujący. Realizacja procesu jest zawieszona podczas oczekiwania na pewne zasoby systemu, np. wejście-wyjście. Zatrzymany. Proces został zakończony i zostanie zniszczony przez system operacyjny. Zdzisław Stryła komputer
Zdzisław Stryła komputer Stany procesu Nowy Gotowy oczekujący bieżący Zatrzymany Zdzisław Stryła komputer
Stany procesu Gotowy oczekujący bieżący 4. Dane z wejścia nadeszły 3. Scheduler wybiera i uruchamia jeden z gotowych Gotowy oczekujący bieżący 1. Proces blokuje się czekając na wejście 2. Skończyła się szczelina czasowa Zdzisław Stryła komputer
Blok kontrolny procesu Identyfikator - Każdy proces ma unikatowy identyfikator. Stan - Aktualny stan procesu (nowy, gotowy itd.). Priorytet - Względny poziom priorytetu. Znaczniki pamięci - Obszar pamięci zajmowany przez proces. Licznik programu - Adres następnego rozkazu w danym procesie. Kontekst - Zawartość rejestrów procesora podczas realizacji procesu. Kontekst i licznik programu są zachowywane przy zawieszaniu wykonania procesu i odtwarzane przy wznowieniu procesu. Informacja o stanie wejścia-wyjścia - Żądania wejścia-wyjścia, urządzenia wejścia-wyjścia przypisane do procesu, pliki przypisane do procesu, itp. Informacja ewidencyjna – wymagany czas procesora, czas zegara, liczby ewidencyjne... Zdzisław Stryła komputer
Zdzisław Stryła komputer Blok kontrolny Zdzisław Stryła komputer
kolejki System operacyjny Kolejki we-wy Program Pr. szeregowania przetwarzający wywołania obsługi KOLEJKA długo- okresowa KOLEJKA krótko- okresowa Kolejki we-wy Wywołanie obsługi ze strony procesu Program obsługi przerwań Pr. szeregowania krótkookresowego (scheduler) Przerwanie procesu Przerwanie od we-wy Sterowanie przejściem do procesu Zdzisław Stryła komputer
Zdzisław Stryła komputer Proces i wątek Zdzisław Stryła komputer
Zdzisław Stryła komputer