Bartosz Zawadzki 201066 cz 1

background image

Prezentacja zaliczeniowa:

Przedstawienie działania

algorytmów

Prezentacja zaliczeniowa:

Przedstawienie działania

algorytmów

Wykonawca: Bartosz Zawadzki (201066)

Prowadzący: mgr inż. Karol Puchała

Wykonawca: Bartosz Zawadzki (201066)

Prowadzący: mgr inż. Karol Puchała

background image

Dane Procesów:

Dane Procesów:

Nr.

procesu

Czas

trwania

fazy

Czas

przybycia

Priorytet

P1

28

0

2

P2

21

0

3

P3

24

1

3

P4

17

1

9

P5

10

2

8

P6

24

3

6

P7

5

3

8

P8

8

4

7

P9

15

5

9

P10

2

6

1

P11

14

6

0

P12

1

6

7

P13

5

6

9

P14

13

6

6

P15

25

7

4

background image

Algorytm SJF

Algorytm SJF

 Algorytm SJF (ang. shortest-job-first), czyli "najkrótsze zadanie najpierw", opiera swe

działanie na powiązaniu procesu z długością jego najbliższej fazy. Procesor zostaje
przydzielony procesowi, który ma najkrótszą następną fazę procesora. W przypadku,
gdy dwa procesy mają następne fazy procesora równe, stosuje się algorytm FCFS.

Algorytm SJF (ang. shortest-job-first), czyli "najkrótsze zadanie najpierw", opiera swe
działanie na powiązaniu procesu z długością jego najbliższej fazy. Procesor zostaje
przydzielony procesowi, który ma najkrótszą następną fazę procesora. W przypadku,
gdy dwa procesy mają następne fazy procesora równe, stosuje się algorytm FCFS.

background image

Algorytm SJF daje minimalny średni czas dla danego
zbioru procesów. Mówimy, że algorytm SJF
jest optymalny.

Algorytm SJF daje minimalny średni czas dla danego
zbioru procesów. Mówimy, że algorytm SJF
jest optymalny.

 Dużym problemem w algorytmie SJF jest określenie długości następnego zamówienia

na przydział procesora. Przy planowaniu długoterminowym (zadań), za czynnik ten
możemy przyjąć limit czasu procesu, określony przez użytkownika, który zadanie
przedłożył. Algorytm SJF jest więc chętnie używany w planowaniu długoterminowym.
Natomiast w przypadku planowania krótkoterminowego, nie ma sposobu na określenie
długości następnej fazy procesora. Dlatego też oszacowuje się tę wartość, obliczając ją
na ogół jako średnią wykładniczą pomiarów długości poprzednich faz procesora.

Dużym problemem w algorytmie SJF jest określenie długości następnego zamówienia
na przydział procesora. Przy planowaniu długoterminowym (zadań), za czynnik ten
możemy przyjąć limit czasu procesu, określony przez użytkownika, który zadanie
przedłożył. Algorytm SJF jest więc chętnie używany w planowaniu długoterminowym.
Natomiast w przypadku planowania krótkoterminowego, nie ma sposobu na określenie
długości następnej fazy procesora. Dlatego też oszacowuje się tę wartość, obliczając ją
na ogół jako średnią wykładniczą pomiarów długości poprzednich faz procesora.

background image

Diagram Gantta dla zadanych
procesów:

Diagram Gantta dla zadanych
procesów:

P2

P1

0

P

7

P13

P8

P5

P14

P11

P9

P12

P4

P3

P6

P15

P1

0 21 23 28 33 41 51 64 78 93 108 125 149 173
198 226

background image

Średni czas oczekiwania:

Średni czas oczekiwania:

 (0+21+23+28+33+41+51+64+78+93+108+125+149+173+198) : 15=79
 Średni czas oczekiwania wynosi => 79

(0+21+23+28+33+41+51+64+78+93+108+125+149+173+198) : 15=79

Średni czas oczekiwania wynosi => 79

background image

Algorytm RR (Planowania
Rotacyjnego):

Algorytm RR (Planowania
Rotacyjnego):

 Algorytm planowania rotacyjnego (ang. round-robin - RR) jest oparty na algorytmie

FCFS, jednakże różni się od FCFS faktem, że możliwe jest wywłaszczanie. Algorytm ten
jest chętnie stosowany w systemach z podziałem czasu.

Algorytm planowania rotacyjnego (ang. round-robin - RR) jest oparty na algorytmie
FCFS, jednakże różni się od FCFS faktem, że możliwe jest wywłaszczanie. Algorytm ten
jest chętnie stosowany w systemach z podziałem czasu.

background image

Zasada działania algorytmu jest następująca. Z każdym procesem
powiązany jest kwant czasu, najczęściej 10 do 100 ms.

Zasada działania algorytmu jest następująca. Z każdym procesem
powiązany jest kwant czasu, najczęściej 10 do 100 ms.

 Procesom znajdującym się w kolejce (traktowanej jako cykliczna) procesów gotowych

do wykonania, przydzielane są odpowiednie odcinki czasu, nie dłuższe niż jeden kwant
czasu.

 Do implementacji algorytmu, podobnie jak w przypadku FCFS, używa się kolejki FIFO -

brany jest pierwszy proces z wyjścia kolejki, ustawiany jest timer na przerwanie po
upływie 1 kwantu czasu i proces jest wysyłany do procesora. Jeżeli czas trwania fazy
procesu jest krótszy od 1 kwantu czasu, proces sam zwolni procesor i rozpocznie się
obsługiwanie kolejnego procesu z kolejki. Jeżeli proces ma dłuższą fazę od 1 kwantu
czasu, to nastąpi przerwanie zegarowe systemu operacyjnego, nastąpi przełączenie
kontekstu, a proces do niedawna wykonywany, trafi na koniec kolejki procesów
gotowych do wykonania.

Procesom znajdującym się w kolejce (traktowanej jako cykliczna) procesów gotowych
do wykonania, przydzielane są odpowiednie odcinki czasu, nie dłuższe niż jeden kwant
czasu.

Do implementacji algorytmu, podobnie jak w przypadku FCFS, używa się kolejki FIFO -
brany jest pierwszy proces z wyjścia kolejki, ustawiany jest timer na przerwanie po
upływie 1 kwantu czasu i proces jest wysyłany do procesora. Jeżeli czas trwania fazy
procesu jest krótszy od 1 kwantu czasu, proces sam zwolni procesor i rozpocznie się
obsługiwanie kolejnego procesu z kolejki. Jeżeli proces ma dłuższą fazę od 1 kwantu
czasu, to nastąpi przerwanie zegarowe systemu operacyjnego, nastąpi przełączenie
kontekstu, a proces do niedawna wykonywany, trafi na koniec kolejki procesów
gotowych do wykonania.

background image

Diagram Gantta dla zadanych
procesów z uwzględnieniem kwantu
czasu = 4:

Diagram Gantta dla zadanych
procesów z uwzględnieniem kwantu
czasu = 4:

P1

P2

P3

P4

P5

P6

P7

P8

P9

P10 P11 P12 P13 P14 P15

P1

P2

P3

P4

P5

P6

P7

P8

P9

P11

P12

P13

P14

P15

P1

P2

P3

P4

P5

P6

P9

P11

P12

P14

P15

P1

P2

P3

P4

P6

P9

P11

P12

P14

P15

P1

P2

P3

P4

P6

P15

P1

P2

P3

P6

P15

P1

P15

P15

0 4

8

12 16 20 24 28 32 36 38 42 46 50

54 58

58 62 66 70 74 78 82 83 87 91 95 99 100
104 108

108

112

116

120

124 126 130

134 138 142 146 150

150

154

158 162 166 170 173 175 178

179

183

183 187 191 195

196

200 204 208 209 213

217

221 225

229

230

background image

Czasy oczekiwania:

Czasy oczekiwania:

P1: 0+58-4+108-62+150-112+183-154+204-187+221-208=197

P2: 188

P3: 189

P4: 179

P5: 116

P6: 193

P7: 54

P8: 51

P9: 158

P10: 36

P11: 161

P12: 166

P13: 53

P14: 166

P15: 197

P1: 0+58-4+108-62+150-112+183-154+204-187+221-208=197

P2: 188

P3: 189

P4: 179

P5: 116

P6: 193

P7: 54

P8: 51

P9: 158

P10: 36

P11: 161

P12: 166

P13: 53

P14: 166

P15: 197

background image

Średni czas oczekiwania:

Średni czas oczekiwania:

 (197+188+189+179+116+193+54+158+36+161+166+53+166+197) : 15=136,8(6)
 Średni czas oczekiwania wynosi => 136,87

(197+188+189+179+116+193+54+158+36+161+166+53+166+197) : 15=136,8(6)

Średni czas oczekiwania wynosi => 136,87

background image

Algorytm Priorytetowy

Algorytm Priorytetowy

 Algorytm planowania priorytetowego jest ogólnym przypadkiem algorytm SJF. Zamiast

długości następnej fazy z algorytmu SJF, procesowi przypisuje się priorytet. Procesy o
wyższym priorytecie mają pierwszeństwo w dostępie do procesora, przed procesami o
priorytecie niższym. Procesom o równych priorytetach przydziela się procesor zgodnie
z algorytmem FCFS.

Algorytm planowania priorytetowego jest ogólnym przypadkiem algorytm SJF. Zamiast
długości następnej fazy z algorytmu SJF, procesowi przypisuje się priorytet. Procesy o
wyższym priorytecie mają pierwszeństwo w dostępie do procesora, przed procesami o
priorytecie niższym. Procesom o równych priorytetach przydziela się procesor zgodnie
z algorytmem FCFS.

background image

Priorytety definiuje się wewnętrznie lub
zewnętrznie

Priorytety definiuje się wewnętrznie lub
zewnętrznie

 Wewnętrzna definicja priorytetu opiera się na własnościach procesu, np.: stosunek

średniej fazy we/wy do średniej fazy procesora, wielkość obszaru wymaganej pamięci,
liczba otwartych plików, itp. Do określenia priorytetów zewnętrznych używa się
kryteriów spoza wnętrza systemu, np.: kwota opłat za użytkowanie komputera,
znaczenie procesu dla użytkownika, itp.

Wewnętrzna definicja priorytetu opiera się na własnościach procesu, np.: stosunek
średniej fazy we/wy do średniej fazy procesora, wielkość obszaru wymaganej pamięci,
liczba otwartych plików, itp. Do określenia priorytetów zewnętrznych używa się
kryteriów spoza wnętrza systemu, np.: kwota opłat za użytkowanie komputera,
znaczenie procesu dla użytkownika, itp.

background image

Problem związany z planowaniem priorytetowym
to nieskończone blokowanie (ang. indefinite blocking),
nazywane głodzeniem (ang. starvation).

Problem związany z planowaniem priorytetowym
to nieskończone blokowanie (ang. indefinite blocking),
nazywane głodzeniem (ang. starvation).

 Problem wiąże się z odkładaniem możliwości obsługi przez procesor tych procesów,

które mają niski priorytet. W sytuacji, w której system jest bardzo obciążony, może
zdarzyć się, że proces o niskim priorytecie będzie czekał w kolejce procesów gotowych
w nieskończoność. Powoduje to duże opóźnienia wykonania procesu o niskim
priorytecie, a może doprowadzić do niewykonania tego procesu.

 Problem ten jest rozwiązywany poprzez postarzanie (ang. aging) procesów o niskich

priorytetach. Postarzanie procesów o niskim priorytecie, które długo oczekują na
obsługę procesora odbywa się co pewien okres czasu. W ten sposób, z procesu o
niskim priorytecie, tworzy się proces o wysokim priorytecie, który na pewno zostanie
obsłużony w pierwszej kolejności.

Problem wiąże się z odkładaniem możliwości obsługi przez procesor tych procesów,
które mają niski priorytet. W sytuacji, w której system jest bardzo obciążony, może
zdarzyć się, że proces o niskim priorytecie będzie czekał w kolejce procesów gotowych
w nieskończoność. Powoduje to duże opóźnienia wykonania procesu o niskim
priorytecie, a może doprowadzić do niewykonania tego procesu.

Problem ten jest rozwiązywany poprzez postarzanie (ang. aging) procesów o niskich
priorytetach. Postarzanie procesów o niskim priorytecie, które długo oczekują na
obsługę procesora odbywa się co pewien okres czasu. W ten sposób, z procesu o
niskim priorytecie, tworzy się proces o wysokim priorytecie, który na pewno zostanie
obsłużony w pierwszej kolejności.

background image

Diagram Gantta dla zadanych
procesów:

Diagram Gantta dla zadanych
procesów:

P1

P11

P1

0

P2

P3

P15

P1

4

P6

P8

P1

2

P7

P5

P13

P9

P4

0

28 42 44

65

89 114 127 151 159 174 179 189

194

209

226

background image

Średni czas oczekiwania:

Średni czas oczekiwania:

 (0+28+42+44+65+89+114+127+151+159+174+179+189+194+209) : 15=117,6
 Średni czas oczekiwania wynosi => 117,6

(0+28+42+44+65+89+114+127+151+159+174+179+189+194+209) : 15=117,6

Średni czas oczekiwania wynosi => 117,6

background image

Bibliografia:

Bibliografia:

 http://www.isep.pw.edu.pl/~slawekn/info1/lekcja5/segment4/main.htm
 http://edu.kssk.pwr.wroc.pl

http://www.isep.pw.edu.pl/~slawekn/info1/lekcja5/segment4/main.htm

http://edu.kssk.pwr.wroc.pl


Document Outline


Wyszukiwarka

Podobne podstrony:
Bartosz Zawadzki 201066 cz 2
Bartosz Zawadzki 201066
13 11 Zawadzki 201066
Zawadzki Smoleńsk cz
Początki Rusi cz 2 Bartoszewicz J
Biol kom cz 1
Systemy Baz Danych (cz 1 2)
cukry cz 2 st
wykłady NA TRD (7) 2013 F cz`
JĘCZMIEŃ ZWYCZAJNY cz 4
Sortowanie cz 2 ppt
CYWILNE I HAND CZ 2
W5 sII PCR i sekwencjonowanie cz 2
motywacja cz 1
02Kredyty cz 2
Ćwiczenia 1, cz 1
Nauki o zarzadzaniu cz 8

więcej podobnych podstron