230 likes | 505 Views
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.
E N D
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
P1 P2 P3 0 24 27 30 First-Come, First-Served (FCFS) ProcesPož. č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
P2 P3 P1 0 3 6 30 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.
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.
P3 P2 P4 P1 3 9 16 24 0 Príklad pre SJF Proces Čas príchoduPož.čas procesora P1 0 6 P2 1 8 P32 7 P43 3 • Diagram • Priemerný čas čakania = (3 + 16 + 9 + 0) / 4 = 7
Príklady ExponenciálnehoSpriemerňovania • =0 • n+1 = n • Nedávna históriasa 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.
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
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ámen procesov vo fronte pripravených a časové kvantum jeq, potom každý proces dostáva 1/n-tú časť z času procesora v dávkach najviac po1q. 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
P1 P2 P3 P1 P1 P1 P1 P1 0 10 14 18 22 26 30 4 7 Príklad RR s q = 4 ProcesPož.čas procesora P1 24 P2 3 P3 3 • Diagram: • Priemerná doba čakania je 17/3 = 5.66 ms.
Plánovanie s viacerými frontami • Navrhovaný pre situácie, kedy sa procesy dajú rozdeliť na rôzne skupiny,napr.: interaktívne dá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
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úcapresunutie procesu do frontu s nižšou prioritou • Metóda pre určenie frontu pre proces, ktorý má byť obslúžený
Príklad • Tri fronty: • Q0 – RR s q = 8 ms • Q1 – RR s q = 16 ms • Q2 – FCFS • Plánovanie
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 akoprocess-contention scope (PCS) – súťaž o CPU sa koná medzi vláknami prislúchajúcimi tomu istému procesu • Jadrové vlákno používasystem-contention scope (SCS) – súťaž o CPU s SCS plánovaním sa vykonáva medzi všetkými vláknami v systéme.
Plánovanie viacprocesorového systému • Zložitejšia úloha ako pri jednoprocesorovom systéme • Homogénne procesoryvo 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
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