310 likes | 474 Views
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!
E N D
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 Faza procesora Oczekiwanie na urządzenie wejścia-wyjścia Faza wejścia-wyjścia Przechowanie przyrostu Indeksowanie Pisanie do pliku Faza procesora Oczekiwanie na urządzenie wejścia-wyjścia 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
P1 P2 P3 0 17 21 27 P2 P1 P3 0 4 10 27 Planowanie metodą FCFS • Pierwszy zgłoszony – pierwszy obsłużony • Realizacja – kolejka FIFO czas oczekiwania: (0+17+21)/3=12,66 ms 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 P3 P1 P2 P4 0 3 8 17 26 czas oczekiwania: (0+3+8+17)/4= 7 ms
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
P1 P3 P4 P1 P2 0 1 5 10 16 25 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
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
P3 P4 P1 P2 P5 0 1 6 16 18 19 Przykład planowania priorytetowego czas oczekiwania: (0+1+6+16+18)/5= 8,2 ms
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 • Kwant czasu: 4 ms P1 P3 P1 P1 P2 … 0 4 7 10 14 18 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 0 Kwant = 8 1 Kwant = 16 2 FCFS
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