Wykład nr 6: Planowanie przydziału procesora 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
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 P1 P2 P3 czas oczekiwania: (0+4+10)/3=4,66 ms
Planowanie metodą SJF P3 P2 P4 P1 czas oczekiwania: (0+3+8+17)/4= 7 ms Najkrótsze zadanie jest obsługiwane jako pierwsze Planowanie wywłaszczające lub nie Metoda jest optymalna! Używany w planowaniu długoterminowym P3 P2 P4 P1 0 3 8 17 26 czas oczekiwania: (0+3+8+17)/4= 7 ms
n+1 = αtn+(1-α)tn-1+ … +(1-α)j· α·tn-j+ … +(1-α)n+1· 0 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 proces tprzyb ttf P1 7 P2 1 4 P3 2 9 P4 3 5 0 1 5 10 16 25 P2 P4 P1 P3 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
Przykład planowania priorytetowego proces tfazy ttf P1 10 3 P2 1 P3 2 4 P4 5 P5 0 1 6 16 18 19 P5 P1 P2 P3 P4 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 proces tfazy P1 24 P2 3 P3 Kwant czasu: 4 ms P1 P2 P3 P1 P1 … 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 algorytmó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 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