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