background image

 

 

Planowanie przydziału procesora

Planowanie przydziału procesora

background image

5.2

Silberschatz, Galvin and Gagne ©2005

Operating System Concepts

Planowanie przydziału procesora

Planowanie przydziału procesora

Pojęcia podstawowe

Kryteria planowania

Algorytmy planowania

Planowanie wieloprocesorowe

Planowanie w czasie rzeczywistym

Ocena algorytmów

Przykłady planowania procesów:

Linux

Windows XP / Vista

Solaris

background image

5.3

Silberschatz, Galvin and Gagne ©2005

Operating System Concepts

Pojęcia podstawowe

Pojęcia podstawowe

Celem wieloprogramowania jest maksymalizowanie 

wykorzystania CPU przez utrzymywanie w działaniu pewnej liczby 
procesów (na jednym procesorze wykonywany jest tylko jeden 
proces, pozostałe czekają na swoją kolej).

Dzięki przełączaniu procesora między różne procesy system 
operacyjny może zwiększyć wydajność komputera.

Planowanie (scheduling) jest podstawową funkcją systemu 
operacyjnego – podlega mu użytkowanie prawie wszystkich 

zasobów komputera.

Planowanie przydziału procesora (CPU scheduling), który jest 
jednym a podstawowych zasobów komputera, leży u podstaw 
wieloprogramowych systemów operacyjnych.

Sukces w planowaniu przydziału procesora zależy od 
obserwowalnej właściwości procesów: cykli działania procesora i 

oczekiwania na urządzenia WE/WY

background image

5.4

Silberschatz, Galvin and Gagne ©2005

Operating System Concepts

Cykl faz procesora i wejścia-wyjścia

Cykl faz procesora i wejścia-wyjścia

Procesy naprzemienne przechodzą między fazą procesora (CPU 

burst) a fazą wejścia-wyjścia (I/O burst).

      Ciąg faz procesora i wejścia wyjścia  

 

Histogram czasów faz procesora

                                                                                          (krzywa hiperwykładnicza)

background image

5.5

Silberschatz, Galvin and Gagne ©2005

Operating System Concepts

Planista przydziału procesora

Planista przydziału procesora

Planista przydzia!u procesora (CPU scheduler) wybiera jeden spośród 

gotowych do wykonania procesów w pamięci I przydziela mu procesor.

Decyzje o przydziale procesora mogą zapadać kiedy proces:

1.

Przeszedł od stanu aktywności do stanu czekania;

2.

Przeszedł od stanu aktywności do stanu gotowości;

3.

Przeszedł od stanu czekania do stanu gotowości;

4.

Kończy działanie.

Planowanie, które odbywa się tylko w sytuacjach 1 i 4 jest planowaniem 

niewywłaszczającym (nonpreemtive) lub inaczej: szeregowaniem bez 
wywłaszczania – kandydatem do przydziału procesora musi być nowy proces 
(np. MS Windows 3.1).

Każdy inny rodzaj planowania jest wywłaszczający (preemtive), zwany też 
szeregowaniem z wywłaszczaniem – kandydatem do przydziału procesora jest 

również dany proces (np. UNIX).

Wymaga wsparcia sprzętowego (np. czasomierz), a także ochrony 
danych (zwłaszcza danych jądra) i synchronizacji procesów.

background image

5.6

Silberschatz, Galvin and Gagne ©2005

Operating System Concepts

Ekspedytor lub dyspozytor (dispatcher) – moduł, 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.

Czas zużywany przez ekspedytora na wstrzymanie jednego 
procesu i uaktywnienie innego nazywa się opóźnieniem 

ekspedycji (dispatch latency).

Czas ten powinien być jak najkrótszy!

Program ekspediujący

Program ekspediujący

background image

5.7

Silberschatz, Galvin and Gagne ©2005

Operating System Concepts

Kryteria planowania

Kryteria planowania

Wykorzystanie procesora (CPU utilization) – procesor powinien 

być możliwie jak najbardziej zajęty.

Przepustowość (throughput) – liczba procesów kończących się 

w jednostce czasu (np. 10 procesów na sekundę).

Czas cyklu przetwarzania (turnaround time) – czas potrzebny na 
wykonanie procesu (od momentu pojawienia się procesu w systemie 
do chwili jego zakończenia).

Czas oczekiwania (waiting time) – suma okresów czasu, które 
proces spędza czekając w kolejce procesów gotowych.

Czas odpowiedzi (response time) – czas między wysłaniem 
żądania (złożeniem zamówienia) a pojawieniem się pierwszej 

odpowiedzi; nie obejmuje czasu potrzebnego na wyprowadzenie 
odpowiedzi (zależny od urządzenia WY).

ważne kryterium planowania dla systemów interakcyjnych.

background image

5.8

Silberschatz, Galvin and Gagne ©2005

Operating System Concepts

Kryteria optymalizacji

Kryteria optymalizacji

Maksymalne wykorzystanie procesora.

Maksymalna przepustowość.

Minimalny czas cyklu przetwarzania.

Minimalny czas czekania.

Minimalny czas odpowiedzi.

Najczęściej optymalizuje się miarę średnią.

Czasami bardziej pożądana jest optymalizacja wartości minimalnych 
lub maksymalnych, np. zmniejszenie maksymalnego czasu 

odpowiedzi w „sprawiedliwych” systemach interakcyjnych.

Według niektórych analityków w systemach interakcyjnych ważniejsza 

jest minimalizacja wariancji czasu odpowiedzi niż jego średniej – 
system z przewidywalnym czasem odpowiedzi może być bardziej 
pożądany niż system, który ma bardzo zmienny czas odpowiedzi, choć 

przeciętnie krótszy

background image

5.9

Silberschatz, Galvin and Gagne ©2005

Operating System Concepts

Algorytmy planowania

Algorytmy planowania

Algorytm FCFS (first-come, first-served)

Algorytm FCFS (first-come, first-served)

Najprostszy algorytm planowania przydziału procesora

pierwszy zgłoszony – pierwszy obsłużony (first-come, first-served – FCFS)

Implementacja za pomocą kolejek FIFO (first-in, first-out)

Przykład:             

proces

czas trwania fazy [ms]

                                    P1                                  24
                                    P2                                    3
                                    P3                                    3

Przypuśćmy, że procesy nadeszły w kolejności: P1, P2, P3 – diagram Gantta (Gantt chart):

»

Czas oczekiwania: t1 = 0,  t2 = 24, t3 = 27;

»

Średni czas oczekiwania: ts = (0 + 24 + 27)/3 = 17

P

1

P

2

P

3

24

27

30

0

background image

5.10

Silberschatz, Galvin and Gagne ©2005

Operating System Concepts

Przypuśćmy, że procesy nadeszły w kolejności: P2, P3, P1 – diagram Gantta:

»

Czas oczekiwania: t1 = 6,  t2 = 0, t3 = 3;

»

Średni czas oczekiwania: ts = (6 + 0 + 3)/3 = 3

     - znacznie krótszy niż poprzednio!

Efekt konwoju (convoy effect) – procesy krótkie czekają na zwolnienie 

procesora przez proces długi

Algorytm FCFS jest niewywłaszczający

Algorytm FCFS jest kłopotliwy w systemach z podziałem czasu

P

1

P

3

P

2

6

3

30

0

Algorytmy planowania

Algorytmy planowania

Algorytm FCFS (first-come, first-served)

Algorytm FCFS (first-come, first-served)

background image

5.11

Silberschatz, Galvin and Gagne ©2005

Operating System Concepts

Algorytm „najpierw najkrótsze zadanie” (shortest-job-first – SJF) - 

przydziela CPU procesowi mającemu najkrótszą następną fazę 
procesora.

Możliwe są dwa schematy:

niewywłaszczający: żaden proces nie jest wywłaszczany podczas 
wykonywania fazy procesora.

wywłaszczający: bieżący proces jest wywłaszczany przez nowy proces, 
którego następna faza procesora jest krótsza o pozostałej części fazy 
procesora bieżącego procesu.

Schemat ten zwany jest planowaniem „najpierw najkrótszy 
pozostały czas
” (shortest-remaining-time-first – SRTF).

Algorytm SJF jest optymalny – daje minimalny średni czas 

oczekiwania dla danego zbioru procesów.

Łatwiejszy do realizacji w planowaniu długoterminowym (np. w systemach 

wsadowych), trudniejszy w planowaniu krótkoterminowym 
– brak sposobu na poznanie długości następnej fazy 
   procesora (można jedynie zgadywać).

Algorytmy planowania

Algorytmy planowania

Algorytm SJR (Shortest-Job-First)

Algorytm SJR (Shortest-Job-First)

background image

5.12

Silberschatz, Galvin and Gagne ©2005

Operating System Concepts

Przykład:             

proces

 czas przybycia[ms]   

czas 

trwania fazy [ms]

                                                    P1                      0.0                 7
                                                    P2                      2.0                 4
                                                    P3                      4.0                 1
     

                       P4                      5.0                 4

-  niewywłaszczający

»

Czas oczekiwania: t1 = 0,  t2 = 6, t3 = 3, t4 = 7;

»

Średni czas oczekiwania: ts = (0 + 6 + 3 + 7)/4 = 4

P

1

P

3

P

2

7

3

16

0

P

4

8

12

Algorytmy planowania

Algorytmy planowania

Algorytm SJR (Shortest-Job-First)

Algorytm SJR (Shortest-Job-First)

background image

5.13

Silberschatz, Galvin and Gagne ©2005

Operating System Concepts

Przykład:             

proces

 czas przybycia[ms]   

czas 

trwania fazy [ms]

     

                   P1               0.0                            7

     

                   P2               2.0           

   4

     

                   P3               4.0            

   1

     

                   P4               5.0            

   4

-  wywłaszczający

»

Czas oczekiwania: t1 = 9,  t2 = 1, t3 = 0, t4 = 2;

»

Średni czas oczekiwania: ts =  (9 + 1 + 0 +2)/4 = 3

Algorytmy planowania

Algorytmy planowania

Algorytm SJR (Shortest-Job-First)

Algorytm SJR (Shortest-Job-First)

P

1

P

3

P

2

4

2

11

0

P

4

5

7

P

2

P

1

16

background image

5.14

Silberschatz, Galvin and Gagne ©2005

Operating System Concepts

Długość następnej fazy procesora

Długość następnej fazy procesora

predykcja

predykcja

Długość następnej fazy procesora może być jedynie przewidywana, 

np. na podstawie jego wcześniejszych faz!

Na ogół używa się metody średniej wykładniczej pomiarów długości 

poprzednich faz procesora:

:

Define

  

4.

1

0

 ,

  

3.

burst

  

CPU

 

next

 

the

 

for

 

value

 

predicted

 

  

2.

burst

  

CPU

 

 

of

 

lenght

 

actual

  

1.

1

=

=

+

α

α

τ

n

th

n

n

t

(

)

.

1

 

1

n

n

n

t

τ

α

α

τ

+

=

=

background image

5.15

Silberschatz, Galvin and Gagne ©2005

Operating System Concepts

Długość następnej fazy procesora

Długość następnej fazy procesora

predykcja

predykcja

background image

5.16

Silberschatz, Galvin and Gagne ©2005

Operating System Concepts

Przykłady użycia

Przykłady użycia

metody średniej wykładniczej pomiarów długości 

metody średniej wykładniczej pomiarów długości 

poprzednich faz procesora

poprzednich faz procesora

α

 =0

τ

n+1

 = 

τ

n

Niedawna historia nie ma wpływu na wynik

α

 =1

 

τ

n+1

 = 

α

 t

n

Liczy się tylko najnowsza długość fazy

Rozwijając powyższą formułę otzrymujemy:

τ

n+1

 = 

α

 t

n

+(1 - 

α

)

α

 t

n

 -1 + …

            +(1 - 

α

 )

j 

α

 t

n

 

-j

 + …

            +(1 - 

α

 )

n +1 

τ

0

Ponieważ 

α

 , (1 - 

α

) < 1, to każdy następny składnik ma mniejszą 

wagę niż poprzednik; często przyjmuje się 

α

 = 0.5 (wartość 

początkowa: średnia z całego systemu lub arbitralna stała)

background image

5.17

Silberschatz, Galvin and Gagne ©2005

Operating System Concepts

Planowanie priorytetowe

Planowanie priorytetowe

W algorytmie priorytetowym każdemu procesowi przypisuje si" 

priorytet w postaci pewnej liczby całkowitej – zazwyczaj: im 
mniejsza liczba tym wyższy priorytet (np. UNIX), ale bywa też 
odwrotnie (np. Windows XP/Vista).

Procesor jest przydzielany procesowi o najwyższym priorytecie.

Priorytety mogą być definiowane wewnętrznie (na podstawie 
jakichś mierzalnych własności procesu) lub zewnętrznie (ważność 
procesu, czynniki polityczne itd.).

Algorytm priorytetowy może być wywłaszczający lub 
niewywłaszczający.

Algorytm SJF jest algorytmem priorytetowym, gdzie priorytet p jest 

proporcjonalny do przewidywanej długości następnej fazy 
procesora (im krótsza faza tym wyższy priorytet).

Problem: (za)głodzenie (starvation) – procesy o niskim 
priorytecie mogą nigdy nie zostać dopuszczone do procesora!

Rozwiązanie: postarzanie (aging) procesów – stopniowe 
podwyższanie priorytetów procesów długo oczekujących.

background image

5.18

Silberschatz, Galvin and Gagne ©2005

Operating System Concepts

Planowanie rotacyjne

Planowanie rotacyjne

Algorytm planowania rotacyjnego (round-robin – RR) jest podobny do 

algorytmu FCFS, ale w celu przełączania procesów dodano w nim 
wywłaszczanie i cykliczna kolejkę.

Każdy proces dostaje małą jednostkę czasu procesora, tzw. kwant czasu 
(time quantum) (zwykle 10 do 100 milisekund) – po jej upływie proces jest 
wywłaszczany i wysyłany na koniec kolejki procesów gotowych, będącą 

kolejką typu FIFO.

Dla n procesów w kolejce i kwantu czasu q, każdy proces dostaje 1/n czasu 
procesora porcjami, których wartość nie przekracza q 

żaden proces nie czeka dłużej niż (n-1)q jednostek czasu.

Długość kwantu czasu:

bardzo duża (nieskończona) – algorytm FCFS.

bardzo mała (np. 1 μs) – dzielenie procesora (processor sharing).

Kwant czasu powinien być długi w porównaniu z czasem przełączania 
kontekstu, w przeciwnym razie narzut związany z przełączaniem kontekstu 
jest zbyt wysoki!

Typowa reguła: 80% faz procesora krótszych od kwantu czasu.

background image

5.19

Silberschatz, Galvin and Gagne ©2005

Operating System Concepts

Planowanie rotacyjne

Planowanie rotacyjne

Przykład:
Niech kwant czasu q = 4 ms.
                  proces   czas trwania fazy [ms]

     P1                     24
     P2                       3
     P3                       3

»

Czas oczekiwania: t1 = 6,  t2 = 4, t3 = 7;

»

Średni czas oczekiwania: ts =  (6 + 4 + 7)/3 = 5.66

Typowo dłuższy cykl przetwarzania niż w algorytmie SJF, ale 
krótszy czas odpowiedzi!

Zaprojektowany specjalnie dla systemów z podziałem czasu

background image

5.20

Silberschatz, Galvin and Gagne ©2005

Operating System Concepts

Planowanie wielopoziomowe kolejek

Planowanie wielopoziomowe kolejek

Kolejka procesów gotowych jest podzielona na osobne kolejki:

Procesy pierwszoplanowe (foreground) – interakcyjne;

Procesy drugoplanowe (background) – wsadowe.

Każda kolejka ma swój własny algorytm planujący:

1. Pierwszoplanowa: np. algorytm rotacyjny;
2. Drugoplanowa: np. algorytm FCFS.

Musi istnieć planowanie między kolejkami:

Planowanie stałopriorytetowe z wywłaszczeniem, np.

kolejka pierwszoplanowa ma wyższy priorytet niż drugoplanowa 

możliwość zagłodzenia!

Przydział porcji czasu procesora dla każdej z kolejek, np. 

80% czasu procesora dla kolejki pierwszoplanowej (z planowaniem 
rotacyjnym), a 20% dla drugoplanowej (z planowaniem FCFS).

background image

5.21

Silberschatz, Galvin and Gagne ©2005

Operating System Concepts

Procesy:

najwyższy priorytet

systemowe

interakcyjne

redagowania 
interakcyjnego

wsadowe

studenckie

najniższy priorytet

Planowanie wielopoziomowe kolejek

Planowanie wielopoziomowe kolejek

background image

5.22

Silberschatz, Galvin and Gagne ©2005

Operating System Concepts

Planowanie wielopoziomowe ze 

Planowanie wielopoziomowe ze 

sprzężeniem zwrotnym

sprzężeniem zwrotnym

W zwykłym algorytmie wielopoziomowego planowania kolejek proces jest 

na stałe przypisany do określonej kolejki (brak elastyczności).

Planowanie wielopoziomowych kolejek ze sprzężeniem zwrotnym 
(multilevel feedback queue) umożliwia przemieszczanie procesów 
między różnymi kolejkami: proces zużywający dużo czasu procesora 
zostaje przeniesiony do kolejki o niższym priorytecie i odwrotnie.

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;

metoda użyta do decydowania o awansowaniu procesu do kolejki o 
wyższym priorytecie;

metoda użyta do decydowania o zdymisjonowaniu procesu do kolejki 
o niższym priorytecie;

metoda wyznaczajaca kolejkę, do której trafia proces potrzebujący 
obsługi.

Jest to najogólniejszy algorytm planowania przydziału procesora.

background image

5.23

Silberschatz, Galvin and Gagne ©2005

Operating System Concepts

Kolejki wielopoziomowe 

Kolejki wielopoziomowe 

ze sprzężeniem zwrotym

ze sprzężeniem zwrotym

background image

5.24

Silberschatz, Galvin and Gagne ©2005

Operating System Concepts

Planowanie wieloprocesorowe

Planowanie wieloprocesorowe

W systemach wieloprocesorowych planowanie przydziału CPU jest 

bardziej skomplikowane.

A. Systemy homogeniczne (identyczne procesory):

Dzielenie obciążeń (load sharing) – wszystkie procesy trafiają do 

jednej kolejki wykonań (run queue) i są przydzielane do dowolnego 
z dostępnych procesorów.

Struktura „master-slave” – jeden procesor pełni funkcję planisty dla 
pozostałych procesorów.

Wieloprzetwarzanie asymetryczne (asymmetric multiprocessing) – 
jeden procesor (serwer główny) wykonuje planowanie, operacje 
WE/WY i inne czynności systemowe, pozostałe zaś wykonują tylko 

kod użytkowy.

B. Systemy heterogeniczne (różne procesory) – planowanie dedykowane 
dla danego systemu.

background image

5.25

Silberschatz, Galvin and Gagne ©2005

Operating System Concepts

Planowanie w czasie rzeczywistym 

Planowanie w czasie rzeczywistym 

Rygorystyczne systemy czasu rzeczywistego – do wypełniania krytycznych 

zadań w gwarantowanym czasie.

Proces jest dostarczany wraz z instrukcją określającą potrzeby czasowe.

Na postawie tych danych planista akceptuje proces, zapewniając 

wykonanie go na czas, lub odrzuca zlecenie jako niewykonalne.

Niemożliwe jest udzielenie gwarancji wykonania procesu w zadanym 

czasie w systemach z pamięcią pomocniczą lub wirtualną.

Łagodne systemy czasu rzeczywistego – procesy o decydującym znaczeniu 
uzyskują priorytet nad innymi procesami:

Planowanie musi być priorytetowe;

Procesy czasu rzeczywistego muszą mieć najwyższy priorytet, a ich 

priorytety nie mogą maleć z upływem czasu.

Opóźnienie ekspediowania procesów do procesora musi być małe:

wstawianie w długotrwa!ych funkcjach systemowych punktów 

wywłaszczeń, w których może nastąpić przełączenie kontekstu.

Możliwość wywłaszczenia całego jądra – potrzebna ochrona danych jądra 

przy pomocy mechanizmów synchronizacji (np. Solaris 2).

background image

5.26

Silberschatz, Galvin and Gagne ©2005

Operating System Concepts

Opóźnienie ekspedycji

Opóźnienie ekspedycji

Faza konfliktowa (conflict phase) obejmuje:

1. Wywłaszczenie wszelkich procesów działających w jądrze.
2. Zwolnienie przez niskopriorytetowe procesy zasobów potrzebnych

background image

5.27

Silberschatz, Galvin and Gagne ©2005

Operating System Concepts

Ocena algorytmów

Ocena algorytmów

Modelowanie deterministyczne (deterministic modeling) – przyjmuje konkretne, z 

góry określone obciążenie robocze systemu i definiuje zachowanie algorytmu dla 
danego obciążenia (np. dla zbioru procesów o określonych długościach faz 
procesora porównuje się średnie czasy oczekiwania dla różnych algorytmów).

Jest proste i szybkie, daje dokładne liczby (łatwo porównywalne).

Wymaga zbyt wiele dokładnej wiedzy i dotyczy zbyt specyficznych sytuacji – 
nie może być ogólnie użyteczne.

Modele obs!ugi kolejek (queuing models) – ustala się rozkłady faz procesora i 
WE/WY, czasów przybywania procesów (np. na podstawie pomiarów) i w oparciu 

o nie oblicza się średnią przepustowość, wykorzystanie procesora, czas 
oczekiwania itd. dla różnych algorytmów planowania.

Potrzebne są pewne założenia (np. uproszczone rozkłady), co może 
prowadzić do niedokładnych, a czasem nierealistycznych wyników.

Symulacje – komputerowe modelowanie systemu komputerowego (zwykle przy 
użyciu technik Monte Carlo), np. z użyciem taśm śladów.

Dostarczają dokładniejszych wyników, ale mogą być kosztowne i 
czasochłonne.

Implementacja – testowanie algorytmu w rzeczywistym systemie.

background image

5.28

Silberschatz, Galvin and Gagne ©2005

Operating System Concepts

Planowanie procesów w systemie 

Planowanie procesów w systemie 

Solaris 2

Solaris 2

Solaris stosuje priorytetowe planowanie procesów – cztery klasy planowania:

klasa czasu rzeczywistego , systemowa, interakcyjna,  podziału czasu.

W każdej klasie są różne priorytety i różne algorytmy planowania.

Domyślną klasą planowania procesu jest klasa podziału czasu.

W polityce planowania podziału czasu używane są wielopoziomowe kolejki ze 

sprzężeniem zwrotnym do dynamicznego zmieniania priorytetów oraz przydzielania 

odcinków czasu o różnych długościach (domyślnie: im wyższy priorytet, tym krótszy 

odcinek czasu i odwrotnie).

Procesy interakcyjne mają z reguły wyższy priorytet, procesy ograniczone przez 

procesor mają priorytet niższy.

Taka polityka planowania daje dobry czas odpowiedzi procesów interakcyjnych i 

dobrą przepustowość dla procesów ograniczonych przez procesor.

Klasa systemowa służy do wykonywania procesów jądra – priorytet takiego procesu 

pozostaje niezmienny przez cały czas wykonywania.

Wątki w klasie czasu rzeczywistego otrzymują najwyższy priorytet – daje to gwarancję 

uzyskania odpowiedzi w ograniczonym odstępie czasu 

(do tej klasy należy na ogół niewiele wątków).

background image

5.29

Silberschatz, Galvin and Gagne ©2005

Operating System Concepts

Planowanie procesów w systemie

Planowanie procesów w systemie

Linux

Linux

Dwa oddzielne algorytmy planowania procesów:

algorytm z podziałem czasu – do sprawiedliwego planowania z wywłaszczeniami 

działania wielu procesów.

algorytm dla zadań czasu rzeczywistego, gdzie priorytety bezwzględne są ważniejsze 

niż sprawiedliwość.

W skład tożsamości każdego procesu wchodzi klasa planowania, określająca, który z 

algorytmów ma być użyty dla procesu.

Dla zwykłych procesów z podziałem czasu stosowany jest algorytm priorytetowy oparty na 
kredytowaniu: kredyt = kredyt/2 + priorytet

do wykonania wybierany jest proces o największym kredycie.

kredyt wykonywanego procesu jest obniżany o jedną jednostkę przy każdym 

przerwaniu zegara – kiedy kredyt spadnie do zera, proces jest zawieszany.

kiedy żaden z procesów gotowych do działania nie ma kredytu, następuje wtórne 

kredytowanie każdego procesu w systemie (a nie tylko procesów gotowych).

Dla procesów czasu rzeczywistego realizowane są dwie klasy planowania:

Algorytm FCFS i algorytm RR (rotacyjny).

Każdy proces posiada priorytet – planista uruchamia ten o najwyższym priorytecie!

Kod jądra nie może być wywłaszczony przez kod trybu użytkownika!

background image

5.30

Silberschatz, Galvin and Gagne ©2005

Operating System Concepts

Planowanie procesów w systemie

Planowanie procesów w systemie

Windows XP / Vista

Windows XP / Vista

System Windows XP planuje wątki za pomocą priorytetowego algorytmu 

wywłaszczającego.

Planista sprawia, że zawsze wykonywany jest wątek o najwyższym priorytecie.

Fragment jądra, który zajmuje się planowaniem nazywa się dyspozytorem.

Wątek wybrany przez dyspozytora będzie wykonywany aż do: wywłaszczenia przez wątek 

o wyższym priorytecie, zakończenia, wyczerpania kwantu czasu lub użycia w nim 

blokującego wywołania systemowego (np. operacji WE/WY).

Priorytety podzielone są na dwie klasy:

klasa zmienna – priorytety od 1 do 15; priorytet jest zmniejszany przy przerwaniu 

czasomierza, a zwiększany po zakończeniu czekania (np. na operację WE/WY).

klasa czasu rzeczywistego – priorytety od 16 do 31;

istnieje też wątek z priorytetem 0, służący do zarządzania pamięcią.

Z każdym priorytetem związana jest kolejka wątków; jeżeli żaden wątek nie jest gotowy, to 

wykonywany jest wątek postojowy (idle thread).

Win32 API wyróżnia 6 klas priorytetów, a w obrębie każdej z klas określa 7 priorytetów 

względnych – są one odpowiednio powiązane z priorytetami liczbowymi jądra; każda klasa 

posiada odpowiedni priorytet podstawowy.

Ponadto Windows XP rozróżnia proces pierwszoplanowy – aktualnie działający na 

ekranie, któremu zwiększa kwant czasu (typowo 3-krotnie) i procesy drugoplanowe

 - w celu polepszenia wydajności pracy interakcyjnej.


Document Outline