Co je prioritní plánování?
Prioritní plánování je metoda plánování procesů, která je založena na prioritě. V tomto algoritmu plánovač vybere úkoly, které mají fungovat podle priority.
Procesy s vyšší prioritou by měly být provedeny jako první, zatímco úlohy se stejnými prioritami jsou prováděny na principu opakování nebo FCFS. Priorita závisí na požadavcích na paměť, časových požadavcích atd.
V tomto kurzu operačního systému se naučíte:
- Co je prioritní plánování?
- Typy prioritního plánování
- Charakteristika prioritního plánování
- Příklad prioritního plánování
- Výhody prioritního plánování
- Nevýhody prioritního plánování
Typy prioritního plánování
Prioritní plánování rozdělené do dvou hlavních typů:
Preventivní plánování
V preventivním plánování jsou úkoly většinou přiřazeny s jejich prioritami. Někdy je důležité spustit úkol s vyšší prioritou před jiným úkolem s nižší prioritou, i když úkol s nižší prioritou stále běží. Úkol s nižší prioritou nějakou dobu trvá a obnoví se, když úkol s vyšší prioritou dokončí své provádění.
Nepreventivní plánování
V tomto typu plánovací metody byla CPU přidělena konkrétnímu procesu. Proces, který udržuje CPU v provozu, uvolní CPU buď přepnutím kontextu, nebo ukončením. Je to jediná metoda, kterou lze použít pro různé hardwarové platformy. Je to proto, že nepotřebuje speciální hardware (například časovač), jako je preventivní plánování.
Charakteristika prioritního plánování
- Algoritmus CPU, který naplánuje procesy na základě priority.
- Používá se v operačních systémech pro provádění dávkových procesů.
- Pokud jsou dvě úlohy se stejnou prioritou PŘIPRAVENY, funguje to na PRVNÍM PŘÍJEZDU, PRVNÍM SLUŽBĚ.
- V prioritním plánování je každému procesu přiřazeno číslo, které označuje jeho úroveň priority.
- Čím nižší číslo, tím vyšší je priorita.
- V tomto typu plánovacího algoritmu, pokud přijde novější proces, který má vyšší prioritu než aktuálně spuštěný proces, je aktuálně spuštěný proces upřednostňován.
Příklad prioritního plánování
Zvažte následujících pět procesů P1 až P5. Každý proces má svou jedinečnou prioritu, čas roztržení a čas příjezdu.
Proces | Přednost | Čas prasknutí | Čas příjezdu |
---|---|---|---|
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 dorazí proces P1 a P2. P1 má vyšší prioritu než P2. Provádění začíná procesem P1, který má čas roztržení 4.
Krok 1) V čase = 1 nepřijde žádný nový proces. Provádění pokračuje s P1.
Krok 2) V čase 2 nepřijde žádný nový proces, takže můžete pokračovat s P1. P2 je ve frontě čekání.
Krok 3) V čase 3 nepřijde žádný nový proces, takže můžete pokračovat s P1. Proces P2 stále ve frontě čekání.
Krok 4) V čase 4 P1 dokončil své provádění. P2 zahájí provádění.
Krok 5) V čase = 5 nepřijde žádný nový proces, takže pokračujeme P2.
Krok 6) V čase = 6 dorazí P3. P3 má vyšší prioritu (1) ve srovnání s P2 s prioritou (2). P2 je preempted a P3 začíná jeho provádění.
Proces | Přednost | Čas prasknutí | Čas příjezdu |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 1 ze 3 čeká na vyřízení | 0 |
P3 | 1 | 7 | 6 |
P4 | 3 | 4 | 11 |
P5 | 2 | 2 | 12 |
Krok 7) V čase 7 nepřichází žádný nový proces, takže pokračujeme s P3. P2 je ve frontě čekání.
Krok 8) V čase = 8 nepřijde žádný nový proces, takže můžeme pokračovat s P3.
Krok 9) V čase = 9 nepřijde žádný nový proces, abychom mohli pokračovat s P3.
Krok 10) V časovém intervalu 10 nepřichází žádný nový proces, takže pokračujeme P3
Krok 11) V čase = 11 dorazí P4 s prioritou 4. P3 má vyšší prioritu, takže pokračuje ve svém provádění.
Proces | Přednost | Čas prasknutí | Čas příjezdu |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 1 ze 3 čeká na vyřízení | 0 |
P3 | 1 | 2 ze 7 čekajících na vyřízení | 6 |
P4 | 3 | 4 | 11 |
P5 | 2 | 2 | 12 |
Krok 12) V čase = 12 dorazí P5. P3 má vyšší prioritu, takže pokračuje v provádění.
Krok 13) V čase = 13 dokončí P3 provedení. Máme připravené fronty P2, P4, P5. P2 a P5 mají stejnou prioritu. Čas příjezdu P2 je před P5. P2 tedy zahájí provádění.
Proces | Přednost | Čas prasknutí | Čas příjezdu |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 1 ze 3 čeká na vyřízení | 0 |
P3 | 1 | 7 | 6 |
P4 | 3 | 4 | 11 |
P5 | 2 | 2 | 12 |
Krok 14) V čase = 14 proces P2 dokončil své provádění. P4 a P5 jsou ve stavu čekání. P5 má nejvyšší prioritu a zahájí provádění.
Krok 15) V čase = 15 P5 pokračuje v provádění.
Krok 16) V čase = 16 je P5 dokončen se svým provedením. P4 je jediný zbývající proces. Zahájí provádění.
Krok 17) V čase = 20 dokončil P5 provádění a nezůstal žádný proces.
Krok 18) Vypočítáme průměrnou čekací dobu pro výše uvedený příklad.
Čekací doba = čas zahájení - čas příjezdu + doba čekání na další dávku
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ánování
Zde jsou výhody / výhody použití metody prioritního plánování:
- Snadno použitelná metoda plánování
- Procesy jsou prováděny na základě priority, takže vysoká priorita nemusí dlouho čekat, což šetří čas
- Tato metoda poskytuje dobrý mechanismus, kde lze přesně definovat relativní důležitost každého procesu.
- Vhodné pro aplikace s kolísavými požadavky na čas a zdroje.
Nevýhody prioritního plánování
Zde jsou nevýhody / nevýhody prioritního plánování
- Pokud se systém nakonec zhroutí, ztratí se všechny procesy s nízkou prioritou.
- Pokud procesy s vysokou prioritou vyžadují spoustu času CPU, pak procesy s nižší prioritou mohou hladovět a budou odloženy na neurčitou dobu.
- Tento plánovací algoritmus může nechat některé procesy s nízkou prioritou čekat neomezeně dlouho.
- Proces bude blokován, když je připraven ke spuštění, ale musí čekat na CPU, protože aktuálně běží nějaký jiný proces.
- Pokud nový proces s vyšší prioritou stále přichází do připravené fronty, bude pravděpodobně nutné čekat na proces, který je ve stavu čekání, dlouhou dobu.
Souhrn:
- Prioritní plánování je metoda plánování procesů, která je založena na prioritě. V tomto algoritmu plánovač vybere úkoly, které mají fungovat podle priority.
- V prioritním preventivním plánování jsou úkoly většinou přiřazeny s jejich prioritami.
- V metodě prioritního nepreventivního plánování byla CPU přidělena konkrétnímu procesu.
- Procesy jsou prováděny na základě priority, takže vysoká priorita nemusí dlouho čekat, což šetří čas
- Pokud procesy s vysokou prioritou vyžadují spoustu času CPU, pak procesy s nižší prioritou mohou hladovět a budou odloženy na neurčitou dobu.