1
Systemy operacyjne
Zarządzanie procesami
Wykład 3
powtórzenie
2
Planowanie procesów
Celem wieloprogramowania jest jak najlepsze
wykorzystanie procesora - powinien on zawsze
wykonywać jakiś proces. W systemie
jednoprocesorowym może być tylko jeden proces
aktywny. Wszystkie pozostałe procesy muszą czekać do
czasu, aż procesor będzie wolny i będzie można
przydzielić go jednemu z nich. Zapewnienie
najwyższej przepustowości procesora (liczba procesów
kończonych w jednostce czasu) wymaga planowania
przydziału procesora dla kolejnych procesów.
W podziale czasu przełączanie procesora do
procesów powinno następować tak często, aby każdy z
wykonywanych programów mógł współpracować z
użytkownikami w sposób interaktywny.
3
Kolejki planowania (1)
Wchodzące do systemu procesy trafiają do
kolejki zadań - zbioru wszystkich procesów
systemu – i oczekują na przydział PAO.
Kolejka procesów gotowych - zbiór wszystkich
procesów, które oczekują w już w PAO i są gotowe.
Kolejki do urządzeń - zbiór procesów
oczekujących na konkretne urządzenie WE/WY.
4
Planiści (1)
Wyboru gotowego procesu do
wykonania dokonuje proces
systemowy zwany planistą
(scheduler).
Planowanie jest podstawową funkcją
S.O. Prawie wszystkie zasoby
komputera przydzielane są wg
jakiegoś planu.
5
Planiści (2)
planista krótkoterminowy (planista
przydziału procesora) - wybiera jeden proces,
który ma być wykonywany jako następny i
przydziela mu procesor.
planista długoterminowy (planista zadań) -
wybiera procesy przechowywane w pamięci
masowej (dysk) i ładuje je do pamięci, do kolejki
zadań (kolejki procesów gotowych);
6
Planista pośredni
W niektórych SO z podziałem czasu może
występować pośredni poziom planowania i planista
pośredni (średnioterminowy).
Dokonuje on wymiany procesu poprzez wysyłanie go
z pamięci operacyjnej na zewnątrz i ponowne
wprowadzenie.
Cel: lepszy dobór procesów w pamięci operacyjnej
lub
zwolnienie miejsca w pamięci, gdy żądania pamięci
przekraczają jej bieżący obszar.
7
Przełączanie kontekstu
gdy CPU przełącza się do innego procesu to
system musi przechować stan starego procesu i
załadować przechowywany stan nowego procesu;
nazywa się to przełączaniem kontekstu ;
czas przełączania kontekstu jest obciążeniem dla
systemu, które nie jest związane z żadną użyteczną
pracą ;
czas ten zależy w dużym stopniu od możliwości
sprzętu.
8
Przydział procesora
Decyzje o przydziale procesora mogą zapadać gdy:
• proces przechodzi ze stanu wykonania do czekania
(np. zamówienie na WE/WY),
• proces zakończył działanie,
• proces przeszedł od stanu wykonania do stanu
gotowości (np. wskutek wystąpienia przerwania),
• proces przeszedł ze stanu czekania do stanu
gotowości (np. po zakończeniu operacji WE/WY).
Jeśli planowanie odbywa się tylko w dwu pierwszych
przypadkach to jest to
niewywłaszczeniowy
schemat planowania. W przeciwnym razie mówimy
o
wywłaszczeniowym
schemacie planowania.
9
Algorytmy planowania -
kryteria
Kryteria wyboru algorytmów planowania:
-
wykorzystanie procesora
(w rzeczywistym systemie 40-90%),
-
przepustowość
(liczba procesów kończonych w jednostce czasu) może wynosić od
jednego procesu na godzinę do 10 procesów na 1 sekundę,
-
czas cyklu przetwarzania
(liczony od nadejścia procesu do systemu do zakończenia
procesu = czekanie na wejście do pamięci+ czekanie w kolejce procesów gotowych
do wykonania+ wykonywanie procesu przez procesor + wykonywanie operacji
WE/WY),
-
czas oczekiwania
(procesu w kolejce procesów gotowych). Algorytm planowania nie
ma wpływu na czas w którym proces działa lub wykonuje operacje wejścia-wyjścia.
Oddziałuje tylko na czas spędzany przez proces w kolejce procesów gotowych do
wykonania. Dlatego rozważa się czas oczekiwania każdego procesu.
-
czas odpowiedzi
(reakcji)- ile czasu upływa od przedłożenia zamówienia do
rozpoczęcia pierwszej odpowiedzi.
?
10
Przykładowe algorytmy
planowania przydziału
procesora
11
Algorytm -pierwszy nadszedł - pierwszy
obsłużony FCFS (First-Come, First-Served),
realizacja za pomocą kolejki FIFO.
Najpierw najkrótsze zadanie (proces) SJF
(Shortest-Job-First). Algorytm ten wiąże z
każdym procesem długość jego najbliższej z
przyszłych faz procesora
Planowanie priorytetowe - każdy proces
otrzymuje priorytet (np. z przedziału 0-7
czy 0-4095). Procesor przydziela się temu
procesowi, którego priorytet jest najwyższy
W planowaniu rotacyjnym (round-robin)-
ustala się kwant czasu (rzędu 10-100
milisekund). Planista przegląda kolejkę
procesów gotowych do wykonania i
każdemu procesowi przydziela odcinek
czasu nie dłuższy od 1 kwantu czasu.