Plánovanie procesov Plánovacie algoritmy

22
5.1 ©2009 Operating System Concepts Plánovanie procesov Plánovacie algoritmy FCFS Round Robin SJF Prioritné plánovanie Plánovanie s viacerými frontmi Plánovanie s viacerými frontmi so spätnou väzbou Plánovanie viacprocesorového systému Plánovanie systémov reálneho času

description

Plánovanie procesov Plánovacie algoritmy. FCFS Round Robin SJF Prioritné plánovanie Plánovanie s viacerými frontmi Plánovanie s viacerými frontmi so spätnou väzbou Plánovanie viacprocesorového systému Plánovanie systémov reálneho času. Histogram. - PowerPoint PPT Presentation

Transcript of Plánovanie procesov Plánovacie algoritmy

Page 1: Plánovanie procesov Plánovacie algoritmy

5.1©2009

Operating System Concepts

Plánovanie procesovPlánovacie algoritmy

FCFS

Round Robin

SJF

Prioritné plánovanie

Plánovanie s viacerými frontmi

Plánovanie s viacerými frontmi so spätnou väzbou

Plánovanie viacprocesorového systému

Plánovanie systémov reálneho času

Page 2: Plánovanie procesov Plánovacie algoritmy

5.2©2009

Operating System Concepts

Histogram

Page 3: Plánovanie procesov Plánovacie algoritmy

5.3©2009

Operating System Concepts

Striedanie postupnosti činnosti CPU a I/O

Page 4: Plánovanie procesov Plánovacie algoritmy

5.4©2009

Operating System Concepts

First-Come, First-Served (FCFS)

Proces Pož. čas procesora

P1 24

P2 3

P3 3

Predpokladajme príchod procesov v poradí: P1 , P2 , P3

Čas čakania: P1 = 0; P2 = 24; P3 = 27

Priemerný čas čakania: (0 + 24 + 27)/3 = 17

P1 P2 P3

24 27 300

Page 5: Plánovanie procesov Plánovacie algoritmy

5.5©2009

Operating System Concepts

FCFS

Predpokladajme príchod procesov v poradí:

P2 , P3 , P1

Diagram:

Čas čakania pre: P1 = 6; P2 = 0; P3 = 3

Priemerný čas čakania: (6 + 0 + 3)/3 = 3

Oveľa lepší ako predchádzajúci prípad.

P1P3P2

63 300

Page 6: Plánovanie procesov Plánovacie algoritmy

5.6©2009

Operating System Concepts

Shortest-Job-First (SJF) plánovanie

Poradie spracovania procesov sa určuje podľa požadovanej doby obsluhy procesu. Procesor sa pridelí procesu, ktorý požaduje najkratšiu dobu na svoje dokončenie.

SJF je optimálny v tom, že dáva najlepšie výsledky v priemernej dobe čakania pre danú množinu procesov.

Nedostatkom je potreba poznať vopred dĺžku požadovanej doby obsluhy.

Page 7: Plánovanie procesov Plánovacie algoritmy

5.7©2009

Operating System Concepts

Príklad pre SJF

Proces Čas príchodu Pož.čas procesora

P1 0 6

P2 1 8

P3 2 7

P4 3 3

Diagram

Priemerný čas čakania = (3 + 16 + 9 + 0) / 4 = 7

P4P3P1

3 160 9

P2

24

Page 8: Plánovanie procesov Plánovacie algoritmy

5.8©2009

Operating System Concepts

Určenie dĺžky ďalšej požiadavky procesu na čas procesora

:Definujme 4.

10 , 3.

proces inasledujúc pre hodnota ápredikovan 2.

procesora čas na požiadavky j dlžka aktuálna 1.

1

nn tent

.1 1 nnn t

Page 9: Plánovanie procesov Plánovacie algoritmy

5.9©2009

Operating System Concepts

Predikcia nasledujúceho požadovaného času procesora

Page 10: Plánovanie procesov Plánovacie algoritmy

5.10©2009

Operating System Concepts

Príklady Exponenciálneho Spriemerňovania

=0

n+1 = n

Nedávna história sa neberie do úvahy.

=1

n+1 = tn

Iba posledný skutočný požadovaný čas CPU sa počíta.

Ak rozšírime formulu, dostaneme:

n+1 = tn+(1 - ) tn -1 + … +(1 - )j tn -j + …

+(1 - )n +1 0

Obe and (1 - ) sú menšie alebo rovné 1.

Page 11: Plánovanie procesov Plánovacie algoritmy

5.11©2009

Operating System Concepts

Prioritné plánovanie

Každý proces má pridelenú (integer) prioritu.

Procesor je pridelený procesu s najvyššou prioritou

preemptívne

nepreemptívne

Problém Starvacia – nízka priorita procesu, možnosť, že proces sa nikdy nevykoná

Riešenie postupne zvyšovanie priority procesu

Page 12: Plánovanie procesov Plánovacie algoritmy

5.12©2009

Operating System Concepts

Round Robin (RR)

Plánovač prideľuje postupne každému procesu jedno časové kvantum, zvyčajne 10-100 milisekúnd.

Ak v systéme máme n procesov vo fronte pripravených a časové kvantum je q, potom každý proces dostáva 1/n-tú časť z času procesora v dávkach najviac po 1q. Každý proces čaká nie viac ako (n-1)xq časových kvánt, kým príde znovu na rad.

Implementácia

q large FIFO

q small q musí byť nastavené s ohľadom na prepínanie kontextu

Page 13: Plánovanie procesov Plánovacie algoritmy

5.13©2009

Operating System Concepts

Príklad RR s q = 4

Proces Pož.čas procesora

P1 24

P2 3

P3 3

Diagram:

Priemerná doba čakania je 17/3 = 5.66 ms.

P1 P2 P3 P1 P1 P1 P1 P1

0 4 7 10 14 18 22 26 30

Page 14: Plánovanie procesov Plánovacie algoritmy

5.14©2009

Operating System Concepts

Časové kvantum a Prepínanie kontextu

Page 15: Plánovanie procesov Plánovacie algoritmy

5.15©2009

Operating System Concepts

Plánovanie s viacerými frontami

Navrhovaný pre situácie, kedy sa procesy dajú rozdeliť na rôzne skupiny,napr.:

interaktívnedávkové

Každý front má svoj vlastný plánovací algoritmus

foreground – RR

background – FCFS

Plánovanie sa musí vykonávať aj medzi frontami

Procesy sú pevne spojené s jedným frontom.

Front procesov na popredí môže dostať 80% času procesora -RR

Front procesov na pozadí 20% -FCFS

Page 16: Plánovanie procesov Plánovacie algoritmy

5.16©2009

Operating System Concepts

Plánovanie s viacerými frontami

Page 17: Plánovanie procesov Plánovacie algoritmy

5.17©2009

Operating System Concepts

Plánovanie s viacerými frontami so spätnou väzbou

Proces sa môže pohybovať medzi frontami.

Plánovač používajúci fronty so spätnou väzbou je definovaný pomocou týchto parametrov:

Počet frontov

Plánovací algoritmus pre každý front

Metóda určujúca, kedy sa proces presunie do frontu s vyššou prioritou

Metóda určujúca presunutie procesu do frontu s nižšou prioritou

Metóda pre určenie frontu pre proces, ktorý má byť obslúžený

Page 18: Plánovanie procesov Plánovacie algoritmy

5.18©2009

Operating System Concepts

Príklad

Tri fronty:

Q0 – RR s q = 8 ms

Q1 – RR s q = 16 ms

Q2 – FCFS

Plánovanie

Page 19: Plánovanie procesov Plánovacie algoritmy

5.19©2009

Operating System Concepts

Plánovanie s viacerými frontmi so spätnou väzbou

Page 20: Plánovanie procesov Plánovacie algoritmy

5.20©2009

Operating System Concepts

Plánovanie vlákien

Rozdiel medzi používateľskými vláknami a vláknami jadra spočíva aj v tom ako sú plánované

Many-to-one a many-to-many modely, knižnica vlákien plánuje používateľskú úroveň vlákien.

Známy ako process-contention scope (PCS) – súťaž o CPU sa koná medzi vláknami prislúchajúcimi tomu istému procesu

Jadrové vlákno používa system-contention scope (SCS) – súťaž o CPU s SCS plánovaním sa vykonáva medzi všetkými vláknami v systéme.

Page 21: Plánovanie procesov Plánovacie algoritmy

5.21©2009

Operating System Concepts

Plánovanie viacprocesorového systému

Zložitejšia úloha ako pri jednoprocesorovom systéme

Homogénne procesory vo viacprocesorovom systéme

Asymmetrický multiprocessing – iba jeden procesor pracuje so systémovými dátami

Symetrický multiprocessing (SMP) – zvyčajne sa udržuje jeden front pripravených procesov, stratégia zdieľania zaťaženia – load sharing

Page 22: Plánovanie procesov Plánovacie algoritmy

5.22©2009

Operating System Concepts

Plánovanie systémov reálneho času

Systémy s pevnými termínmi ukončenia – hard - real time

Systémy s variabilnými termínmi ukončenia – soft – real time

Implementácia funkcií pre reálny čas vyžaduje starostlivý návrh plánovača a adekvátne vlastnosti operačného systému.

Systém musí používať:

- prioritné plánovanie

- čas reakcie dispečera musí byť krátky