Transcript Wykład 6
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 Faza procesora Czytanie z pliku Oczekiwanie na urządzenie wejścia-wyjścia Faza wejścia-wyjścia Przechowanie przyrostu Faza procesora Indeksowanie Pisanie do pliku Faza wejścia-wyjścia Oczekiwanie na urządzenie 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 P1 P2 0 17 P3 21 27 czas oczekiwania: (0+17+21)/3=12,66 ms P2 0 P1 P3 4 10 czas oczekiwania: (0+4+10)/3=4,66 ms 27 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 0 P2 3 P1 P4 8 17 czas oczekiwania: (0+3+8+17)/4= 7 ms 26 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 P1 P2 P3 P4 P1 0 1 tprzybycia 0 1 2 3 5 7 4 9 5 P1 P4 P2 tCPU 10 P3 16 25 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 P1 P2 P3 P4 P5 P2 0 1 tCPU 10 1 2 1 5 priorytet 3 1 4 5 2 P3 P1 P5 6 16 P4 18 czas oczekiwania: (0+1+6+16+18)/5= 8,2 ms 19 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 P1 P2 P3 tCPU 24 3 3 • Kwant czasu: 4 ms P1 0 P3 P2 4 7 10 … P1 P1 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ściawyjś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=·W 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 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