SO 2 PROCESY I WATKI

background image

SYSTEMY OPERACYJNE

PROCESY I WĄTKI

background image

2

PROCESY I WĄTKI

Proces

to

program,

który

jest

wykonywany.
Procesem jest program użytkownika,
zadanie

systemowe

(spooling,

przydział pamięci itp.).

Program jest bierny, jest zbiorem
bitów przechowywanych na dysku.

Program nie jest procesem.

Proces jest aktywny, dla procesu
licznik rozkazów wskazuje następną
instrukcję do wykonania. Wykonanie
procesu musi przebiegać w sposób

sekwencyjny

.

background image

3

PROCESY I WĄTKI

Każdy proces ma:

-licznik instrukcji,

-stos,

-segment kodu,

-segment danych.

background image

4

PROCESY I WĄTKI

System operacyjny odpowiada za
wykonywanie następujących
czynności:

tworzenie i usuwanie procesów,

wstrzymywanie i wznawianie procesów,

dostarczanie mechanizmów komunikacji

procesów,

dostarczanie mechanizmów obsługi blokad.

   

background image

5

PROCESY I WĄTKI

Proces stanowi jednostkę pracy w systemie.

Na system składają się:

procesy systemu operacyjnego (wykonują
kod systemu),

procesy użytkowników (wykonują kod
programów użytkowników).

Pseudoparalelizm - w systemie z podziałem
czasu (jednoprocesorowym) w każdej chwili
wykonuje się tylko jeden proces, ale z uwagi
na przełączanie powstaje wrażenie
równoczesnej pracy wielu procesów.

background image

6

PROCESY I WĄTKI

Blok kontrolny procesu (Process Control Block) -
reprezentuje

proces w systemie

:

stan procesu,

numer procesu (identyfikator),

licznik rozkazów, stosu,

rejestry,

informacje o pamięci zajętej przez proces,

wykaz otwartych plików,

informacja o planowaniu przydziału
procesora,

informacja o wykorzystanych zasobach

(rozliczanie).

background image

7

PROCESY I WĄTKI

Stan procesu:

nowy

-

proces

został

utworzony,

gotowy

-

proces

czeka

na

przydział

procesora,

wykonywany

- proces wykonuje

instrukcje,

(aktywny – po przydzieleniu procesora

przez planistę)

oczekujący

-

proces

czeka

na

wystąpienie

jakiegoś zdarzenia

(np. zakończenia operacji we-wy),

zakończony

-

proces

zakończył

działanie.

background image

8

PROCESY I WĄTKI

background image

9

PROCESY I WĄTKI

Tworzenie procesu

:

za pomocą funkcji systemowej (np. fork() w
UNIX),

proces utworzony przez inny proces
(macierzysty,

rodzic) nazywamy

potomnym,

potomek uzyskuje nową pulę zasobów (od
SO) lub korzysta z zasobów rodzica (mniejsze
przeciążenie systemu).
 

Zakończenie procesu

:

po ostatniej instrukcji,

specjalna funkcją (np. exit() w UNIX),

na żądania rodzica (abort() – np. po
przekroczeniu limitu zasobów),

niekiedy: zakończenie kaskadowe: po
zakończeniu

rodzica procesy potomne są

kończone lub adoptowane przez inne procesy.

background image

10

PROCESY I WĄTKI

Proces

macierzysty

i

potomny

mogą

wykonywać się współbieżnie.
Proces potomny często jest powoływany do
realizacji jakiegoś zadania dla procesu
macierzystego (wówczas czeka on na
zakończenie procesu potomnego.

Np. w Uniksie:
nowy proces – wywołanie systemowe

fork

jest to

kopia procesu macierzystego

(wykonuje ten sam

program, z tego samego punktu i przy tym samym
stanie pamięci);
jeżeli ma wykonać inny program – polecenie

exec

:

załadowanie nowego programu do przestrzeni
adresowej procesu i rozpoczęcie wykonywania go);
zakończenie procesu –

exit

: system przekazuje

informację

procesowi

macierzystemu

(który

oczekiwał na to, wywołując funkcję

wait

) i zwalnia

zasoby przydzielone potomkowi.

background image

11

PROCESY I WĄTKI

Relacje pomiędzy procesami

a) procesy niezależne:

stan procesu nie jest współdzielony z innymi

procesami,

wykonanie procesu jest zdeterminowane (wynik

zależy tylko od stanu początkowego),

wykonanie procesu jest powtarzalne,

zatrzymanie procesu (stop i restart) nie powoduje

żadnych zmian w wykonywaniu procesu.

b) procesy współpracujące:

stan procesu

może być współdzielony z innymi

procesami,

wyniku

wykonania

procesu

nie

można

przewidzieć,

gdyż

zależy

od

wykonywanej

sekwencji działań,

wynik jest niedeterministyczny (nawet przy tych

samych danych wejściowych),

background image

12

PROCESY I WĄTKI

Wątek

sterowania to

sekwencja instrukcji

(tzw.

lekki proces) działający w tej samej wirtualnej
przestrzeni adresowej, co tworzący go (ciężki)
proces.

Stan wątku jest zdefiniowany przez małą,
odrębną ilość danych (własny stan rejestrów i
stos).

Każdy wątek ma oddzielne rejestry i stos
wywołań, współdzieli natomiast w ramach tego
samego procesu segment danych, segment
kodu, tablicę otwartych plików, itp.

background image

13

PROCESY I WĄTKI

Cechy wątków:

każdy wątek jest wykonywany sekwencyjnie,

każdy wątek posiada własny licznik rozkazów i

stos,

wątki dzielą czas procesora tak, jak procesy,

w systemie wieloprocesorowym wątki mogą

być

wykonywane równolegle,

stan wątku jest definiowany małą ilością

danych,

wątek ma te same podstawowe cechy co

proces
(stany, możliwość tworzenia wątków
potomnych,

korzystania z urządzeń

zewnętrznych, itd...).

między wątkami tego samego procesu nie ma

ochrony pamięci (nie jest możliwa i nie jest
potrzebna),

wątki ze sobą współpracują, a nie

współzawodniczą

(tak jak procesy).

background image

14

PROCESY I WĄTKI

Tradycyjny proces (ciężki) jest równoważny
zadaniu
z jednym wątkiem.

W zadaniu złożonym z wielu wątków podczas
zablokowania jednego wątku może się
wykonywać inny wątek tego zadania;
współpraca wielu wątków w tym samym
zadaniu pozwala zwiększyć przepustowość i
poprawić wydajność.

Wątki umożliwiają połączenie równoległości
z sekwencyjnym wykonaniem:

(1) model dyspozytor - pracownik
(2) model zespołu
(3) model potoku

background image

15

PROCESY I WĄTKI

Zalety

stosowania wątków:

tańsze powołanie wielu wątków niż
utworzenie wielu procesów,

przełączanie procesora między wątkami jest
łatwiejsze (szybsze) niż między zwykłymi
(ciężkimi) procesami,

lepsze wykorzystanie zasobów systemu
komputerowego,

nieograniczone współdzielenie danych
procesu przez wątki;

lepsza realizacja przetwarzania
współbieżnego na maszynach o pamięci
współdzielonej.

Wątek, to podstawowa jednostka wykorzystania
procesora.

background image

16

PROCESY I WĄTKI

Problemy

stosowania wątków:

przy blokowanych odwołaniach wątków do
systemu – proces nie może oddać sterowania
systemowi, musi

czekać na swoje wątki;

aby sprawdzić, czy odwołania wątków będą
blokować system używa się kodu
sprawdzającego (jacket
) (wątków używa się
głównie w zadaniach z blokującymi
odwołaniami w celu poprawy wydajności);

ponieważ nie ma wywłaszczania, zatem wątki
muszą same oddawać sterowanie procedurze
wykonawczej procesu.

background image

17

PROCESY I WĄTKI

Jądro nie jest procesem, ale zarządcą
procesów.
Oprócz procesów użytkownika istnieje
kilka uprzywilejowanych procesów
zwanych

wątkami jądra

, które:

działają w trybie jądra (w przestrzeni
adresowej jądra)

nie komunikują się z użytkownikami
(nie trzeba terminali)

tworzone są w chwili startu systemu i
działają do czasu wyłączenia systemu.

background image

18

PROCESY I WĄTKI

Zmiana trybu pracy zachodzi, gdy:

proces wywołuje funkcję systemową;

CPU wykonujący proces sygnalizuje

wyjątek

, np. wykonanie nieprawidłowej

instrukcji; jądro obsługuje wyjątek na
rzecz procesu, który go spowodował;

urządzenie zewnętrzne zgłasza
procesorowi

sygnał przerwania

, np.

zmiana statusu, zakończenie operacji
we-wy, itp.;

background image

19

PROCESY I WĄTKI

Urządzenia działają asynchronicznie,
więc przerwania nadchodzą w
nieprzewidywalnych momentach.

Po nadejściu przerwania wykonywany

jest

wątek jądra

. Działa on w trybie

jądra, więc odpowiadający mu program
musi być uważany za część jądra,
chociaż umieszczoną w procesie.

background image

20

KLASYFIKACJA PROCESÓW

Klasyfikacja procesów I:

związane z urządzeniami I/O (I/O-bound)

związane z procesorem (CPU-bound).

Klasyfikacja procesów II:

interaktywne

wsadowe

czasu rzeczywistego

background image

21

PLANOWANIE PROCESÓW –

PRZYDZIAŁ PROCESORA

Jedno z podstawowych zadań jądra SO:

przydział procesora

(processes scheduling) –

szeregowanie procesów.

Poziomy szeregowania:

-

wysoki

: szeregowanie zadań – określa się

kolejkę

zadań, do których mają być

przydzielone zasoby

systemu;

-

pośredni

: obsługa procesów w stanie gotowy

– zawieszony;
-

niski

: któremu procesowi w stanie gotowości

ma być

przydzielony procesor.

background image

22

PLANOWANIE PROCESÓW –

PRZYDZIAŁ PROCESORA

Kolejka zadań

(task queue) zbiór zadań

oczekujących na przydział PAO (wszystkie
procesy systemu).

Kolejka procesów gotowych

(read queue)

procesy z przydzieloną PAO (gotowe do
wykonania, czekające na przydział procesora).

Kolejka procesów do urządzenia

(device

queue) procesy oczekujące na operację we /
wy na danym urządzeniu.

Procesy mogą przenosić się pomiędzy
kolejkami.
Decyzja – któremu procesowi ma być
przydzielony procesor.
Inne kolejki – np. oczekiwanie na zdarzenie,
na zakończenie procesu potomnego, itp.

background image

23

PLANOWANIE PROCESÓW –

PRZYDZIAŁ PROCESORA

Algorytmy

przydziału procesora (processes

scheduling) – szeregowania procesów:

Jeśli dwa lub więcej procesów znajdują się w
stanie gotowy do wykonania
, to o kolejności
przydziału jednostki centralnej decyduje planista.

Planista

(scheduler) powinien gwarantować:

sprawiedliwość przydziału CPU,

dobrą wydajność CPU,

mały czas odpowiedzi,

mały czas przetwarzania (turnaround time),

dużą przepustowość (throughput).

background image

24

PLANOWANIE PROCESÓW –

PRZYDZIAŁ PROCESORA

Planista

(scheduler) jest to proces systemowy:

długoterminowy

(p. zadań) – wybiera kolejne

zadania do załadowania do PAO (wysoki

poziom

szeregowania); steruje poziomem

wieloprogramowości (liczbą procesów
współbieżnych)

krótkoterminowy

(p. procesora) – wybiera

proces spośród procesów gotowych (w pamięci)
i przydziela mu procesor (niski poziom
szeregowania).

Różnica pomiędzy planistami zależy od
częstotliwości ich uaktywnień: p.d. – co kilka
minut, p.k. – co 100 ms.

background image

25

PLANOWANIE PROCESÓW –

PRZYDZIAŁ PROCESORA

Decyzje o przydziale procesora są podejmowane,
gdy:
1. proces przeszedł od stanu aktywności do
stanu

oczekiwania, np. z powodu operacji we/wy

lub czekania na zakończenie procesu
potomnego;
2. proces przeszedł od stanu aktywności do
stanu

gotowości, np. wskutek przerwania;

3. proces przeszedł od stanu oczekiwania do
stanu

gotowości, np. po zakończeniu operacji

we/wy;
4. proces kończy działanie.

Planowanie nazywamy:
w sytuacjach 1 i 4 - niewywłaszczeniowym, a
w sytuacjach 2 i 3 - wywłaszczeniowym.

background image

26

PLANOWANIE PROCESÓW –

PRZYDZIAŁ PROCESORA

Planowanie bez wywłaszczenia - proces używa
procesora tak długo, aż przejdzie w stan
oczekiwania lub zakończenia.

Planowanie z wywłaszczeniami – drogie i
ryzykowne

(może komplikować działania przy

wywołaniach systemowych).

background image

27

PLANOWANIE PROCESÓW –

PRZYDZIAŁ PROCESORA

Ekspedytor

(dyspozytor - dispatcher) – moduł,

który faktycznie przekazuje procesor do
dyspozycji procesu wybranego przez planistę
krótkoterminowego;

Obowiązki ekspedytora to:

przechowywanie stanu bieżącego procesu,

przełączanie kontekstu (rejestry, itd.),

przełączanie systemu do trybu
użytkownika,

wykonanie skoku do adresu z bloku
kontrolnego

tj. odpowiedniej komórki w programie

użytkownika

w celu wznowienia działania

programu.
Opóźnienie ekspedycji (dispatch latency) to
czas, który ekspedytor zużywa na
wstrzymanie jednego procesu i uaktywnienie
innego (zwykle 1-100 ms).

background image

28

PLANOWANIE PROCESÓW –

PRZYDZIAŁ PROCESORA

Definicje:

Wykorzystanie procesora

(CPU utilization)

–procent czasu, przez który procesor
pozostaje zajęty - najlepiej by było gdyby
procesor był nieustannie zajęty pracą;
-
powinno się mieścić od 40% (słabe
obciążenie systemu) do 90% (intensywna
eksploatacja).

Przepustowość

(throughput) - liczba

procesów kończących się w jednosce czasu.

background image

29

PLANOWANIE PROCESÓW –

PRZYDZIAŁ PROCESORA

Definicje cd.:

Czas cyklu przetwarzania

(turnaround

time) – czas między utworzeniem procesu w
systemie a chwilą jego zakończenia
(suma czasów czekania na wejście do
pamięci, czekania w kolejce procesów
gotowych, wykonywania operacji we/wy,
wykonania przez CPU);

Czas oczekiwania

(waiting time) - suma

okresów,
w których proces czeka w kolejce procesów
gotowych do działania.

background image

30

PLANOWANIE PROCESÓW –

PRZYDZIAŁ PROCESORA

Definicje cd.:

Czas odpowiedzi

(response time) - ilość

czasu między wysłaniem żądania a
pojawieniem się odpowiedzi, bez
uwzględnienia czasu potrzebnego
na wyprowadzenie odpowiedzi (np. na ekran):

- czas odpowiedzi jest na ogół uzależniony

od

szybkości działania urządzenia

wyjściowego

- miara zastępująca miarę czasu cyklu
przetwarzania w systemach

interaktywnych.

background image

31

PLANOWANIE PROCESÓW –

PRZYDZIAŁ PROCESORA

Kryteria oceny

algorytmów

przydziału

procesora:

efektywność

(efficiency) – utrzymywanie

obciążenia procesora przez cały czas,

przepustowość

(throughput) –

maksymalizacja liczby zadań wykonywanych
w określonym czasie,

czas obrotu

– czas pobytu w systemie

jednego

procesu,

czas oczekiwania

(waiting time) –

minimalizacja

czasu oczekiwania przez

użytkowników wsadowych na wyniki ich
zadań (kolejka procesów gotowych),

czas odpowiedzi

(response time) –

minimalizacja

czasu odpowiedzi dla

użytkowników interakcyjnych

(z podziałem

czasu).

background image

32

KLASYFIKACJA PROCESÓW

Algorytmy

przydziału procesora dzielą się na:

algorytmy z wywłaszczeniem – procesor
może być odebrany procesowi w trakcie jego
wykonywania:

przejście procesu ze stanu

oczekiwania do stanu gotowości lub procesu
aktywnego do stanu

gotowości;

algorytmy bez wywłaszczenia – proces
utrzymuje procesor aż do zakończenia pracy:

przejście procesu aktywnego do stanu oczekiwania
lub zakończenie procesu;

background image

33

PROCESY – PRZYDZIAŁ PROCESORA

Algorytmy przydziału procesora:

pierwszy nadszedł, pierwszy obsłużony (

FCFS

first

come first served; FIFO–first in first out), bez

wywłaszczenia.
wg najkrótszego zadanie (

SJF

- shortest job first),

algorytm optymalny, dający minimalny średni

czas oczekiwania dla określonego zbioru procesów.
wg stosunku reaktywności (

HRRN

-highest

response

ratio

next)

rotacyjne

(round-robin scheduling) – dla systemów

z podziałem czasu procesora; cykliczna kolejka

procesów;

gdy rośnie t, alg. rotacyjny alg. FCFS oraz

maleje częstotliwość przełączania procesora,

wydłuża się czas oczekiwania procesu na procesor;

priorytetowe

(polityka planowania i mechanizm

planowania),

każdy proces ma przydzielony

priorytet (wg wielkości

pamięci, liczby plików,

itp.).

background image

34

PROCESY – PRZYDZIAŁ PROCESORA

FCFS – FIRST COME FIRST SERVED

przydział czasu w kolejności zgłaszania się

procesów

najprostsza implementacja (kolejka FIFO)

brak wywłaszczania

kłopotliwy w systemach z podziałem czasu,

w których ważne jest uzyskiwanie procesora

w regularnych odstępach czasu.

Zalety

:

- sprawiedliwy, niski narzut systemowy;
- nie ma groźby zagłodzenia procesów,

proces

zawsze dostanie się do CPU (po pewnym

czasie).

background image

35

PROCESY – PRZYDZIAŁ PROCESORA

FCFS – FIRST COME FIRST SERVED cd.

Wady

:

- długi średni czas oczekiwania i duża
wariancja czasu oczekiwania,
- niewydajne wykorzystanie CPU (efekt
konwoju -

procesy czekają aż wielki

proces odda procesor),
- krzywdzący dla procesów krótkich (są
wstrzymywane przez procesy długie) oraz
ograniczonych przez we/wy bowiem
faworyzuje dłuższe zadania.

background image

36

PROCESY – PRZYDZIAŁ PROCESORA

FCFS – FIRST COME FIRST SERVED cd.

Przykład:
P1 – 24 ms; P2 – 3 ms, P3 – 3 ms.
Procesy nadchodzą w kolejności: P1, P2, P3:
Diagram Gantta dla FCFS:

Czas oczekiwania dla P1= 0; P2= 24; P3 = 27
Średni czas oczekiwania: (0 + 24 + 27)/3 = 17
ms
Wariancja czasu oczekiwania: (0^2 + 24^2 +
27^2)/3 –17^2 =435 –289 = 146 ms

background image

37

PROCESY – PRZYDZIAŁ PROCESORA

FCFS – FIRST COME FIRST SERVED cd.

Przypuśćmy, że procesy nadejdą w porządku
P2, P3, P1.
Diagram Gantta dla FCFS

Czas oczekiwania dla P1 =6; P2= 0; P3 = 3
Średni czas oczekiwania: (6 + 0 + 3)/3 = 3ms
Średni czas oczekiwania znacznie lepszy.
Dlaczego?

background image

38

PROCESY – PRZYDZIAŁ PROCESORA

SJF- SHORTEST JOB FIRST cd.

[bez wywłaszczenia]

Algorytm wiąże z każdym procesem

długość jego najbliższej fazy procesora.

Procesor jest przydzielany procesowi o

najkrótszej następnej fazie procesora.
Przy równych fazach procesora mamy
FCFS.

SJF jest

optymalny

(umieszczenie

krótkiego procesu przed długim bardziej
zmniejsza czas oczekiwania krótkiego niż
zwiększa długiego).

Algorytm może być wywłaszczający -
usuwa proces, jeśli nowy proces w kolejce
procesów gotowych ma krótszą następną
fazę procesora od czasu do zakończenia
danego procesu.

background image

39

PROCESY – PRZYDZIAŁ PROCESORA

SJF- niewywłaszczający

Proces

Czas trwania fazy [ms]

P1

6

P2

8

P3

7

P4

3

Diagram Gantta dla SJF

Średni czas oczekiwania: (3 + 16 + 9 + 0)/4 = 7
ms

background image

40

PROCESY – PRZYDZIAŁ PROCESORA

SRTF- SHORTEST REMAINING TIME
FIRST

[z wywłaszczeniem]

Najpierw zadanie o najkrótszym

pozostałym

czasie fazy procesora.

Przy pojawieniu się innego procesu o
krótszym
pozostałym czasie następuje
wywłaszczenie.

background image

41

PROCESY – PRZYDZIAŁ PROCESORA

SRTF – Shortest Remaining Time First

Proces

Czas przybycia

Czas trwania

fazy

P1

0

8 ms

P2

1

4

P3

2

9

P4

3

5

Diagram Gantta dla SRTF

Średni czas oczekiwania: [(10-1) + (1-1) + (17-
2) + (5-3)]/4 = 26/4=6.5

background image

42

PROCESY – PRZYDZIAŁ PROCESORA

ZADANIE:

Proces

Czas przybycia

Czas trwania

fazy

P1

0

8 ms

P2

2

5

P3

4

1

P4

5

2

Narysować diagramy Gannta i policzyć średnie
czasy oczekiwania dla algorytmów:

a) SJF oraz
b) SRTF.

Uzasadnić wyniki; który z ww. algorytmów jest
optymalny?

background image

43

PROCESY – PRZYDZIAŁ PROCESORA

PLANOWANIE METODĄ HRRN

Stosunek reaktywności:

R = 1+ w/t

, gdzie

w

oznacza czas oczekiwania

na

procesor zaś

t

-fazę procesora

Największy stosunek reaktywności jako

następny

(ang. highest response ratio

next -HRRN);

Faworyzuje krótkie zadania, lecz po

pewnym czasie

oczekiwania dłuższy proces

uzyska CPU;

Podobnie jak SJF i SRTF również algorytm

HRRN

wymaga oszacowania dla następnej fazy

procesora;

background image

44

PROCESY – PRZYDZIAŁ PROCESORA

PLANOWANIE METODĄ HRRN cd.

Proces

Czas przybycia

Czas trwania fazy

P1

0

8

P2

1

4

P3

2

9

P4

3

5

Diagram Gantta dla HRRN (niewywłaszczający)

Średni czas oczekiwania: (0 + (8-1)+ (17-2) + (12-3))/4 =

31/4=7.75

background image

45

PROCESY – PRZYDZIAŁ PROCESORA

PLANOWANIE METODĄ HRRN cd.

Faworyzuje krótkie zadania jednak
oczekiwanie dłuższych zadań zmienia ich
współczynnik i w konsekwencji pozwala im
uzyskać dostęp do CPU;

Ma dobry czas odpowiedzi;

Nie ma groźby zagłodzenia procesów

(proces zawsze dostanie się do CPU (po

pewnym czasie);

background image

46

PROCESY – PRZYDZIAŁ PROCESORA

WYZNACZANIE NASTĘPNEJ FAZY
PROCESORA

SJF jest optymalny: daje minimalny średni

czas oczekiwania dla danego zbioru procesów;
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

a -liczba z przedziału [0,1], zwykle 0.5

Definiujemy średnią wykładniczą jako:

gdzie s(n+1) = przewidywana długość

następnej fazy.

background image

47

PROCESY – PRZYDZIAŁ PROCESORA

WYZNACZANIE NASTĘPNEJ FAZY
PROCESORA

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

a*(1-a) ≠ 0 i rozwiniemy wzór to:

Ponieważ a i (1-a) są mniejsze od 1 to starsze

składniki (przeszłość) mają coraz mniejszą

wagę.

background image

48

PROCESY – PRZYDZIAŁ PROCESORA

PLANOWANIE ROTACYJNE (round robin)

ustala się kwant czasu (10-100 ms);

kolejka procesów jest traktowana jak

cykliczna

procedura FIFO;

algorytm przegląda kolejkę i kolejno

przydziela każdemu procesowi kwant

czasu (jeśli proces się

w nim nie

zakończy – wraca do kolejki a długość

jego fazy procesora zmniejsza się o kwant

czasu);
algorytm jest wywłaszczający;
gdy jest N procesów a kwant czasu

wynosi Q,

max. czas oczekiwania może wynieść (N-

1)Q.

background image

49

PROCESY – PRZYDZIAŁ PROCESORA

PLANOWANIE ROTACYJNE cd.

Efekty

:

-

gdy Q rośnie nieograniczenie; planowanie

rotacyjne

FCFS,

- gdy Q zmierza do 0 zachodzi dzielenie

procesora – każdy proces dysponuje

procesorem o prędkości

1/N rzeczywistego,

- średni czas oczekiwania jest stosunkowo długi.

background image

50

PROCESY – PRZYDZIAŁ PROCESORA

PLANOWANIE ROTACYJNE cd.

średni czas cyklu przetwarzania z kwantem =

6

Proces

Czas trwania fazy

P1

6

P2

3

P3

1

P4

7

Diagram Gantta dla RR(6)

Średni czas cyklu przetwarzania:

(6+9+10+17)/4=42/4=10,5

background image

51

PROCESY – PRZYDZIAŁ PROCESORA

PLANOWANIE ROTACYJNE cd.

średni czas cyklu przetwarzania z kwantem

= 5

Proces

Czas trwania fazy

P1

6

P2

3

P3

1

P4

7

Diagram Gantta dla RR(5)

Średni czas cyklu przetwarzania:

(15+8+9+17)/4=49/4=12,25

background image

52

PROCESY – PRZYDZIAŁ PROCESORA

PLANOWANIE ROTACYJNE cd.

- Dobry czas odpowiedzi dla krótkich
procesów;
- Efektywny w systemach z podziałem czasu;
- Sprawiedliwe traktowanie procesów;
- Kwant powinien być nieco dłuższy od czasu

wymaganego na typową interakcję;

- Procesy ograniczone przez CPU są
faworyzowane kosztem procesów
ograniczonych przez we/wy co prowadzi do
nieefektywnego wykorzystania we/wy;

- Nie powoduje zagłodzenia procesów

background image

53

PROCESY – PRZYDZIAŁ PROCESORA

PLANOWANIE PRIORYTETOWE

szczególnym przypadkiem jest SJF

(priorytet = 1/(długości następnej fazy

procesora),

zwykle priorytet określa jednak liczba

całkowita

(np. z przedziału [0,7] – im

niższa wartość tym wyższy priorytet),

proces o niskim priorytecie może się nigdy

nie wykonać; rozwiązanie: postarzanie

procesów (zmniejszenie priorytetu o 1, np. co

10 min.),

może być wywłaszczające (ale

niekoniecznie),

określenie priorytetu:

- zewnętrznie - przez funkcję systemową,

- wewnętrznie- przez deklarację samego

procesu.

background image

54

PROCESY – PRZYDZIAŁ PROCESORA

WIELOPOZIOMOWE

PLANOWANIE

KOLEJEK

Wielopoziomowe planowanie kolejek

(mulitilevel queue scheduling ) polega na

tym, że kolejka procesów gotowych zostaje

podzielona na oddzielne (pod)kolejki.

-

procesy pierwszoplanowe (foreground) –

interakcyjne, systemowe;

-

procesy drugoplanowe (background) –

wsadowe.

Każda z kolejek ma swój własny algorytm

szeregujący np.

-

pierwszoplanowa – RR

-

drugoplanowa - FCFS

background image

55

PROCESY – PRZYDZIAŁ PROCESORA

WIELOPOZIOMOWE

PLANOWANIE

KOLEJEK

cd.

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 (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

background image

56

PROCESY – PRZYDZIAŁ PROCESORA

WIELOPOZIOMOWE

PLANOWANIE

KOLEJEK cd.

background image

57

PROCESY – PRZYDZIAŁ PROCESORA

WIELOPOZIOMOWE

PLANOWANIE

KOLEJEK

Kolejki wielopoziomowe z sprzężeniem

zwrotnym (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.

background image

58

PROCESY – PRZYDZIAŁ PROCESORA

WIELOPOZIOMOWE

PLANOWANIE

KOLEJEK

background image

59

PROCESY – PRZYDZIAŁ PROCESORA

WIELOPOZIOMOWE

PLANOWANIE

KOLEJEK

Trzy koleki:

Q

0

– kwant czasu 8 milisekund

Q

1

– kwant czasu16 milisekund

Q

2

– FCFS

Planowanie:

- Nowe zadanie wchodzi do kolejkiQ

0

obsługiwanej przez FCFS. Zadanie dostaje

8 milisekund; jeśli się nie zmieści w tym

czasie zostaje przeniesione na koniec

kolejki Q

1

.

- W kolejce Q

1

zadanie jest znów

obsługiwane przez algorytm FCFS i dostaje

dodatkowe 16 ms. Jeśli ponownie nie

zmieści się w tym czasie zostaje

wywłaszczone do kolejki Q

2

.

background image

60

PROCESY – PRZYDZIAŁ PROCESORA

WIELOPOZIOMOWE

PLANOWANIE

KOLEJEK

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

background image

61

PROCESY – PRZYDZIAŁ PROCESORA

WIELOPOZIOMOWE PLANOWANIE KOLEJEK

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 wyznaczenia kolejki, do której

trafia

proces potrzebujący obsługi.

background image

62

PROCESY – PRZYDZIAŁ PROCESORA

PLANOWANIE WIELOPROCESOROWE

Planowanie wieloprocesorowe (multiple-

processor scheduling) komplikuje się wraz ze

wzrostem liczby procesorów i ich architektury.

Trudno określić najlepszą metodę planowania.

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

background image

63

PROCESY – PRZYDZIAŁ PROCESORA

PLANOWANIE WIELOPROCESOROWE cd.

Planowanie wieloprocesorowe homogeniczne

- dzielenie obciążeń (load sharing) -

wspólna

kolejka dla wszystkich

procesorów;

- każdy procesor sam planuje swoje

działanie,

obydwa operują na tej samej kolejce

procesów

gotowych (ryzykowne -

wymaga bardzo

starannego

zaprogramowania) -

wieloprzetwarzanie symetryczne;

- jeden procesor jest nadrzędny

(master),

inne podporządkowane

(slave) -

wieloprzetwarzanie

asymetryczne.

background image

64

PROCESY – PRZYDZIAŁ PROCESORA

PLANOWANIE

W

CZASIE

RZECZYWISTYM

Rygorystyczne systemy czasu rzeczywistego -

wymóg zakończenia zadania krytycznego w

gwarantowanym czasie

- rezerwacja zasobów (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).

background image

65

PROCESY – PRZYDZIAŁ PROCESORA

PLANOWANIE

W

CZASIE

RZECZYWISTYM cd.

Opóźnienie ekspediowania procesów do

procesora musi być małe, aby proces czasu

rzeczywistego nie musiał czekać (Solaris: bez

wywłaszczeń 100 ms i z wywłaszczeniami

2ms).

- Musimy zezwolić na wywłaszczanie funkcji

systemowych:

- poprzez wstawienie w długotrwałych funkcjach

systemowych punktów wywłaszczeń,

- wywłaszczanie całego jądra, struktury danych

jądra muszą być chronione za pomocą

mechanizmów synchronizacji.

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.


Document Outline


Wyszukiwarka

Podobne podstrony:
SO W2 Procesy i wątki w systemach operacyjnych
Procesy, wątki
Temat Procesy i wątki wielozadaniowoś, Notatki z systemów
Lab 05 Proces i watki wprowadzenie
lewandowski,systemy operacyjne, Procesy i wątki
Procesy, wątki i wielozadaniowość
Procesory na sopisi, Informatyka, SO
SO Synchronizacja procesów
SO Planowanie przydziału procesora
W4 Proces wytwórczy oprogramowania
WEWNĘTRZNE PROCESY RZEŹBIĄCE ZIEMIE
Proces tworzenia oprogramowania
Proces pielęgnowania Dokumentacja procesu

więcej podobnych podstron