Systemy operacyjne

31
Systemy operacyjne Wykład nr 6: Planowanie przydziału procesora Piotr Bilski

description

Systemy operacyjne. Wykład nr 6: Planowanie przydziału procesora. Piotr Bilski. Cele planowania. W systemie wieloprogramowym każdy proces musi być obsługiwany przez procesor Blokowanie w oczekiwaniu na urządzenia wejścia-wyjścia nie może zawieszać komputera! - PowerPoint PPT Presentation

Transcript of Systemy operacyjne

Page 1: Systemy operacyjne

Systemy operacyjne

Wykład nr 6:

Planowanie przydziału procesora

Piotr Bilski

Page 2: Systemy operacyjne

Cele planowania

• W systemie wieloprogramowym każdy proces musi być obsługiwany przez procesor

• Blokowanie w oczekiwaniu na urządzenia wejścia-wyjścia nie może zawieszać komputera!

• Schemat przydziału-wywłaszczania jest wykonywany cyklicznie

Page 3: Systemy operacyjne

Cykl pracy procesoraŁadowanie do pamięci

Dodanie do pamięci

Czytanie z pliku

Przechowanie przyrostu

Indeksowanie

Pisanie do pliku

Oczekiwanie na urządzenie wejścia-wyjścia

Oczekiwanie na urządzenie wejścia-wyjścia

Faza procesora

Faza wejścia-wyjścia

Faza procesora

Faza wejścia-wyjścia

Page 4: Systemy operacyjne

Planowanie niewywłaszczające

• Proces może zwolnić zasoby procesora tylko wtedy, gdy:– Czeka na urządzenie wejścia-wyjścia– Zakończył działanie

• Czasomierz nie jest wymagany (proste!)

• Używane w systemach Windows 3.1 i wczesnych wersjach systemów dla komputerów Apple Macintosh

Page 5: Systemy operacyjne

Planowanie wywłaszczające

• Proces może zwolnić zasoby procesora również wtedy, gdy:– Jego działanie zostało zakłócone przez przerwanie– Przeszedł do stanu gotowości (po zakończeniu operacji

wejścia-wyjścia)

• Czasomierz wymagany, problem spójności danych!• Używane w nowych systemach Windows, Linux,

Solaris, MacOS itp.

Page 6: Systemy operacyjne

Ekspedytor

• Moduł systemu operacyjnego odpowiedzialny za:– Przełączenie kontekstu– Przełączenie do trybu użytkownika– Wykonanie skoku do podprocedury i powrót z

niej

• Czas przełączenia kontekstu = opóźnienie ekspedycji

Page 7: Systemy operacyjne

Kryteria planowania

• Wykorzystanie procesora

• Przepustowość

• Czas cyklu przetwarzania

• Czas oczekiwania

• Czas odpowiedzi

• Pomiary wartości średnich a pomiary wariancji

Page 8: Systemy operacyjne

Planowanie metodą FCFS• Pierwszy zgłoszony – pierwszy obsłużony• Realizacja – kolejka FIFO

0 17 21 27

P1 P2 P3

czas oczekiwania: (0+17+21)/3=12,66 ms

0 4 10 27

P1P2 P3

czas oczekiwania: (0+4+10)/3=4,66 ms

Page 9: Systemy operacyjne

Planowanie metodą SJF

• Najkrótsze zadanie jest obsługiwane jako pierwsze• Planowanie wywłaszczające lub nie• Metoda jest optymalna!• Używany w planowaniu długoterminowym

0 3 8 17 26

P2 P4P3

czas oczekiwania: (0+3+8+17)/4= 7 ms

P1

Page 10: Systemy operacyjne

Problemy metody SJF

• Poznanie następnej fazy przydziału profesora niemożliwe

• Konieczna predykcja (średnia wykładnicza):

n+1 = αtn+(1-α) n

n+1 = αtn+(1-α)tn-1+ … +(1-α)j· α·tn-j+ … +(1-α)n+1· 0

Page 11: Systemy operacyjne

Wywłaszczająca wersja SJF (SRTF)

• Uwzględnia nowe procesy w kolejce

czas oczekiwania: ((10-1)+(1-1)+(16-2)+(5-3))/4= 6,25 ms

proces tprzybycia tCPU

P1 0 7

P2 1 4

P3 2 9

P4 3 5

0 1 5 10 16 25

P2 P4P1 P1 P3

Page 12: Systemy operacyjne

Planowanie priorytetowe

• Każdy proces ma priorytet (liczba całkowita), procesor jest przydzielany procesowi z najwyższym priorytetem

• Priorytety mogą być zewnętrzne lub wewnętrzne• Planowanie może być wywłaszczające lub

niewywłaszczające• Problem: blokowanie nieskończone (głodzenie).

Rozwiązanie: postarzanie

Page 13: Systemy operacyjne

Przykład planowania priorytetowego

czas oczekiwania: (0+1+6+16+18)/5= 8,2 ms

proces tCPU priorytet

P1 10 3

P2 1 1

P3 2 4

P4 1 5

P5 5 2

0 1 6 16 18 19

P5 P1P2 P3 P4

Page 14: Systemy operacyjne

Planowanie rotacyjne (round-robin)

• Jest to FCFS z wywłaszczaniem

• Jednostka obliczeniowa czasu trwania procesu – kwant (zwykle pomiędzy 10-100 ms)

• Każdy proces dostaje 1 kwant jednocześnie

• Procesy ustawiane są w kolejce FIFO

Page 15: Systemy operacyjne

Planowanie rotacyjne - przykład

proces tCPU

P1 24

P2 3

P3 3

• Kwant czasu: 4 ms

0 4 7 10 14 18

P2 P3P1 P1 P1 …

czas oczekiwania: (4+7+6)/3= 5,66 ms

Page 16: Systemy operacyjne

Planowanie rotacyjne - parametry

• Długość kwantu silnie wpływa na wydajność

• Dla długich kwantów algorytm staje się FCFS

• Dla krótkich kwantów zachodzi dzielenie procesora

• Czas przełączania kontekstu a efektywność – kwant powinien być długi w porównaniu z czasem przełączenia kontekstu

Page 17: Systemy operacyjne

Planowanie wielopoziomowe

• Używane, gdy procesy można kategoryzować (np. pierwszoplanowe i drugoplanowe)

• Kolejka procesów gotowych jest dzielona na mniejsze kolejki. Procesy są do nich przypisywane na stałe w zależności od parametrów (priorytet, typ)

• Do każdej kolejki stosuje się osobny algorytm przydziału

• Konieczny mechanizm przełączania między kolejkami

Page 18: Systemy operacyjne

Planowanie wielopoziomowe – przykład - Solaris 2

Procesy systemowe

Procesy interakcyjne

Procesy redagowania interakcyjnego

Procesy wsadowe

Procesy studenckie

Page 19: Systemy operacyjne

Planowanie wielopoziomowe ze sprzężeniem zwrotnym

• Umożliwia przemieszczanie procesów między kolejkami

• Przydział w zależności od intensywności wykorzystania procesora i przenoszeniu w górę, jeśli proces korzysta „za mało” z procesora i w dół, jeśli korzysta zbyt intensywnie

• Zapobiega głodzeniu procesów

Page 20: Systemy operacyjne

Planowanie wielopoziomowe ze sprzężeniem - przykład

Kwant = 8

Kwant = 16

FCFS

0

1

2

Page 21: Systemy operacyjne

Parametry planisty kolejek wielopoziomowych

• Liczba kolejek

• Algorytm planowania kolejek

• Metody awansowania i degradacji procesów pomiędzy kolejkami

• Metody przydziału procesów do kolejek

Page 22: Systemy operacyjne

Planowanie wieloprocesorowe dla procesorów homogenicznych

• Stosowany mechanizm dzielenia obciążeń lub jednej wspólnej kolejki

• Metody planowania:– Każdy procesor sam planuje działanie– Jeden procesor pełni funkcję planisty– Wieloprzetwarzanie asymetryczne

Page 23: Systemy operacyjne

Planowanie w czasie rzeczywistym

• Systemy czasu rzeczywistego:– Rygorystyczne (HRT)– Łagodne (SRT)

• Niemożliwe do zastosowania w systemach z pamięcią wirtualną

Page 24: Systemy operacyjne

Zasady planowania łagodnego

• Priorytety procesów muszą być stałe

• Opóźnienie ekspedycji musi być małe

• Punkty wywłaszczeń w funkcjach systemowych minimalizują opóźnienie ekspedycji

• Jądro może być wywłaszczalne w całości

Page 25: Systemy operacyjne

Metody szacowania algorytmów

• Miary:– Maksymalizacja wykorzystania procesora– Maksymalizacja przepustowości tak, aby czas cyklu był

liniowo proporcjonalny do całkowitego czasu wykonania

• Metody:– Modele deterministyczne– Modele obsługi kolejek– Symulacje– Implementacja

Page 26: Systemy operacyjne

Modelowanie deterministyczne

• Łatwe i szybkie w implementacji

• Ograniczona przydatność (określa właściwości dla konkretnego zbioru danych wejściowych)

• Wykorzystywane do oceny pracy systemu dla ustalonego i powtarzalnego zestawu procesów

Page 27: Systemy operacyjne

Modele obsługi kolejek

• Pomiar rozkładu faz procesora i wejścia-wyjścia

• Wynik określa prawdopodobieństwo wystąpienia poszczególnych faz jako funkcja liczby nadchodzących procesów oraz średniego obciążenia kolejki

• Ograniczona przydatność – mała liczba algorytmów, które da się modelować

Page 28: Systemy operacyjne

Wzór Little’a

• Określa, jakie muszą być parametry kolejki procesów, aby system był stabilny

• gdzie:n – liczba procesów, które muszą opuszczać

kolejkę w jednostce czasu - tempo przybywania nowych procesów do

kolejki [liczba procesów na sekundę]

W – średni czas oczekiwania w kolejce

n = · W

Page 29: Systemy operacyjne

Symulacja

• Wymaga zbudowania modelu systemu

• Dane do symulacji uzyskuje się losowo (tworzenie procesów, czas trwania faz procesora itp.)

• Uwzględnienie kolejności występowania zdarzeń realizuje taśma śladów

• Symulacje są kosztowne i długotrwałe!

Page 30: Systemy operacyjne

Realizacja planowania procesów

• Lokalne (wybór wątków użytkownika w ramach procesu lekkiego) a globalne (wybór wątków jądra) planowanie procesowe

• Solaris 2 – planowanie priorytetowe:– Procesy czasu rzeczywistego– Procesy systemowe– Procesy z podziałem czasu (klasa domyślna)– Procesy interakcyjne– Każdy proces rozpoczyna z jednym LWP

Page 31: Systemy operacyjne

Realizacja planowania procesów (c.d.)

• Windows – priorytetowy algorytm wywłaszczający

• Dwie główne klasy procesów: zmienna (priorytety 1-15) i czasu rzeczywistego (16-31):– REALTIME_PRIORITY_CLASS– HIGH_PRIORITY_CLASS– ABOVE_NORMAL_PRIORITY_CLASS– NORMAL_PRIORITY_CLASS– BELOW_NORMAL_PRIORITY_CLASS– IDLE_PRIORITY_CLASS