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
Striedanie postupnosti činnosti CPU a I/O
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 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. P1 P3 P2 6 3 30
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.
Príklad pre SJF Proces Čas príchodu Pož.čas procesora P1 0 6 P2 1 8 Diagram Priemerný čas čakania = (3 + 16 + 9 + 0) / 4 = 7 P4 P3 P1 3 16 9 P2 24
Určenie dĺžky ďalšej požiadavky procesu na čas procesora
Predikcia nasledujúceho požadovaného času procesora
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.
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á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
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 4 7 10 14 18 22 26 30
Časové kvantum a Prepínanie kontextu
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
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ý
Príklad Tri fronty: Q0 – RR s q = 8 ms Q1 – RR s q = 16 ms Q2 – FCFS Plánovanie
Plánovanie s viacerými frontmi so spätnou väzbou
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.
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
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