Systemy operacyjne
description
Transcript of Systemy operacyjne
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!
• Schemat przydziału-wywłaszczania jest wykonywany cyklicznie
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
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
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.
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
Kryteria planowania
• Wykorzystanie procesora
• Przepustowość
• Czas cyklu przetwarzania
• Czas oczekiwania
• Czas odpowiedzi
• Pomiary wartości średnich a pomiary wariancji
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
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
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
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
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
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
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
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
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
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
Planowanie wielopoziomowe – przykład - Solaris 2
Procesy systemowe
Procesy interakcyjne
Procesy redagowania interakcyjnego
Procesy wsadowe
Procesy studenckie
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
Planowanie wielopoziomowe ze sprzężeniem - przykład
Kwant = 8
Kwant = 16
FCFS
0
1
2
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
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
Planowanie w czasie rzeczywistym
• Systemy czasu rzeczywistego:– Rygorystyczne (HRT)– Łagodne (SRT)
• Niemożliwe do zastosowania w systemach z pamięcią wirtualną
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
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
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
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ć
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
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!
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
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