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

Systemy Operacyjne

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Systemy Operacyjne

1

Systemy Operacyjne

Dr inż. Sławomir SamolejD108 A, tel: 865 1486,

email: [email protected]: ssamolej.prz-rzeszow.pl

Slajdy zostały przygotowane na podstawie materiałów opublikowanych na

(http://wazniak.mimuw.edu.pl/

Page 2: Systemy Operacyjne

2

Definicja systemu operacyjnego

System operacyjny (nadzorczy, nadrzędny, sterujący) jestto zorganizowany zespół programów, które pośrednicząmiędzy sprzętem a użytkownikami, dostarczającużytkownikom zestawu środków ułatwiającychprojektowanie, kodowanie, uruchamianie i eksploatacjęprogramów oraz w tym samym czasie sterują przydziałemzasobów dla zapewnienia efektywnego działania.

Alan Shaw

Page 3: Systemy Operacyjne

3

SO w architekturze komputera

Programy użytkowe

System operacyjny

Sprzęt

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ścidziałania.

Page 4: Systemy Operacyjne

4

Ogólna struktura systemu operacyjnego

• W ogólnym przypadku w strukturze systemu operacyjnego wyróżnia się jądro oraz programy systemowe, które dostarczane są razem z systemem operacyjnym, ale nie stanowią integralnej części jądra.

Jądro SO

Sprzęt

Interpreter poleceń

Programy systemowe

• Jądro jest zbiorem 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.

• Interpreter wykonuje pewne polecenia wewnętrznie, tzn. moduł lub program interpretera dostarcza implementacji tych poleceń. Jeśli interpreter nie może wykonać wewnętrznie jakiegoś polecenia, uruchamia odpowiedni program (tzw. polecenie zewnętrzne), jako odrębny proces.

Page 5: Systemy Operacyjne

5

Zadania SO

• Definicja interfejsu użytkownika• Udostępnianie systemu plików• Udostępnianie środowiska do wykonywania

programów użytkownika– mechanizm ładowania i uruchamiania programów– mechanizmy synchronizacji i komunikacji procesów

• Sterowanie urządzeniami wejścia-wyjścia• Obsługa podstawowej klasy błędów

Page 6: Systemy Operacyjne

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 wykorzystaniu zasobów

Page 7: Systemy Operacyjne

7

Zasoby zarządzane przez SO (1)

• Procesor – przydział czasu procesora

• Pamięć– alokacja przestrzeni adresowej dla procesów– ochrona i transformacja adresów

Page 8: Systemy Operacyjne

8

Zasoby zarządzane przez SO (2)

• Urządzenia wejścia-wyjścia– 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

Page 9: Systemy Operacyjne

9

Klasyfikacja systemów operacyjnych ze względu na sposób przetwarzania

• 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 znacząca zwłoka czasowa między przedłożeniem a

rozpoczęciem wykonywania zadania,– niemożliwa jest ingerencja użytkownika w wykonywanie

zadania.

Page 10: Systemy Operacyjne

10

Klasyfikacja systemów operacyjnych ze względu na liczbę wykonywanych

programów

• Systemy jednozadaniowe — niedopuszczalne jest rozpoczęcie wykonywania następnego zadania użytkownika przed zakończeniem poprzedniego.

• Systemy wielozadaniowe — dopuszczalne jest istnienie jednocześnie wielu zadań (procesów), którym zgodnie z pewną strategią przydzielany jest procesor.

Page 11: Systemy Operacyjne

11

Klasyfikacja systemów operacyjnych ze względu na liczbę użytkowników

• Systemy dla jednego użytkownika — zasoby przeznaczone są dla jednego użytkownika (np. W przypadku komputerów osobistych), nie ma mechanizmów autoryzacji, a mechanizmy ochrony informacji są ograniczone.

• Systemy wielodostępne — wielu użytkowników może korzystać ze zasobów systemu komputerowego, a system operacyjny gwarantuje ich ochronę przed nieupoważnioną ingerencją.

Page 12: Systemy Operacyjne

12

Inne rodzaje systemów operacyjnych

• Systemy czasu rzeczywistego (ang. real-time systems) — zorientowane na przetwarzanie z uwzględnieniem czasu zakończenie zadania, tzw. linii krytycznej (ang. deadline), np. VxWorks, QNX, Windows CE, RT Linux.

• Systemy sieciowe i rozproszone (ang. network and distributed systems) — umożliwiają zarządzanie zbiorem rozproszonych jednostek przetwarzających, czyli zbiorem jednostek (komputerów), które są zintegrowane siecią 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ów komórkowych, podlegają istotnym ograniczeniom zasobowym, np. Symbian, Windows Mobile, Brew, OS X iPhone.

Page 13: Systemy Operacyjne

13

Cykl rozkazowy (1)

wystaw.adr. kodurozkazu

pamięć

CP

U

pobraniekodu

rozkazu

dekodowanieoperacji

wystaw.adresu

operandu

pobranieoperandu

faza pobraniarozkazu

faza pobraniaargumentów

następny rozkaz

łańcuch

Page 14: Systemy Operacyjne

14

Cykl rozkazowy (2)

wykonanieoperacji

zapisoperandu

wystaw.adresu

operandu

sprawdz.zgłoszeniaprzerwań

przerwanie

faza składowania wyniku

faza przerwania

brakprzerwań

Page 15: Systemy Operacyjne

15

Podstawy działania systemu operacyjnego

• Odwołania do jądra systemu przez system przerwań lub specjalne 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

Page 16: Systemy Operacyjne

16

Koncepcja procesu

• Proces jest elementarną jednostką pracy (aktywności) zarządzaną przez system operacyjny, która ubiega się o zasoby systemu komputerowego w celu wykonania programu.

• 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) — opis

bieżącego stanu procesu.

Page 17: Systemy Operacyjne

17

Koncepcja zasobu

• Zasobem jest element sprzętowy lub programowy systemu komputerowego, którego brak może potencjalnie zablokować wykonywanie programu (przetwarzanie)

• Przykłady zasobów: procesor, pamięć, plik (dane) itp.

Page 18: Systemy Operacyjne

18

Podział operacji jądra systemu w zarządzaniu procesami i zasobami

• Operacje tworzenia i usuwania procesów oraz elementarna komunikacja międzyprocesowa

• Operacje przydziału i zwalniania jednostek zasobów

• Elementarne operacje wejścia-wyjścia

• Procedury obsługi przerwań

Page 19: Systemy Operacyjne

19

Zarządcy

• Zarządca procesów (process manager) — kontroluje stany procesów w celu efektywnego i bezpiecznego wykorzystania współdzielonych zasobów systemu.

• Zarządca zasobów (resource manager) — realizuje przydział zasobów stosownie do żądań procesów, aktualnego stanu systemu oraz ogólnosystemowej polityki przydziału.

Page 20: Systemy Operacyjne

20

Struktury danych

• Deskryptor procesu (blok kontrolny procesu, PCB) używany przez zarządcę procesów w celu rejestrowania stanu procesu w czasie jego monitorowania i kontroli.

• Deskryptor zasobu — przechowuje informacje o dostępności i zajętości danego typu zasobu.

Page 21: Systemy Operacyjne

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

Page 22: Systemy Operacyjne

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ę z innymi procesami.

• Gotowy (ang. ready) — proces czeka na przydział procesora.

• Zakończony (ang. terminated) — proces zakończył działanie i zwalnia zasoby.

Page 23: Systemy Operacyjne

23

Cykl zmian stanów procesu

nowy

gotowy

oczekujący

wykonywany

zakończony

przyjęcie

zażądanie operacji wejwyj lub oczekiwanie na zdarzenie

zakończenie operacji wej-wyj lubWystąpienie zdarzenia

decyzjaplanisty

wywłaszczenie

Page 24: Systemy Operacyjne

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 jednostki danego zasobu

• Procedura przydziału

Page 25: Systemy Operacyjne

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

Page 26: Systemy Operacyjne

26

Kolejki procesów

• Kolejka zadań (ang. job queue) — wszystkie procesy systemu.

• Kolejka procesów gotowych (ang. ready queue) — procesy gotowe do działania, przebywające w pamięci głównej.

• Kolejka do urządzenia (ang. device queue) — procesy czekające na zakończenie operacji wejścia-wyjścia.

• Kolejka procesów oczekujących na sygnał synchronizacji od innych procesami (np. kolejka procesów na semaforze).

Page 27: Systemy Operacyjne

27

Diagram kolejek w planowaniu przydziału procesora

procesor

sygnał

wej-wyjzamówienie

operacji wej-wyj

upłynięciekwantu czasu

synchronizacja

kolejka procesów gotowych

kolejka operacjiwej-wyj

kolejka procesówuśpionych

Page 28: Systemy Operacyjne

28

Przełączanie kontekstu

Proces 1

Proces 3

Proces 2

bezczynność

bezczynność bezczynność

bezczynność bezczynność

zachowanie kontekstuw bloku kontrolnym 1

odtworzenie kontekstu zbloku kontrolnego 2

Page 29: Systemy Operacyjne

29

Obsługa procesów (1)

• Tworzenie procesu– POSIX: fork– Windows: CreateProcess

• Usuwanie procesu– POSIX: exit, abort, kill– Windows: ExitProcess, TerminateProcess

Page 30: Systemy Operacyjne

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ży użyć

odpowiednich mechanizmów synchronizacji

Page 31: Systemy Operacyjne

31

Elementarne operacje na zasobach

• Tworzenie deskryptora zasobu

• Usuwanie deskryptora zasobu

• Realizacja żądania przydziału jednostek zasobu

• Zwolnienie i odzyskiwanie jednostek zasobu odzyskiwalnego

• Uwolnienie (wyprodukowanie) jednostki zasobu nieodzyskiwalnego

Page 32: Systemy Operacyjne

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 I współdzielącym z innymi wątkami tego procesu przydzielone (procesowi) zasoby:– segment kodu i segment danych w pamięci– tablicę otwartych plików– tablicę sygnałów

Page 33: Systemy Operacyjne

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

Page 34: Systemy Operacyjne

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ży użyć

odpowiednich mechanizmów synchronizacji

Page 35: Systemy Operacyjne

35

Planowanie przydziału prcesora

• Komponenty jądra związane z szeregowaniem

• Ogólna koncepcja planowania

• Algorytmy planowania

Page 36: Systemy Operacyjne

36

Komponenty jądra w planowaniu

• Planista krótkoterminowy (ang. CPU scheduler) — wyznacza wartość priorytetu procesów gotowych I wybiera proces (o najwyższym priorytecie) do wykonania.

• Ekspedytor (zwany również dyspozytorem) ang. dispatcher) — realizuje przekazanie sterowanie do procesu wybranego przez planistę (dokonuje przełączenia kontekstu).

Page 37: Systemy Operacyjne

37

Ogólna koncepcja planowania

• Tryb decyzji — określa okoliczności, w których oceniane i porównywane są priorytety procesów oraz dokonywany jest wybór procesu do wykonania.

• Funkcja priorytetu — funkcja wyznaczająca aktualny priorytet procesu na podstawie parametrów procesu I stanu systemu.

• Reguła arbitrażu — reguła rozstrzygania konfliktów w dostępie do procesora w przypadku procesów o tym samym priorytecie

Page 38: Systemy Operacyjne

38

Tryb decyzji

• Schemat niewywłaszczeniowy (ang. nonpreemptive) —proces po uzyskaniu dostępu do procesora wykonywany jest do momentu zakończenie lub zgłoszenia żądania obsługi do systemu.

• Schemat wywłaszczeniowy (ang. preemptive) — proces może zostać zatrzymany i umieszczony w kolejce procesów gotowych, a procesor zostaje przydzielony procesowi o wyższym (lub równym) priorytecie.

Page 39: Systemy Operacyjne

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łu wynikającego z synchronizacji

• Upłynięcie kwantu czasu odmierzanego przez czasomierz

• Wzrost priorytetu innego procesu w stanie gotowy powyżej priorytetu procesu wykonywanego — możliwe w systemie ze zmiennymi priorytetami

Page 40: Systemy Operacyjne

40

Funkcja priorytetu

• Argumentami funkcji priorytetu są wybrane składowe stanu procesu oraz stanu systemu.

• Priorytet procesu w danej chwili jest wartością wynikową funkcji priorytetu dla bieżących wartości parametrów stanu danego procesu i aktualnego stanu systemu.

Page 41: Systemy Operacyjne

41

Argumenty funkcji priorytetu (1)

• Czas oczekiwania — czas spędzony w kolejce procesów gotowych (czas spędzony w stanie gotowości)

• Czas obsługi — czas, przez który proces był wykonywany (wykorzystywał procesor) od momentu przyjęcia do systemu

• Rzeczywisty czas przebywania w systemie — czas spędzony w systemie od momentu przyjęcia (czas obsługi + czas oczekiwania + czas realizacji żądań zasobowych)

• Czasowa linia krytyczna — czas, po którym wartość wyników spada (nawet do zera, np. przy przewidywaniu pogody)

Page 42: Systemy Operacyjne

42

Argumenty funkcji priorytetu (2)

• Priorytet zewnętrzny — składowa priorytetu, która pozwala wyróżnić procesy ze względu na klasy użytkowników lub rodzaj wykonywanych zadań

• Wymagania odnośnie wielkości przestrzeni adresowej pamięci

• Obciążenie systemu — liczba procesów przebywających w systemie i ubiegających się (potencjalnie) o przydział procesora lub innych zasobów, zajętość pamięci.

Page 43: Systemy Operacyjne

43

Przykład realizacji przetwarzania

a

b

c

0 2 4 6 8 10 12 14 16 18

Process

Wykonywanie

Gotowość

Oczekiwanie

Poniższy diagram przedstawia zmianystanu 3 procesów w czasie i ma na celuzobrazowanie parametrów czasowych.

Page 44: Systemy Operacyjne

44

Reguła arbitrażu

• Losowo — możliwe w przypadku, gdy liczba procesów o tym samym priorytecie jest niewielka

• Cyklicznie — cykliczny przydział procesora kolejnym procesom

• Chronologicznie — w kolejności przyjmowania procesów do systemu (w kolejności FIFO)

Page 45: Systemy Operacyjne

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

Page 46: Systemy Operacyjne

46

Algorytmy planowania wywłaszczającego

• Planowanie rotacyjne (ang. Round Robin, RR) — po ustalonym kwancie czasu proces wykonywany jest przerywany i trafia do kolejki procesów gotowych.

• SRT (Shortest Remaining Time) — najpierw zadanie, które ma najkrótszy czas do zakończenia

Page 47: Systemy Operacyjne

47

Podstawowe algorytmy planowania a funkcja priorytetu

• Podstawowe algorytmy planowania można uzyskać przez odpowiednią definicję funkcji priorytetu.

• Parametrami funkcji priorytetu dla podstawowych algorytmy planowania są następujące atrybuty czasowe procesó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)

Page 48: Systemy Operacyjne

48

Przykłady uszeregowania bez wywłaszczeń

0 2 4 6 8 10 12 14 16 18

ProcessWykonywanie

GotowośćP1

P2

P3

FC

FS

P1

P2

P3

SJF

Page 49: Systemy Operacyjne

49

Przykłady uszeregowania z wywłaszczeniami

0 2 4 6 8 10 12 14 16 18

ProcessWykonywanie

GotowośćP1

P2

P3

SR

T

P1

P2

P3

RR

Page 50: Systemy Operacyjne

50

Algorytm RR — dobór kwantu czasu

• Krótki kwant czasu oznacza zmniejszenie czasu cyklu przetwarzania procesów krótkich, ale zwiększa narzut czasowy związany z przełączaniem kontekstu.

• Z punktu widzenia interakcji z użytkownikiem kwant czasu powinien być trochę większy, niż czas odpowiedzi (reakcji).

Page 51: Systemy Operacyjne

51

Inne algorytmy planowania

• Planowanie priorytetowe — oparte na priorytecie zewnętrznym

• Planowanie wielokolejkowe — w systemie jest wiele kolejek procesów gotowych i każda z kolejek może być inaczej obsługiwana.

• Planowanie przed liniami krytycznymi — zakończenie zadania przed czasową linią krytyczną lub możliwie krótko po tej linii

Page 52: Systemy Operacyjne

52

Szeregowanie procesów, ograniczonychwejściem-wyjściem

• Procesy ograniczone wejściem-wyjściem potrzebują niewiele czasu procesora, większość czasu w systemie spędzając na oczekiwaniu na urządzenia zewnętrzne.

• Opóźnianie przydziału procesora dla tego typu procesów powoduje zmniejszenie wykorzystania urządzeń zewnętrznych, a przydział — ze względu na nie długą fazę procesora — nie powoduje istotnego zwiększenia czasu oczekiwania innych procesów.

• Właściwym algorytmem byłby SJF lub SRT.• Bezwzględna preferencja dla procesów oczekujących na

gotowość urządzeń może spowodować głodzenie procesów ograniczonych procesorem.

Page 53: Systemy Operacyjne

53

Wirtualne planowanie rotacyjne

procesor

sygnał

wej-wyjzamówienie

operacji wej-wyj

upłynięciekwantu czasu

synchronizacja

kolejka procesów gotowych

kolejka operacjiwej-wyj

kolejka procesówuśpionych

Pomocnicza kolejka procesów gotowych

Page 54: Systemy Operacyjne

54

Pamięć jako zasób systemu komputerowego

• Pamięć jest zasobem służący do przechowywania danych i programów.

• Z punktu widzenia systemu pamięć jest zasobem o strukturze hierarchicznej (począwszy od rejestrów procesora, przez pamięć podręczną, pamięć główną, skończywszy na pamięci masowej), w której na wyższym poziomie przechowywane są dane, stanowiące fragment zawartości poziomu niższego.

• Z punktu widzenia procesu (również procesora) pamięć jest zbiorem bajtów identyfikowanych przez adresy, czyli tablicą bajtów, w której adresy są indeksami.

Page 55: Systemy Operacyjne

55

Hierarchia pamięci

Page 56: Systemy Operacyjne

56

Interakcja procesor — sterownik w operacji wyjścia w trybie odpytywania

zapisz rejestr danychwyjściowych

urządz.dostępne

bit zlec. zapisu := 1

bit got. = ?

bit gotowości := 0

bit zlecenia = ?

bit zlecenia := 0bit gotowości := 1bit zajętości := 0

wykonaj operacjęna urządzeniu zew.

odczyt. rejestr danychwyjściowych

1

0

TAK

NIE

0

1