Algoritmus prioritního plánování: Preemptivní, Nepreemptivní PŘÍKLAD
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č vybírá úkoly, které mají pracovat podle priority.
Procesy s vyšší prioritou by měly být prováděny jako první, zatímco úlohy se stejnými prioritami jsou prováděny na principu round-robin nebo FCFS. Priorita závisí na požadavcích na paměť, času atd.
Typy prioritního plánování
Prioritní plánování se dělí na dva hlavní typy:
Preemptivní plánování
V Preemptivním plánování jsou úkoly většinou přiřazeny s jejich prioritami. Někdy je důležité spustit úlohu s vyšší prioritou před jinou úlohou s nižší prioritou, i když úloha s nižší prioritou stále běží. Úloha s nižší prioritou se nějakou dobu drží a obnoví se, když úloha s vyšší prioritou dokončí své provádění.
Nepreemptivní plánování
V tomto typu metody plánování je CPU přiděleno konkrétnímu procesu. Proces, který udržuje CPU zaneprázdněn, uvolní CPU buď přepnutím kontextu nebo ukončením. Je to jediná metoda, kterou lze použít pro různé hardwarové platformy. To proto, že nepotřebuje speciální hardware (například časovač), jako je preemptivní plánování.
Charakteristika prioritního plánování
- Algoritmus CPU, který plánuje procesy na základě priority.
- Používalo se v Operasystémy pro provádění dávkových procesů.
- Pokud jsou dvě úlohy se stejnou prioritou PŘIPRAVENY, funguje to na a KDO DŘÍV PŘIJDE, TEN DŘÍV MELE základ.
- Při plánování priority je každému procesu přiřazeno číslo, které označuje jeho úroveň priority.
- Čím nižší číslo, tím vyšší priorita.
- V tomto typu plánovacího algoritmu, pokud přijde novější proces, který má vyšší prioritu než aktuálně běžící proces, je aktuálně běžící proces preemptován.
Příklad prioritního plánování
Zvažte následování pěti procesů P1 až P5. Každý proces má svou jedinečnou prioritu, čas shluku a čas příjezdu.
Proces | Priorita | Č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á dobu shluku 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ě.
Krok 3) V čase 3 nepřijde žádný nový proces, takže můžete pokračovat s P1. Proces P2 stále čeká ve frontě.
Krok 4) V čase 4 dokončil P1 své provádění. P2 zahájí provádění.
Krok 5) V čase = 5 nepřichází žádný nový proces, takže pokračujeme s P2.
Krok 6) V čase=6 přichází P3. P3 má vyšší prioritu (1) ve srovnání s P2 s prioritou (2). P2 je preemptován a P3 začíná své provádění.
Proces | Priorita | Čas prasknutí | Čas příjezdu |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 1 ze 3 nevyřízených | 0 |
P3 | 1 | 7 | 6 |
P4 | 3 | 4 | 11 |
P5 | 2 | 2 | 12 |
Krok 7) V čas 7, nepřichází žádný nový proces, takže pokračujeme s P3. P2 je ve frontě.
Krok 8) V čase = 8 nepřichází žádný nový proces, takže můžeme pokračovat s P3.
Krok 9) V čase = 9 nepřichází žádný nový proces, takže můžeme pokračovat s P3.
Krok 10) V časovém intervalu 10 nepřichází žádný nový proces, takže pokračujeme s P3
Krok 11) V čase=11 přichází P4 s prioritou 4. P3 má vyšší prioritu, takže pokračuje ve svém provádění.
Proces | Priorita | Čas prasknutí | Čas příjezdu |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 1 ze 3 nevyřízených | 0 |
P3 | 1 | 2 ze 7 nevyřízených | 6 |
P4 | 3 | 4 | 11 |
P5 | 2 | 2 | 12 |
Krok 12) V čase=12 přichází P5. P3 má vyšší prioritu, takže pokračuje v provádění.
Krok 13) V čase=13 dokončí P3 provádění. My máme P2, P4, P5 ve frontě připravených. P2 a P5 mají stejnou prioritu. Čas příjezdu P2 je před P5. P2 tedy zahájí provádění.
Proces | Priorita | Čas prasknutí | Čas příjezdu |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 1 ze 3 nevyřízených | 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 spustí provádění.
Krok 15) V čase =15 pokračuje P5 v provádění.
Krok 16) V čase = 16 je provádění P5 ukončeno. P4 je jediný proces, který zbývá. Spustí se provádění.
Krok 17) V čase =20 P5 dokončil provádění a nezůstal žádný proces.
Krok 18) Vypočítejme průměrnou dobu čekání pro výše uvedený příklad.
Waiting Time = čas začátku – čas příjezdu + doba čekání na další dávku
P1 = o - o = o P2 =4 - o + 7 =11 P3= 6-6=0 P4= 16-11=5 Average Waiting time = (0+11+0+5+2)/5 = 18/5= 3.6
Výhody prioritního plánování
Zde jsou výhody/klady používání 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ísající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í, všechny procesy s nízkou prioritou se ztratí.
- Pokud procesy s vysokou prioritou zabírají hodně času CPU, mohou procesy s nižší prioritou hladovět a budou odloženy na neurčito.
- Tento plánovací algoritmus může nechat některé procesy s nízkou prioritou čekat donekonečna.
- Proces bude zablokován, když bude připraven ke spuštění, ale musí čekat na CPU, protože právě běží nějaký jiný proces.
- Pokud nový proces s vyšší prioritou stále přichází ve frontě připravenosti, pak proces, který je ve stavu čekání, může muset čekat dlouhou dobu.
Shrnutí
- Prioritní plánování je metoda plánování procesů, která je založena na prioritě. V tomto algoritmu plánovač vybírá úkoly, které mají pracovat podle priority.
- V Preemptivním plánování priority jsou úkoly většinou přiřazeny s jejich prioritami.
- V metodě prioritního Nepreemptivního plánování je CPU přiděleno 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 zabírají hodně času CPU, mohou procesy s nižší prioritou hladovět a budou odloženy na neurčito.