Čo je prioritné plánovanie?
Prioritné plánovanie je metóda plánovania procesov, ktorá je založená na priorite. V tomto algoritme plánovač vyberá úlohy, ktoré majú pracovať podľa priority.
Najskôr by sa mali vykonať procesy s vyššou prioritou, zatiaľ čo úlohy s rovnakými prioritami sa vykonávajú zásadne alebo podľa princípov FCFS. Priorita závisí od požiadaviek na pamäť, čas, atď.
V tejto príručke k operačnému systému sa dozviete:
- Čo je prioritné plánovanie?
- Typy prioritného plánovania
- Charakteristika prioritného plánovania
- Príklad prioritného plánovania
- Výhody prioritného plánovania
- Nevýhody prioritného plánovania
Typy prioritného plánovania
Prioritné plánovanie je rozdelené do dvoch hlavných typov:
Preventívne plánovanie
V preventívnom plánovaní sú úlohy väčšinou priradené k svojim prioritám. Niekedy je dôležité spustiť úlohu s vyššou prioritou pred ďalšou úlohou s nižšou prioritou, aj keď je úloha s nižšou prioritou stále spustená. Úloha s nižšou prioritou nejaký čas trvá a obnoví sa, keď úloha s vyššou prioritou dokončí svoje vykonávanie.
Nepreventívne plánovanie
V tomto type plánovacej metódy bola CPU pridelená konkrétnemu procesu. Proces, ktorý udržuje CPU v činnosti, uvoľní CPU buď prepnutím kontextu, alebo ukončením. Je to jediná metóda, ktorú je možné použiť pre rôzne hardvérové platformy. Je to preto, lebo nepotrebuje špeciálny hardvér (napríklad časovač), ako je napríklad preventívne plánovanie.
Charakteristika prioritného plánovania
- Algoritmus CPU, ktorý plánuje procesy na základe priority.
- Používa sa v operačných systémoch na vykonávanie dávkových procesov.
- Ak sú dve úlohy s rovnakou prioritou PRIPRAVENÉ, funguje to na PRVOM PRÍDE, PRVOM SLUŽBE.
- V prioritnom plánovaní je každému procesu pridelené číslo, ktoré označuje jeho úroveň priority.
- Čím nižšie číslo, tým vyššia je priorita.
- V prípade tohto typu plánovacieho algoritmu, ak dorazí novší proces, ktorý má vyššiu prioritu ako aktuálne spustený proces, je predbiehaný momentálne spustený proces.
Príklad prioritného plánovania
Zvážte nasledujúcich päť procesov P1 až P5. Každý proces má svoju jedinečnú prioritu, čas roztrhnutia a čas príchodu.
Proces | Priorita | Čas prasknutia | Čas príchodu |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 3 | 0 |
P3 | 1 | 7 | 6 |
P4 | 3 | 4 | 11 |
P5 | 2 | 2 | 12 |
Krok 0) V čase = 0 dorazia procesy P1 a P2. P1 má vyššiu prioritu ako P2. Vykonanie začína procesom P1, ktorý má čas roztrhnutia 4.
Krok 1) V čase = 1 neprichádza žiadny nový proces. Vykonávanie pokračuje s P1.
Krok 2) V čase 2 nepríde nový proces, takže môžete pokračovať s P1. P2 je v čakajúcom rade.
Krok 3) V čase 3 neprichádza žiadny nový proces, takže môžete pokračovať s P1. Proces P2 je stále v čakacej rade.
Krok 4) V čase 4 P1 dokončil svoje vykonávanie. P2 začne vykonávanie.
Krok 5) V čase = 5 neprichádza žiadny nový proces, takže pokračujeme P2.
Krok 6) V čase = 6 dorazí P3. P3 má vyššiu prioritu (1) v porovnaní s P2 s prioritou (2). P2 je preempted a P3 začína jeho vykonávanie.
Proces | Priorita | Čas prasknutia | Čas príchodu |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 1 z 3 čaká na spracovanie | 0 |
P3 | 1 | 7 | 6 |
P4 | 3 | 4 | 11 |
P5 | 2 | 2 | 12 |
Krok 7) V čase 7 neprichádza žiadny nový proces, takže pokračujeme s P3. P2 je v čakajúcom rade.
Krok 8) V čase = 8 neprichádza žiadny nový proces, takže môžeme pokračovať s P3.
Krok 9) V čase = 9 neprichádza žiadny nový proces, takže môžeme pokračovať v P3.
Krok 10) V časovom intervale 10 neprichádza žiadny nový proces, takže pokračujeme s P3
Krok 11) V čase = 11 dorazí P4 s prioritou 4. P3 má vyššiu prioritu, takže pokračuje vo svojom vykonávaní.
Proces | Priorita | Čas prasknutia | Čas príchodu |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 1 z 3 čaká na spracovanie | 0 |
P3 | 1 | 2 zo 7 nespracovaných | 6 |
P4 | 3 | 4 | 11 |
P5 | 2 | 2 | 12 |
Krok 12) V čase = 12 prichádza P5. P3 má vyššiu prioritu, takže pokračuje vo vykonávaní.
Krok 13) V čase = 13 P3 dokončí vykonávanie. Máme pripravené fronty P2, P4, P5. P2 a P5 majú rovnakú prioritu. Čas príchodu P2 je pred P5. P2 teda spustí vykonávanie.
Proces | Priorita | Čas prasknutia | Čas príchodu |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 1 z 3 čaká na spracovanie | 0 |
P3 | 1 | 7 | 6 |
P4 | 3 | 4 | 11 |
P5 | 2 | 2 | 12 |
Krok 14) V čase = 14 proces P2 dokončil svoje vykonávanie. P4 a P5 sú v stave čakania. P5 má najvyššiu prioritu a začína vykonávanie.
Krok 15) V čase = 15 pokračuje P5 vo vykonávaní.
Krok 16) V čase = 16 je P5 dokončený so svojím vykonávaním. P4 je jediný zostávajúci proces. Začína sa to popravovať.
Krok 17) V čase = 20 dokončil program P5 vykonávanie a nezostal žiadny proces.
Krok 18) Vypočítajme priemernú dobu čakania pre vyššie uvedený príklad.
Čakacia doba = čas začiatku - čas príchodu + doba čakania na ďalší výbuch
P1 = o - o = oP2 =4 - o + 7 =11P3= 6-6=0P4= 16-11=5Average Waiting time = (0+11+0+5+2)/5 = 18/5= 3.6
Výhody prioritného plánovania
Tu sú výhody / výhody použitia metódy prioritného plánovania:
- Ľahko použiteľná metóda plánovania
- Procesy sú vykonávané na základe priority, takže vysoká priorita nemusí dlho čakať, čo šetrí čas
- Táto metóda poskytuje dobrý mechanizmus, v ktorom je možné presne definovať relatívnu dôležitosť každého procesu.
- Vhodné pre aplikácie s kolísavými požiadavkami na čas a zdroje.
Nevýhody prioritného plánovania
Tu sú nevýhody / nevýhody prioritného plánovania
- Ak systém nakoniec spadne, stratia sa všetky procesy s nízkou prioritou.
- Ak procesy s vysokou prioritou zaberú veľa času CPU, potom môžu procesy s nízkou prioritou hladovať a budú odložené na neurčitý čas.
- Tento plánovací algoritmus môže nechať niektoré procesy s nízkou prioritou čakať neurčito.
- Proces bude blokovaný, keď je pripravený na spustenie, ale musí čakať na procesor, pretože v súčasnosti beží nejaký iný proces.
- Ak nový proces s vyššou prioritou stále prichádza do frontu pripravenosti, potom bude možno potrebné čakať na proces, ktorý je v stave čakania, dlho.
Zhrnutie:
- Prioritné plánovanie je metóda plánovania procesov, ktorá je založená na prioritách. V tomto algoritme plánovač vyberá úlohy, ktoré majú pracovať podľa priority.
- V prioritnom preventívnom plánovaní sú úlohy väčšinou priradené k svojim prioritám.
- V metóde prioritného nepreventívneho plánovania bolo CPU pridelené konkrétnemu procesu.
- Procesy sú vykonávané na základe priority, takže vysoká priorita nemusí dlho čakať, čo šetrí čas
- Ak procesy s vysokou prioritou zaberú veľa času CPU, potom môžu procesy s nízkou prioritou hladovať a budú odložené na neurčitý čas.