Zbigniew S. Szewczak Podstawy Systemów Operacyjnych

Transkrypt

Zbigniew S. Szewczak Podstawy Systemów Operacyjnych
Zbigniew S. Szewczak
Podstawy Systemów
Operacyjnych
Wykład 7
Planowanie przydziału procesora.
Toruń, 2004
Odrabianie wykładów
☛czwartek, 1.04.2004, S7, g. 12.00 za 19.05
☛czwartek, 15.04.2004, S7, g. 12.00 za 12.05
Planowanie przydziału procesora
☛Podstawowe pojęcia
☛Kryteria planowania
☛Algorytmy planowania
☛Planowanie wieloprocesorowe
☛Planowanie w czasie rzeczywistym
☛Ocena algorytmów
Podstawowe pojęcia
☛Idea wieloprogramowania: wiele procesów dzieli
(niepodzielny zasób) CPU
☛Celem wieloprogramowania jest maksymalne
wykorzystanie jednostki centralnej (CPU)
☛Planowanie przydziału procesora (ang. CPU
sheduling) jest kluczową funkcją w każdym
systemie operacyjnym operacyjnym albowiem
jest realizacją idei wieloprogramowania
Fazy procesu
☛CPU-I/O - wykonanie procesu składa się z fazy
procesora (ang. CPU burst) i fazy we/wy (ang.
I/O burst)
☛Krzywa częstości zatrudnień procesora ma
kształt wykładniczy lub hiperwykładniczy
☛Proces ograniczony przez we/wy ma wiele
krótkich faz procesora, proces ograniczony przez
procesor ma mało długich faz procesora
Naprzemienny ciąg faz
procesora i we/wy
załaduj przechowaj
dodaj przechowaj
czytaj z pliku
czekaj na we/wy
przechowaj zwiększ
indeks pisz do pliku
czekaj na we/wy
załaduj przechowaj
dodaj przechowaj
czytaj z pliku
czekaj na we/wy
.
.
.
faza procesora
faza we/wy
faza procesora
faza we/wy
faza procesora
faza we/wy
Histogram czasów faz procesora
160
częstość występowania fazy
140
120
100
80
60
40
20
0
8
16
24
czas trwania fazy (milisekundach)
32
40
Planista przydziału procesora
☛Planista (krótkoterminowy) przydziału procesora
(ang. CPU scheduler) wybiera jeden proces
spośród przebywających w pamięci procesów
gotowych do wykonania i przydziela mu procesor
☛Decyzje o przydziale procesora podejmowane są
1. gdy proces przeszedł od stanu aktywności do czekania (np. z
powodu we/wy)
2. gdy proces przeszedł od stanu aktywności do gotowości (np.
wskutek przerwania)
3. gdy proces przeszedł od stanu czekania do gotowości (np. po
zakończeniu we/wy)
4. gdy proces kończy działanie
Diagram stanów procesu
nowy
zakończony
przerwanie
przyjęcie
wyjście
gotowy
obsłużenie zadrzenia
lub operacja we/wy
aktywny
decyzja planisty
czekający
oczekiwanie na zdarzenie
lub na wykonanie
operacji we/wy
Planista przydziału procesora
(c.d.)
☛Planowanie w sytuacji 1 i 4 nazywamy
niewywłaszczeniowym (ang. nonpreemptive)
☛Każde inny algorytm planowania nazywamy
wywłaszczeniowym (ang. preemptive)
☛Planowanie bez wywłaszczeń : proces, który
otrzyma procesor, zachowuje go tak długo aż
nie odda go z powodu przejścia w stan
oczekiwania lub zakończenia (nie wymaga
zegara)
☛użyta w systemie Windows 3.1 i Apple Macintosh
Planista przydziału procesora
(c.d.)
☛Planowanie wywłaszczające: drogie i ryzykowne
☛Co się stanie gdy wywłaszczony zostanie proces
w trakcie wykonywania funkcji systemowej (np.
zmiany danych w blokach opisu kolejki we/wy)?
☛UNIX czeka z przełączeniem kontekstu do
zakończenia wywołania systemowego lub do
zablokowania procesu na we/wy
☛Nie można wywłaszczać procesu gdy
wewnętrzne struktury jądra są niespójne
☛Blokowanie przerwań przy wejściu do
ryzykownych fragmentów kodu jądra
Ekspedytor
☛Ekspedytor (ang. dispatcher) jest modułem,
który faktycznie przekazuje procesor do
dyspozycji procesu wybranego przez planistę
krótkoterminowego; obowiązki ekspedytora to
☛przełączanie kontekstu
☛przełączanie do trybu użytkownika
☛wykonanie skoku do odpowiedniej komórki w programie
użytkownika w celu wznowienia działania programu
☛Opóźnienie ekspedycji (ang. dispatch latency) to
czas, który ekspedytor zużywa na wstrzymanie
jednego procesu i uaktywnienie innego
Kryteria planowania
☛Definicje
☛Wykorzystanie procesora - procesor musi być nieustannie
zajęty pracą
☛powinno się mieścić od 40% (słabe obciążenie systemu) do
90% (intensywna eksploatacja)
☛Przepustowość (ang. throughput) - liczba procesów
kończących w jednosce czasu: długie procesy 1 na
godzinę, krótkie - 10 na sekundę
☛Czas cyklu przetwarzania (ang. turnaround time) – czas
między nadejściem procesu do systemu a chwilą jego
zakończenia: suma czasów czekania na wejście do
pamięci, czekania w kolejce procesów gotowych,
wykonywania we/wy, wykonania (CPU)
Kryteria planowania (c.d.)
☛Czas oczekiwania - suma okresów, w których proces czeka
w kolejce procesów gotowych do działania
☛Czas odpowiedzi (ang. response time) - ilość czasu między
wysłaniem żądania a pojawieniem się odpowiedzi (bez
czasu potrzebnego na wyprowadzenie odpowiedzi np. na
ekran). Czas odpowiedzi jest na ogół uzależniony od
szybkości działania urządzenia wyjściowego
Kryteria optymalizacji
☛Maksymalne wykorzystanie procesora
☛Maksymalna przepustowość
☛Minimalny cykl przetwarzania
☛Minimalny czas oczekiwania
☛Minimalny czas odpowiedzi
☛minimalizowanie wariancji czasu odpowiedzi
☛mało algorytmów minimalizujących wariancję
☛pożądany system z sensownym i przewidywalnym czasem
odpowiedzi
Planowanie metodą FCFS
☛Pierwszy zgłoszony, pierwszy obsłużony (ang.
first-come, first-served - FCFS)
☛Implementuje się łatwo za pomocą kolejek FIFO
- blok kontrolny procesu dołączany na koniec
kolejki, procesor dostaje PCB z czoła kolejki
☛Przykład: Proces
Czas trwania fazy
P1
24
P2
3
P3
3
☛Przypuśćmy, że procesy nadejdą w porządku:
P1 , P2 , P3
Planowanie metodą FCFS (c.d.)
☛Diagram Gantta dla FCFS
P1
0
P2
24
P3
27
30
☛Czas oczekiwania dla P1 = 0; P2 = 24; P3 = 27
☛Średni czas oczekiwania: (0 + 24 + 27)/3 = 17
milisekund
Planowanie metodą FCFS (c.d.)
☛Przypuśćmy, że procesy nadejdą w porządku
P2 , P3 , P1
☛Diagram Gantta
P2
0
P3
3
P1
6
30
☛Czas oczekiwania dla P1 = 6; P2 = 0; P3 = 3
☛Średni czas oczekiwania (6 + 0 + 3)/3 = 3
☛Średni czas oczekiwania znacznie lepszy
☛Dlaczego?
Planowanie metodą FCFS (c.d.)
☛Założmy, ze mamy jeden proces P ograniczony
przez procesor i wiele procesów ograniczonych
przez we/wy (Q,R,..)
☛proces P uzyskuje procesor i procesy Q,.. kończą we/wy
☛urządzenia we/wy są bezczynne
☛proces P kończy swoją fazę procesora, procesy Q,...
zadziałają szybko (mają krotkie fazy procesora bo są
ograniczone przez we/wy)
☛proces P uzyskuje procesor, procesy Q,.. kończą we/wy...
☛Efekt konwoju (ang. convoy effect) - procesy
czekają aż wielki proces odda procesor
Planowanie metodą FCFS (c.d.)
☛Algorytm FCFS jest niewywłaszczający
☛Proces utrzymuje procesor do czasu aż zwolni
go wskutek zakończenia lub zamówi operację
we/wy
☛Algorytm FCFS jest kłopotliwy w systemach z
podziałem czasu bowiem w takich systemach
ważne jest uzyskiwanie procesora w regularnych
odstępach czasu
Planowanie metodą SJF
☛Algorytm napierw najkrótsze zadanie (ang. shortestjob-first - SJF) wiąże z każdym procesem długość
jego najbliższej z przyszłych faz procesora. Gdy
procesor staje się dostępny wówczas zostaje
przydzielony procesowi o najkrótszej następnej
fazie (gdy fazy są równe to mamy FCFS)
☛Algorytm może być
☛wywłaszczający - SJF usunie proces jeśli nowy proces w
kolejce procesów gotowych ma krótszą następną fazę procesora
od czasu do zakończenia procesu; metoda najpierw najkrótszy
pozostały czas (ang. shortest-remaining-time-first - SRTF)
☛niewywłaszczający - pozwól procesowi zakończyć
SJF niewywłaszczający
Proces
Czas trwania fazy
P1
6
P2
8
P3
7
P4
3
☛SJF (niewywłaszczający)
P4
0
P1
3
P3
9
☛Średni czas oczekiwania:
☛ (3 + 16 + 9 + 0)/4 = 7
P2
16
24
SJF wywłaszczający
Proces
P1
P2
P3
P4
☛SRTF
P1
0 1
P2
Czas przybycia
0
1
2
3
P4
5
Czas trwania fazy
8
4
9
5
P1
10
☛Średni czas oczekiwania:
P3
17
☛((10-1) + (1-1) + (17-2) + (5-3))/4 = 26/4=6.5
26
Następna faza procesora
☛SJF jest optymalny: daje minimalny średni czas
oczekiwania
☛Nie ma sposobu na poznanie długości następnej
fazy, możemy ją jedynie oszacować
☛Można tego dokonać wyliczając średnią
wykładniczą poprzednich faz procesora
☛t(n) = długość n-tej fazy procesora
☛s(n+1) = przewidywana długość nast. fazy
☛a - liczba z przedziału [0,1], zwykle 0.5
☛Definiujemy s(n+1) = a*t(n) + (1-a)*s(n)
Następna faza procesora (c.d.)
☛a=0
☛s(n+1) = s(n)
☛niedawna historia nie ma wpływu
☛a=1
☛s(n+1) = t(n)
☛jedynie najnowsze notowanie długości fazy ma wpływ
☛Jeśli rozwiniemy wzór to s(n+1) = a*t(n) +
(1-a)*a*t(n-1) + .... (1-a)^j*a*t(n-j) + ..... ..+
(1-a)^(n+1)*s(0)
☛Ponieważ a i (1-a) są mniejsze od 1 to każdy
następny składnik ma mniejszą wagę
Przykład dla s(0)=10; a=1/2
12
s(i)
10
8
t(i)
6
4
2
faza procesora t(n)
wartość
odgadnięta s(n) 10
6
4
6
4
13
13
13
....
8
6
6
5
9
11
12
....
Planowanie priorytetowe
☛SJF jest przykładem planowania priorytetowego
(ang. priority scheduling) w którym każdemu
procesowi przypisuje się priorytet (liczbę)
☛Priorytety należą do pewnego skończonego
podzbioru liczb naturalnych np. [0..7], [0,4095]
☛nice {+|- n} polecenie
☛Procesor przydziela się procesowi o najwyższym
priorytecie (jeśli równe - FCFS)
☛wywłaszczające
☛niewywłaszczające
☛SJF - priorytet jest odwrotnością następnej fazy
Przykład: 0 - najwyższy priorytet
Proces
Czas trwania fazy
10
1
2
1
5
P1
P2
P3
P4
P5
P2
0
P5
1
Priorytet
3
1
4
5
2
P1
6
☛średni czas oczekiwania:
☛(6 + 0 + 16 + 18 + 1)/5 = 41/5 = 8.2
P3
16
P4
18
19
Planowanie priorytetowe
☛Problem: nieskończone zablokowanie (ang.
indefinite blocking) lub głodzenie (ang. starvation)
- procesy o małym priorytecie mogą nigdy nie
dostać czasu procesora
☛W 1973 r. w wycofywanym w MIT z eksploatacji
IBM 7094 wykryto zagłodzony niskopriorytetetowy
proces przedłożony do wykonania w 1967 r.
☛Rozwiązanie: postarzanie (ang. aging) polegające
na podwyższeniu priorytetu procesów oczekujących
już zbyt długo
Planowanie rotacyjne
☛Planowanie rotacyjne (ang. round-robin - RR,
time-slicing) zaprojektowano dla systemów z
podziałem czasu
☛Każdy proces otrzymuje małą jednostkę czasu,
nazywaną kwantem czasu (ang. time quantum,
time slice) zwykle od 10 do 100 milisekund. Gdy
ten czas minie proces jest wywłaszczany i
umieszczany na końcu kolejki zadań gotowych
(FCFS z wywłaszeniami)
Planowanie rotacyjne (c.d.)
☛Jeśli jest n procesów w kolejce procesów
gotowych a kwant czasu wynosi q to każdy
proces otrzymuje 1/n czasu procesora porcjami
wielkości co najwyżej q jednostek czasu.
☛Każdy proces czeka nie dłużej niż (n-1)*q
jednostek czasu
☛Wydajność algorytmu
☛gdy q duże to RR przechodzi w FCFS
☛gdy q małe to mamy dzielenie procesora (ang. processor
sharing) ale wtedy q musi być duże w stosunku do
przełączania kontekstu (inaczej mamy spowolnienie)
Mniejszy kwant czasu zwiększa
przełączanie kontekstu
kwant
czas procesu = 10
kontekstu
0
12
0
6
1
1
9
10
0
0
przełą
czenia
6
1
2
3
4
5
6
10
7
8
9
10
Czas cyklu przetwarzania zależy
od kwantu czasu
proces
czas
12.0
P1
6
11.5
P2
3
11.0
P3
1
10.5
P4
7
średni czas cyklu przetwarzania
12.5
10.0
9.5
9.0
1
2
3
4
5
kwant czasu
6
7
8
RR - średni czas cyklu
przetwarzania z kwantem = 6
Proces
Czas trwania fazy
P1
6
P2
3
P3
1
P4
7
☛Diagram Gantta
P1
0
P2
6
P3
9
P4
10
☛Średni czas cyklu przetwarzania
☛(6+9+10+17)/4=42/4=10,5
P4
16
17
RR - średni czas cyklu
przetwarzania z kwantem = 5
Proces
Czas trwania fazy
P1
6
P2
3
P3
1
P4
7
☛Diagram Gantta
P1
0
P2
5
P3
8
P4
9
P1
14
☛Średni czas cyklu przetwarzania
☛(15+8+9+17)/4=49/4=12,25
15
P4
17
Wielopoziomowe planowanie
kolejek
☛Wielopoziomowe planowanie kolejek (ang.
mulitilevel queue scheduling ) polega na tym, że
kolejka procesów gotowych zostaje podzielona
na oddzielne (pod)kolejki
☛procesy pierwszoplanowe (ang. foreground) - interakcyjne
☛procesy drugoplanowe (ang. background) - wsadowe
☛Każda z kolejek ma swój własny algorytm
szeregujący
☛ pierwszoplanowa - RR
☛ drugoplanowa - FCFS
Wielopoziomowe planowanie
kolejek (c.d.)
☛Między kolejkami także należy dokonać wyboru
algorytmu planowania
☛planowanie priorytetowe tzn. obsłuż najpierw wszystkie
procesy pierwszoplanowe potem drugoplanowe możliwość zagłodzenia procesu drugoplanowego
☛porcjowanie czasu (ang. time slice) - każda kolejka
otrzymuje pewną porcję czasu procesora, który
przydzielany jest każdej z kolejek np.
☛80% kolejka pierwszoplanowa z algorytmem RR
☛20% kolejka drugoplanowa z algorytmem FCFS
Wielopoziomowe planowanie
kolejek (c.d.)
najwyższy priorytet
procesy systemowe
procesy interakcyjne
procesy redagowania interakcyjnego
procesy wsadowe
procesy studenckie
najniższy priorytet
Kolejki wielopoziomowe ze
sprzężeniem zwrotnym
☛Kolejki wielopoziomowe z sprzężeniem zwrotnym
(ang. multilevel feedback queue scheduling)
umożliwiają przesuwanie procesów między kolejkami
☛Proces, który zużywa za dużo procesora można
zdymisjonować poprzez przesunięcie go do kolejki o
niższym priorytecie i dzięki temu zapobiec
zagłodzeniu innych procesów
☛Postępowanie takie prowadzi do pozostawienia
procesów ograniczonych przez we/wy oraz
interakcyjnych w kolejkach o wyższych priorytetach
Kolejeki wielopoziomowe ze
sprzężeniem zwrotnym (c.d.)
kwant=8
kwant=16
FCFS
Kolejeki wielopoziomowe ze
sprzężeniem zwrotnym (c.d.)
☛Trzy koleki:
☛Q0 – kwant czasu 8 milisekund
☛Q1 – kwant czasu 16 milisekund
☛Q2 – FCFS
☛Planowanie
☛nowe zadanie wchodzi do kolejki Q0 obsługiwanej przez
FCFS. Zadanie dostaje 8 milisekund i jeśli się nie zmieści
w tym czasie zostaje przeniesione na koniec kolejki Q1
☛W kolejce Q1 zadanie jest znów obsługiwane przez
algorytm FCFS i dostaje dodatkowe 16 milisekund. Jeśli
ponownie nie zmieści się w tym czasie zostaje wywłaszone
do kolejki Q2
Kolejki wielopoziomowe ze
sprzężeniem zwrotnym (c.d.)
☛Algorytm ten daje najwyższy priorytet procesom
o fazie nie większej niż 8ms, procesy o fazie
między 8ms i 24ms są także szybko
obsługiwane; długie procesy wchodzą do kolejki
2 i są obsługiwane (FCFS) w cyklach pracy
procesora nie wykorzystanych przez procesy z
kolejek 0 i 1
☛Planowanie ze sprzężeniem zwrotnym jest
najogólniejszym i najbardziej złożonym
algorytmem planowania przydziału procesora
Kolejeki wielopoziomowe ze
sprzężeniem zwrotnym (c.d.)
☛Planista wielopoziomowych kolejek ze
sprzężeniem zwrotnym jest określony za
pomocą następujących parametrów
☛liczba kolejek
☛algorytm planowania dla każdej kolejki
☛metody użytej do decydowania o awansowaniu (ang.
upgrade) procesu do kolejki o wyższym priorytecie
☛metody użytej do decydowania o zdymisjonowaniu (ang.
demote) procesu do kolejki o niższym priorytecie
☛metody wyznaczenia kolejki, do której trafia proces
potrzebujący obsługi
Planowanie wieloprocesorowe
☛Planowanie wieloprocesorowe (ang. multipleprocessor scheduling) komplikuje się wraz ze
wzrostem liczby procesorów i ich architektury
☛Wypróbowano wiele metod planowania i nie
znaleziono najlepszej
☛Procesory mogą być homogeniczne (identyczne)
lub heterogeniczne (różne)
☛Planowanie wieloprocesorowe heterogeniczne na danym procesorze można wykonać
programy, które zostały przetłumaczone na
odpowiadający mu zbiór rozkazów; sieciowe
systemy operacyjne
Planowanie wieloprocesorowe
(c.d.)
☛Planowanie wieloprocesorowe homogeniczne
☛dzielenie obciążeń (ang. load sharing) - wspólna kolejka
dla wszystkich procesorów
☛każdy procesor sam planuje swoje działanie, oba operują na
tej samej kolejce procesów gotowych (ryzykowne - wymaga
bardzo starannego zaprogramowania) - wieloprzetwarzanie
symetryczne
☛jeden procesor jest nadrzędny (ang. master), inne
podporządkowane (ang. slave) - wieloprzetwarzanie
asymetryczne (ang. asymmetric multiprocessing)
Planowanie w czasie
rzeczywistym
☛Rygorystyczne systemy czasu rzeczywistego wymóg zakończenia zadania krytycznego w
gwarantowanym czasie
☛rezerwacja zasobów (ang. resource reservation)
gwarantujących wykonanie zadania
☛planista odrzuca zadanie jeśli nie może ich zarezerwować
☛Łagodne systemy czasu rzeczywistego - procesy
o decydującym znaczeniu mają priorytet nad
słabiej sytuowanymi
☛priorytety procesów czasu rzeczywistego nie mogą maleć z
upływem czasu
☛można np. zakazać dymisjonowania procesów czasu
rzeczywistego
Planowanie w czasie
rzeczywistym (c.d.)
☛opóźnienie ekspediowania procesów do procesora musi
być małe aby proces czasu rzeczywistego nie musiał
czekać (Solaris: 100ms (z wywłaszczeniami 2ms))
☛musimy zezwolić na wywłaszczanie funkcji systemowych
☛ poprzez wstawienie w długotrwałych funkcjach systemowych
punktów wywłaszczeń (ang. preemption points)
☛wywłaszczanie całego jądra, struktury danych jądra muszą być
chronione za pomocą mechanizmów synchronizacji (Solaris2)
☛wysokopriorytetowe procesy nie mogą czekać na
zakończenie niskopriorytetowych; sytuacja gdy proces
wysokopriorytetowy czeka na zakończenie procesu o
niższym priorytetcie nosi nazwę odwrócenia priorytetów
(ang. priority inversion)
☛protokół dziedziczenia priorytetów(ang. priority- inheritance)
-w czasie użycia zasobów proces dziedziczy wysoki priorytetu
Opóźnienie ekspedycji
odpowiedź na
zdarzenie
zdarzenie
czas do nadejścia odpowiedzi
proces osiąga
gotowość do
przetwarzanie działania
przerwania
opóźnienie ekspedycji
konflikty
ekspedycja
czas
wykonanie
procesu w
czasie rzeczywistym
Ocena algorytmów
☛Modelowanie deterministyczne - przyjmuje się
konkretne, z góry określone obciążenie robocze
systemu i definiuje zachowanie algorytmu w
warunkach tego obciążenia. Jest to odmiana
oceny analitycznej (ang. analytic evaluation)
☛dla danego zbioru procesów mających zadane
uporządkowanie i wyrażone w milisekundach fazy
procesora rozważamy algorytmy planowania (FCFS, SJF,
RR (o zadanym kwancie czasu) , itp.)
☛Pytanie: który algorytm minimalizuje czas oczekiwania?
Ocena algorytmów (c.d)
☛Modelowanie deterministyczne jest proste i
szybkie, daje konkretne liczby pozwalające
dokonać wyboru algorytmu planowania
☛Modelowanie deterministyczne wymaga jednak
specyficznych sytuacji i dokładnej wiedzy
dlatego nie zasługuje na miano ogólnie
użytecznego
Zadanie - przykład
Proces
Czas trwania fazy
P1
P2
P3
P4
P5
f1
f2
f3
f4
f5
☛Zakładając, że wszystkie procesy przybyły w
chwili 0, porównać algorytmy FCFS, SJF i RR
(kwant = q ) metodą deterministyczną
Ocena algorytmów (c.d.)
☛Modele obsługi kolejek - analiza obsługi kolejek
w sieciach(ang. queueing-network analysis)
☛Wzór Little’a: n = l*W - liczba procesów opuszczających
kolejkę musi się równać liczbie procesów przychodzących
☛n - średnia długość kolejki
☛W - średni czas oczekiwania w kolejce
☛l - ilość nowych procesów na sekundę
☛Symulacja sterowana rozkładami
☛ma ograniczoną dokładność
☛taśma śladów zdarzeń rzeczywistego systemu może
poprawić dokładność
☛Implementacja - kosztowna ale dokładna ocena
Ocena planistów przydziału
procesora - symulacja
...
CPU
symulacja
10
we/wy 213
faktyczne
dane o
wykonaniu
procesu
CPU
statystyka działania
metodą FCFS
FCFS
12
we/wy 112
CPU
2
symulacja
SJF
statystyka działania
metodą SFJ
we/wy 147
CPU
173
...
taśma za śladem
symulacja
RR
(Q=14)
statystyka działania
metodą RR (Q=14)
Przykład: Solaris 2
☛4 klasy: real time, system, time sharing, interactive
☛Priorytet globalny i priorytety w obrębie klas
☛Proces potomny dziedziczy klasę i priorytet
☛Klasa domyślna time sharing
☛wielopoziomowe kolejki ze sprzężeniem zwrotnym
☛większy priorytet <-> mniejszy kwant czasu
☛Klasa interactive:większy priorytet dla aplikacji X-ów
☛Klasa system - procesy jądra
☛proces działa, aż zostanie zablokowany lub wywłaszczony
☛Wątki o tym samym priorytecie - planowanie RR
Przykłady poleceń w Solaris 2
☛vmstat licznik [przedział]
☛licznik - liczba raportów
☛przedział - przerwa między raportami (w sek.)
☛vmstat 5 4
☛r - ilość działających procesów czekających na CPU
☛cs - ilość przełączeń kontekstu
☛us - procent cykli CPU w trybie użytkownika
☛sy - procent cykli CPU w trybie jądra
☛id - procent niewykorzystanych cykli CPU
☛
Przykłady poleceń w Solaris 2
(c.d.)
☛dispadmin -l
☛dispadmin -g -c TS
☛ts_quantum - kwant czasu
☛ts_tqexp - nowy priorytet po wykorzystaniu czasu
☛ts_slpret - nowy priorytet po wyjściu z uśpienia
☛ts_maxwait - maksymalny czas pozostawania gotowym
☛ts_lwait - nowy priorytet po przekroczeniu ts_maxwait
☛priocntl -d -i all
Przykład: Windows 2000
☛Planowanie priorytetowe z wywłaszczeniami
☛Wątek jest wykonywany aż zostanie wywłaszczony
przez proces o wyższym priorytecie, zakończy,
zużyje kwant czasu, wykona blokujące wywołanie
systemowe (np. we/wy)
☛32 priorytety(kolejki procesów), 6 klas priorytetów,
7 relatywnych priorytetów w obrębie klas (API)
☛NORMAL - priorytet domyślny w klasie
☛Proces wybrany na ekranie ma zwiększany trzy
razy kwant czasu
Podsumowanie (1)
☛Planowanie przydziału procesora polega na
podjęciu decyzji co do wyboru procesu z kolejki
procesów gotowych
☛Przydziału procesora do wybranego procesu
dokonuje ekspedytor
☛Najprostszy algorytm to „pierwszy lepszy” FCFS
☛Optymalny algorytm (tj. dający najkrótszy
średni czas oczekiwania) to „najkrótszy
najlepszy” SJF
Podsumowanie (2)
☛W systemach z podziałem czasu
najodpowiedniejsze jest planowanie rotacyjne,
które każdemu z procesów w kolejce procesów
gotowych przydziela jednakowy kwant czasu
☛problem: wybór kwantu czasu
☛kwant za duży mamy FCFS
☛kwant za mały wtedy zbyt częste przełączanie kontekstu
☛Algorytm RR jest wywłaszczający, FCFS nie
jest, SJF może być taki i taki
Podsumowanie (3)
☛Algorytmy wielopoziomowego planowania
kolejek pozwalają na używanie różnych
algorytmów dla różnych klas kolejek
☛pierwszoplanowa kolejka procesów interakcyjnych (RR)
☛drugoplanowa kolejka wsadowa (FCFS)
☛przemieszczanie procesów w kolejkach ze sprzężniem
☛Metody pomagające wybierać właściwe
algorytmy planowania kolejek
☛analityczne do określania wydajności algorytmu
☛symulacyjne pozwalające określić zachowanie procesu na
reprezentatywnych próbkach procesów
☛implementacja (kosztowna)

Podobne dokumenty