Plánovanie procesov Plánovacie algoritmy
description
Transcript of 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
5.2©2009
Operating System Concepts
Histogram
5.3©2009
Operating System Concepts
Striedanie postupnosti činnosti CPU a I/O
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
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
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.
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
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
5.9©2009
Operating System Concepts
Predikcia nasledujúceho požadovaného času procesora
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.
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
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
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
5.14©2009
Operating System Concepts
Časové kvantum a Prepínanie kontextu
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
5.16©2009
Operating System Concepts
Plánovanie s viacerými frontami
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ý
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
5.19©2009
Operating System Concepts
Plánovanie s viacerými frontmi so spätnou väzbou
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.
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
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