1 / 31

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!

hollye
Télécharger la présentation

Systemy operacyjne

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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

  3. 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

  4. 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

  5. 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.

  6. 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

  7. Kryteria planowania • Wykorzystanie procesora • Przepustowość • Czas cyklu przetwarzania • Czas oczekiwania • Czas odpowiedzi • Pomiary wartości średnich a pomiary wariancji

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. Planowanie wielopoziomowe – przykład - Solaris 2 Procesy systemowe Procesy interakcyjne Procesy redagowania interakcyjnego Procesy wsadowe Procesy studenckie

  19. 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

  20. Planowanie wielopoziomowe ze sprzężeniem - przykład 0 Kwant = 8 1 Kwant = 16 2 FCFS

  21. 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

  22. 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

  23. Planowanie w czasie rzeczywistym • Systemy czasu rzeczywistego: • Rygorystyczne (HRT) • Łagodne (SRT) • Niemożliwe do zastosowania w systemach z pamięcią wirtualną

  24. 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

  25. 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

  26. 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

  27. 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ć

  28. 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

  29. 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!

  30. 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

  31. 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

More Related