1 / 56

Systemy Operacyjne

Systemy Operacyjne. Dr in ż . Sławomir Samolej D10 8 A , tel: 865 1486 , email: ssamolej@prz-rzeszow.pl WWW : ssamolej.prz-rzeszow.pl Slajdy zostały przygotowane na podstawie materiałów opublikowanych na ( http://wazniak.mimuw.edu.pl/. Definicja systemu operacyjnego.

Download Presentation

Systemy Operacyjne

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Systemy Operacyjne Dr inż. Sławomir Samolej D108A, tel: 865 1486, email: ssamolej@prz-rzeszow.pl WWW: ssamolej.prz-rzeszow.pl Slajdy zostały przygotowane na podstawie materiałów opublikowanych na (http://wazniak.mimuw.edu.pl/

  2. Definicja systemu operacyjnego 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. Alan Shaw

  3. SO w architekturze komputera System operacyjny pośredniczy pomiędzy użytkownikiem a sprzętem, dostarczając wygodnego środowiska do wykonywania programów. Użytkownik końcowy korzysta z programów (aplikacji), na potrzeby których przydzielane są zasoby systemu komputerowego. Przydziałem tym zarządza system operacyjny, dzięki czemu można uzyskać stosunkowo duży stopień niezależności programów od konkretnego sprzętu oraz odpowiedni poziom bezpieczeństwa i sprawności działania. Programy użytkowe System operacyjny Sprzęt

  4. Ogólna struktura systemu operacyjnego Programy systemowe • W ogólnym przypadku w strukturze systemu operacyjnego wyróżnia się jądrooraz programy systemowe, które dostarczane są razem z systemem operacyjnym,ale nie stanowią integralnej części jądra. Interpreter poleceń Jądro SO Sprzęt • Jądro jest zbiorem modułów, któreukrywają szczegóły sprzętowej realizacji systemu komputerowego, udostępniającpewien zestaw usług, wykorzystywanych między innymi do implementacjiprogramów systemowych. • Interpreter wykonuje pewne polecenia wewnętrznie, tzn. moduł lubprogram interpretera dostarcza implementacji tych poleceń. Jeśli interpreter niemoże wykonać wewnętrznie jakiegoś polecenia, uruchamia odpowiedni program(tzw. polecenie zewnętrzne), jako odrębny proces.

  5. Zadania SO • Definicja interfejsu użytkownika • Udostępnianie systemu plików • Udostępnianie środowiska do wykonywaniaprogramów użytkownika • mechanizm ładowania i uruchamiania programów • mechanizmy synchronizacji i komunikacjiprocesów • Sterowanie urządzeniami wejścia-wyjścia • Obsługa podstawowej klasy błędów

  6. Zarządzanie zasobami SO • Przydział zasobów • Planowanie dostępu do zasobów • Ochrona i autoryzacja dostępu do zasobów • Odzyskiwanie zasobów • Rozliczanie — gromadzenie danych o wykorzystaniuzasobów

  7. Zasoby zarządzane przez SO (1) • Procesor • przydział czasu procesora • Pamięć • alokacja przestrzeni adresowej dla procesów • ochrona i transformacja adresów

  8. Zasoby zarządzane przez SO (2) • Urządzenia wejścia-wyjścia • udostępnianie i sterowanie urządzeniami pamięcimasowej • 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

  9. Klasyfikacja systemów operacyjnych zewzględu nasposób przetwarzania • Systemy przetwarzania bezpośredniego (ang. on-lineprocessing systems) - systemy interakcyjne • występuje bezpośrednia interakcja pomiędzyużytkownikiem a systemem, • wykonywanie zadania użytkownika rozpoczyna sięzaraz po przedłożeniu. • Systemy przetwarzania pośredniego (ang. off-lineprocessing systems) — systemy wsadowe • występuje znacząca zwłoka czasowa międzyprzedłożeniem a rozpoczęciem wykonywania zadania, • niemożliwa jest ingerencja użytkownika wwykonywanie zadania.

  10. Klasyfikacja systemów operacyjnych zewzględu na liczbę wykonywanych programów • Systemy jednozadaniowe — niedopuszczalne jestrozpoczęcie wykonywania następnego zadaniaużytkownika przed zakończeniem poprzedniego. • Systemy wielozadaniowe — dopuszczalne jest istnieniejednocześnie wielu zadań (procesów), którym zgodnie zpewną strategią przydzielany jest procesor.

  11. Klasyfikacja systemów operacyjnych ze względu na liczbę użytkowników • Systemy dla jednego użytkownika — zasobyprzeznaczone są dla jednego użytkownika (np. Wprzypadku komputerów osobistych), nie mamechanizmów autoryzacji, a mechanizmy ochronyinformacji są ograniczone. • Systemy wielodostępne — wielu użytkowników możekorzystać ze zasobów systemu komputerowego, asystem operacyjny gwarantuje ich ochronę przednieupoważnioną ingerencją.

  12. Inne rodzaje systemów operacyjnych • Systemy czasu rzeczywistego (ang. real-time systems)— zorientowane na przetwarzanie z uwzględnieniemczasu zakończenie zadania, tzw. linii krytycznej (ang.deadline), np. VxWorks, QNX, Windows CE, RT Linux. • Systemy sieciowe i rozproszone (ang. network anddistributed systems) — umożliwiają zarządzanie zbioremrozproszonych jednostek przetwarzających, czylizbiorem jednostek (komputerów), które są zintegrowanesiecią komputerową i nie współdzielą fizycznie zasobów, np. Windows, Novel Netware, Linux, Unix . • Systemy operacyjne komputerów naręcznych —tworzone dla rozwiązań typu PDA, czy telefonówkomórkowych, podlegają istotnym ograniczeniomzasobowym, np. Symbian, Windows Mobile, Brew, OS X iPhone.

  13. Cykl rozkazowy (1) pobranie operandu pobranie kodu rozkazu pamięć wystaw. adr. kodu rozkazu dekodowanie operacji wystaw. adresu operandu CPU faza pobrania rozkazu faza pobrania argumentów łańcuch następny rozkaz

  14. Cykl rozkazowy (2) faza przerwania zapis operandu wykonanie operacji wystaw. adresu operandu sprawdz. zgłoszenia przerwań przerwanie faza składowania wyniku brak przerwań

  15. Podstawy działania systemu operacyjnego • Odwołania do jądra systemu przez system przerwań lubspecjalne instrukcje (przerwanie programowe) • Sprzętowa ochrona pamięci • Dualny tryb pracy — tryb użytkownika (ang. user mode) i tryb systemowy (tryb jądra, ang. system mode) • Wyróżnienie instrukcji uprzywilejowanych,wykonywanych tylko w trybie systemowym • Uprzywilejowanie instrukcji wejścia-wyjścia • Przerwanie zegarowe

  16. Koncepcja procesu • Proces jest elementarną jednostką pracy (aktywności)zarządzaną przez system operacyjny, która ubiega się ozasoby systemu komputerowego w celu wykonaniaprogramu. • Proces = wykonujący się program. • Elementy składowe procesu: • program — definiuje zachowanie procesu, • dane — zbiór wartości przetwarzanych oraz wyniki, • zbiór zasobów tworzących środowisko wykonawcze, • blok kontrolny procesu (PCB, deskryptor) — opisbieżącego stanu procesu.

  17. Koncepcja zasobu • Zasobem jest element sprzętowy lub programowysystemu komputerowego, którego brak możepotencjalnie zablokować wykonywanie programu(przetwarzanie) • Przykłady zasobów: procesor, pamięć, plik (dane) itp.

  18. Podział operacji jądra systemu w zarządzaniu procesamii zasobami • Operacje tworzenia i usuwania procesów orazelementarna komunikacja międzyprocesowa • Operacje przydziału i zwalniania jednostek zasobów • Elementarne operacje wejścia-wyjścia • Procedury obsługi przerwań

  19. Zarządcy • Zarządca procesów (process manager) — kontrolujestany procesów w celu efektywnego i bezpiecznegowykorzystania współdzielonych zasobów systemu. • Zarządca zasobów (resource manager) — realizujeprzydział zasobów stosownie do żądań procesów,aktualnego stanu systemu oraz ogólnosystemowejpolityki przydziału.

  20. Struktury danych • Deskryptor procesu (blok kontrolny procesu, PCB) używany przez zarządcę procesów w celu rejestrowaniastanu procesu w czasie jego monitorowania i kontroli. • Deskryptor zasobu — przechowuje informacje odostępności i zajętości danego typu zasobu.

  21. Deskryptor procesu • Identyfikator procesu • Stan procesu (nowy, gotowy, oczekujący, itd.) • Identyfikator właściciela • Identyfikator przodka • Lista przydzielonych zasobów • Zawartość rejestrów procesora • Prawa dostępu (domena ochrony) • Informacje na potrzeby zarządzania pamięcią • Informacje na potrzeby planowania (np. priorytet) • Informacje do rozliczeń • Wskaźniki do kolejek porządkujących

  22. Stany procesu • Nowy (ang. new) — proces jest tworzony. • Wykonywany (ang. running) — wykonywane sąinstrukcje programu. • Oczekujący (ang. waiting) — proces oczekuje na jakieśzdarzenie, np. na zakończenie operacji wejścia-wyjścia,na przydział dodatkowego zasobu, synchronizuje się zinnymi procesami. • Gotowy (ang. ready) — proces czeka na przydziałprocesora. • Zakończony (ang. terminated) — proces zakończyłdziałanie i zwalnia zasoby.

  23. Cykl zmian stanów procesu zakończony nowy wywłaszczenie gotowy wykonywany decyzja planisty przyjęcie oczekujący zażądanie operacji wejwyjlub oczekiwanie nazdarzenie zakończenie operacjiwej-wyj lub Wystąpieniezdarzenia

  24. Deskryptor zasobu • Identyfikator zasobu • Rodzaj zasobu • Identyfikator twórcy zasobu • Lista i liczba dostępnych jednostek zasobu • Lista (kolejka) procesów oczekujących na jednostkidanego zasobu • Procedura przydziału

  25. Klasyfikacja zasobów • Ze względu na sposób wykorzystania • zasoby odzyskiwalne (zwrotne, ang. reusable), • zasoby nieodzyskiwalne (niezwrotne, zużywalne, ang.consumable). • Ze względu na sposób odzyskiwania • zasoby wywłaszczalne, • zasoby niewywłaszczalne. • Ze względu na tryb dostępu • Współdzielone • wyłączne

  26. Kolejki procesów • Kolejka zadań (ang. job queue) — wszystkie procesysystemu. • Kolejka procesów gotowych (ang. ready queue) —procesy gotowe do działania, przebywające w pamięcigłównej. • Kolejka do urządzenia (ang. device queue) — procesyczekające na zakończenie operacji wejścia-wyjścia. • Kolejka procesów oczekujących na sygnał synchronizacjiod innych procesami (np. kolejka procesów nasemaforze).

  27. Diagram kolejek w planowaniu przydziału procesora kolejka procesów gotowych procesor kolejka operacji wej-wyj zamówienie operacji wej-wyj wej-wyj upłynięcie kwantu czasu kolejka procesów uśpionych synchronizacja sygnał

  28. Przełączanie kontekstu zachowanie kontekstu w bloku kontrolnym 1 bezczynność Proces 1 odtworzenie kontekstu z bloku kontrolnego 2 bezczynność bezczynność Proces 2 bezczynność bezczynność Proces 3

  29. Obsługa procesów (1) • Tworzenie procesu • POSIX: fork • Windows: CreateProcess • Usuwanie procesu • POSIX: exit, abort, kill • Windows: ExitProcess, TerminateProcess

  30. Obsługa procesów (2) • Zawieszanie i aktywacja procesu • Wstrzymywanie i wznawianie procesu • Zmiana priorytetu procesu • POSIX: nice (setpriority) • Windows: SetPriorityClass • Oczekiwanie na zakończenie procesu • POSIX: wait, waitpid • Windows: brak bezpośredniego wsparcia, należyużyć odpowiednich mechanizmów synchronizacji

  31. Elementarne operacje na zasobach • Tworzenie deskryptora zasobu • Usuwanie deskryptora zasobu • Realizacja żądania przydziału jednostek zasobu • Zwolnienie i odzyskiwanie jednostek zasobuodzyskiwalnego • Uwolnienie (wyprodukowanie) jednostki zasobunieodzyskiwalnego

  32. Wątki • Wątek (lekki proces, ang. lightweight process — LWP)jest obiektem w obrębie procesu ciężkiego(heavyweight), posiadającym własne sterowanie Iwspółdzielącym z innymi wątkami tego procesuprzydzielone (procesowi) zasoby: • segment kodu i segment danych w pamięci • tablicę otwartych plików • tablicę sygnałów

  33. Obsługa wątków (1) • Tworzenie wątku • POSIX: pthread_create • Windows: CreateThread, CreateRomoteThread • Usuwanie wątku • POSIX: pthread_exit, pthread_cancel • Windows: ExitThread, TerminateThread

  34. Obsługa wątków (2) • Wstrzymywanie i wznawianie wątku • POSIX: brak • Windows: SuspendThread, ResumeThread • Zmiana priorytetu wątku • POSIX: pthread_setschedprio,pthread_setschedparam • Windows: SetThreadPriority • Oczekiwanie na zakończenie wątku • POSIX: pthread_join • Windows: brak bezpośredniego wsparcia, należyużyć odpowiednich mechanizmów synchronizacji

  35. Planowanie przydziału prcesora • Komponenty jądra związane z szeregowaniem • Ogólna koncepcja planowania • Algorytmy planowania

  36. Komponenty jądra w planowaniu • Planista krótkoterminowy (ang. CPU scheduler) —wyznacza wartość priorytetu procesów gotowych Iwybiera proces (o najwyższym priorytecie) dowykonania. • Ekspedytor (zwany również dyspozytorem) ang.dispatcher) — realizuje przekazanie sterowanie doprocesu wybranego przez planistę (dokonujeprzełączenia kontekstu).

  37. Ogólna koncepcja planowania • Tryb decyzji — określa okoliczności, w których ocenianei porównywane są priorytety procesów oraz dokonywanyjest wybór procesu do wykonania. • Funkcja priorytetu — funkcja wyznaczająca aktualnypriorytet procesu na podstawie parametrów procesu Istanu systemu. • Reguła arbitrażu — reguła rozstrzygania konfliktów wdostępie do procesora w przypadku procesów o tymsamym priorytecie

  38. Tryb decyzji • Schemat niewywłaszczeniowy (ang. nonpreemptive) —proces po uzyskaniu dostępu do procesora wykonywanyjest do momentu zakończenie lub zgłoszenia żądaniaobsługi do systemu. • Schemat wywłaszczeniowy (ang. preemptive) — procesmoże zostać zatrzymany i umieszczony w kolejceprocesów gotowych, a procesor zostaje przydzielonyprocesowi o wyższym (lub równym) priorytecie.

  39. Podejmowanie decyzji o wywłaszczeniu • Utworzenie i przyjęcie nowego procesu • Obudzenie procesu w wyniku otrzymania komunikatu,sygnału gotowości urządzenia (przerwanie) lub sygnałuwynikającego z synchronizacji • Upłynięcie kwantu czasu odmierzanego przezczasomierz • Wzrost priorytetu innego procesu w stanie gotowypowyżej priorytetu procesu wykonywanego — możliwe wsystemie ze zmiennymi priorytetami

  40. Funkcja priorytetu • Argumentami funkcji priorytetu są wybrane składowestanu procesu oraz stanu systemu. • Priorytet procesu w danej chwili jest wartością wynikowąfunkcji priorytetu dla bieżących wartości parametrówstanu danego procesu i aktualnego stanu systemu.

  41. Argumenty funkcji priorytetu (1) • Czas oczekiwania — czas spędzony w kolejce procesówgotowych (czas spędzony w stanie gotowości) • Czas obsługi — czas, przez który proces byłwykonywany (wykorzystywał procesor) od momentuprzyjęcia do systemu • Rzeczywisty czas przebywania w systemie — czasspędzony w systemie od momentu przyjęcia (czasobsługi + czas oczekiwania + czas realizacji żądańzasobowych) • Czasowa linia krytyczna — czas, po którym wartośćwyników spada (nawet do zera, np. przy przewidywaniupogody)

  42. Argumenty funkcji priorytetu (2) • Priorytet zewnętrzny — składowa priorytetu, którapozwala wyróżnić procesy ze względu na klasyużytkowników lub rodzaj wykonywanych zadań • Wymagania odnośnie wielkości przestrzeni adresowej pamięci • Obciążenie systemu — liczba procesów przebywającychw systemie i ubiegających się (potencjalnie) o przydziałprocesora lub innych zasobów, zajętość pamięci.

  43. Przykład realizacji przetwarzania Poniższy diagram przedstawia zmiany stanu 3 procesów w czasie i ma na celu zobrazowanie parametrów czasowych. Wykonywanie Gotowość Oczekiwanie Process c b a 0 2 4 6 8 10 12 14 16 18

  44. Reguła arbitrażu • Losowo — możliwe w przypadku, gdy liczba procesów otym samym priorytecie jest niewielka • Cyklicznie — cykliczny przydział procesora kolejnymprocesom • Chronologicznie — w kolejności przyjmowania procesówdo systemu (w kolejności FIFO)

  45. Algorytmy planowania niewywłaszczającego • FCFS (First Come First Served) — pierwszy zgłoszony,pierwszy obsłużony • LCFS (Last Come First Served) — ostatni zgłoszony,pierwszy obsłużony • SJF (SJN, SPF, SPN, Shortest Job/Process First/Next)— najpierw najkrótsze zadanie

  46. Algorytmy planowania wywłaszczającego • Planowanie rotacyjne (ang. Round Robin, RR) — poustalonym kwancie czasu proces wykonywany jestprzerywany i trafia do kolejki procesów gotowych. • SRT (Shortest Remaining Time) — najpierw zadanie,które ma najkrótszy czas do zakończenia

  47. Podstawowe algorytmy planowania a funkcja priorytetu • Podstawowe algorytmy planowania można uzyskaćprzez odpowiednią definicję funkcji priorytetu. • Parametrami funkcji priorytetu dla podstawowychalgorytmy planowania są następujące atrybuty czasoweprocesów: • a — bieżący (dotychczasowy) czas obsługi • r — rzeczywisty czas w systemie • t — całkowity wymagany czas obsługi (czas obsługido momentu zakończenia)

  48. Przykłady uszeregowania bez wywłaszczeń Wykonywanie Process Gotowość P1 FCFS P2 P3 SJF P1 P2 P3 0 2 4 6 8 10 12 14 16 18

  49. Przykłady uszeregowania z wywłaszczeniami Wykonywanie Process Gotowość P1 SRT P2 P3 RR P1 P2 P3 0 2 4 6 8 10 12 14 16 18

  50. Algorytm RR — dobór kwantu czasu • Krótki kwant czasu oznacza zmniejszenie czasu cykluprzetwarzania procesów krótkich, ale zwiększa narzutczasowy związany z przełączaniem kontekstu. • Z punktu widzenia interakcji z użytkownikiem kwantczasu powinien być trochę większy, niż czasodpowiedzi (reakcji).

More Related