algorytmy na lab

background image

Robert Romanowski AiR A-1

Algorytmy przydzielania

procesora według strategii

uwzględniającej odwrotność

reszty kwantu,

background image

Cykl faz procesora i WE/WY

Procesy naprzemiennie przechodzą między fazą procesora

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

background image

Algorytm FCFS:

(first-come, first-served -„pierwszy zgłoszony – pierwszy

obsłużony”)

Najprostszy algorytm planowania przydzia!u procesora

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

Przykład:

Proces:

Czas trwania:

P1

24

P2

3

P3

3

-Kolejność nadejścia procesów: P1, P2, P3

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

średni czas oczekiwania: tś = (0 + 24 + 27)/3 = 17

-Kolejność nadejścia procesów: P2, P3, P1

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

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

P1

P2

P3

P2

P3

P1

background image

Algorytm SJF:

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

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

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

wsadowych), trudniejszy w planowaniu krótkoterminowym – brak

sposobu na poznanie długości następnej fazy procesora (można jedynie

zgadywać).

• 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:

background image

Przykłady:

Proces

Czas przybycia

Czas trwania fazy

P1

0

7

P2

2

4

P3

4

1

P4

5

4

Niewywłaszczający algorytm SJF:

średni czas oczekiwania: tś = (0 + 6 + 3 + 7)/4 = 4

Wywłaszczający algorytm SJF:

średni czas oczekiwania: tś = (9 + 1 + 0 + 2)/4 = 3

P1

P2

P3

P4

0

7 8

12

16

P1

P2 P3 P2

P4

P1

0

2

4

5

7

11

16

background image

Planowanie priorytetowe

• Procesor jest przydzielany procesowi o najwyższym priorytecie.
• 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).

• 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

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 cykliczną 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ących
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.

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!

background image

Przykład użycia algorytmu

rotacyjnego

kwant czasu: q = 4 ms.

Proces

Czas trwania fazy

P1

24

P2

3

P3

3

średni czas oczekiwania: tś = (6 + 4 + 7)/3 = 5.66 ms

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

P1

P2 P3

P1

P1

P1

P1

P1

0

4

7

10

14

18

22

26

30

background image

• Odwrotność reszty kwantu. Jeśli proces

zużył ostatnim razem cały swój kwant,
umieszcza się go na końcu listy. Jeśli
zużył tylko połowę (z powodu
oczekiwania na wejście/wyjście),
umieszcza się go w środku listy. Metoda
jest "bezstronna" i daje dobre rezultaty
w przypadku zleceń intensywnie
wykorzystujących, wejście/wyjście.

background image

Literatura:
Podstawy Systemow Operacyjnych – Abraham Silberschatz


Document Outline


Wyszukiwarka

Podobne podstrony:
aksp pyt na lab 3
zadanie na lab ze sod 05 GGDQ2AZJRTX3PVRWHKXLA3LS7MJ7FRER5NSGPEA
metrologia opracowane pytania na lab
do nauki na lab 2
Algorytm na participe passe
sciaga na lab.ps, STUDIA, SEMESTR II, Materiały Metalowe, mm
Zagadnienia na LAB (z)
03 ScilabControl, 2 ROK, 3ci SEMESTR, Modele ukladow dynamicznych, materialy na lab i cw
Wyklad 8 - Algorytmy Na Grafach, Iteracja ograniczona - pętla DLA
O co pytali na LAB
asd-algorytmy na poprawke, pjwstk PJLinka.pl, materialy pliki
swb wejsciowka na lab 2

więcej podobnych podstron