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 

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

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

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 

oznacza czas oczekiwania 

na 

procesor zaś 

-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

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

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

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 

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 

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