Preemptivní a nepreemptivní plánování
Klíčové rozdíly mezi preventivním a nepreemptivním plánováním
- V preemptivním plánování je CPU přidělováno procesům na určité časové období a nepreemptivní plánovací CPU je přidělováno procesu, dokud neskončí.
- V Preemptivním plánování se úkoly přepínají na základě priority, zatímco v nepreemptivním plánování nedochází k žádnému přepínání.
- Preemptivní algoritmus má režii přepínání procesu z připraveného stavu do běžícího stavu, zatímco Nepreemptivní plánování žádnou takovou režii přepínání nemá.
- Preemptivní plánování je flexibilní, zatímco Nepreemptivní plánování je pevné.
Co je preventivní plánování?
Preemptivní plánování je metoda plánování, kde 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ěží.
V tomto okamžiku úloha s nižší prioritou nějakou dobu trvá a obnoví se, když úloha s vyšší prioritou dokončí své provádění.
Co je to 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 specializovaný hardware (například časovač), jako je preemptivní plánování.
Nepreemptivní plánování nastane, když proces dobrovolně vstoupí do stavu čekání nebo se ukončí.
Preemptivní vs Nepreemptivní plánování: Srovnávací tabulka
Zde je přímé srovnání Preemptivní vs Nepreemptivní plánování. Hlavní rozdíly mezi Preemptivním a Nepreemptivním plánováním v OS jsou následující:
Preemptivní plánování | Nepreemptivní plánování |
---|---|
Procesoru lze zabránit, aby provedl různé procesy uprostřed provádění jakéhokoli aktuálního procesu. | Jakmile procesor zahájí své provádění, musí jej dokončit před spuštěním druhého. Nejde to uprostřed pozastavit. |
Využití procesoru je efektivnější ve srovnání s Nepreemptivním plánováním. | Využití CPU je méně efektivní ve srovnání s preemptivním plánováním. |
Doba čekání a odezvy preventivního plánování je kratší. | Čekací doba a doba odezvy u nepreemptivní metody plánování je vyšší. |
Preemptivní plánování je prioritou. Proces s nejvyšší prioritou je proces, který se v současnosti používá. | Když jakýkoli proces vstoupí do stavu běhu, stav tohoto procesu se nikdy nevymaže z plánovače, dokud nedokončí svou úlohu. |
Preemptivní plánování je flexibilní. | Nepreemptivní plánování je rigidní. |
Příklady: – Nejkratší zbývající čas jako první, Round Robin atd. | Příklady: Kdo dřív příjde ten dřív mele, Nejkratší úloha jako první, Prioritní plánování atd. |
Preemptivní plánovací algoritmus může být preemptován, což je proces, který lze naplánovat | V nepreemptivním procesu plánování nelze plánovat |
V tomto procesu je CPU přiděleno procesům na určité časové období. | V tomto procesu je CPU přiděleno procesu, dokud se neukončí nebo nepřepne do stavu čekání. |
Preemptivní algoritmus má režii přepínání procesu ze stavu připravenosti do stavu běhu a naopak. | Nepreemptivní plánování nemá takovou režii na přepnutí procesu ze spuštění do stavu připravenosti. |
Výhody Preemptivního plánování
Zde jsou výhody/výhody metody Preemptivního plánování:
- Preemptivní metoda plánování je robustnější, takže jeden proces nemůže monopolizovat CPU
- Volba spuštěné úlohy přehodnocena po každém přerušení.
- Každá událost způsobí přerušení běžících úloh
- Operační systém zajišťuje, že využití procesoru je u všech běžících procesů stejné.
- V tomto je využití CPU stejné, tj. všechny běžící procesy budou využívat CPU rovnoměrně.
- Tato metoda plánování také improvizuje průměrnou dobu odezvy.
- Preemptivní plánování je výhodné, když jej používáme pro multiprogramovací prostředí.
Výhody nepreemptivního plánování
Zde jsou klady/výhody metody nepreemptivního plánování:
- Nabízí nízkou plánovací režii
- Má tendenci nabízet vysokou propustnost
- Je to koncepčně velmi jednoduchá metoda
- Less potřebné výpočetní zdroje pro plánování
Nevýhody Preemptivního plánování
Níže jsou uvedeny nevýhody preemptivního plánování:
- Potřebujete omezené výpočetní zdroje pro plánování
- Pozastavení běžící úlohy, přepnutí kontextu a odeslání nové příchozí úlohy trvá plánovači déle.
- Proces, který má nízkou prioritu, musí čekat delší dobu, pokud některé procesy s vysokou prioritou přicházejí nepřetržitě.
Nevýhody nepreemptivního plánování
Zde jsou nevýhody/nevýhody metody Nepreemptivního plánování:
- To může vést k hladovění, zejména u těch úkolů v reálném čase
- Chyby mohou způsobit zamrznutí stroje
- To může dělat v reálném čase a prioritní plánování obtížný
- Špatná doba odezvy procesů
Příklad nepreemptivního plánování
V nepreemptivním plánování SJF, jakmile je cyklus CPU přidělen procesu, proces jej podrží, dokud nedosáhne stavu čekání nebo není ukončen.
Zvažte následujících pět procesů, z nichž každý má svůj vlastní jedinečný čas shluku a čas příchodu.
Fronta procesů | Čas prasknutí | Čas příjezdu |
---|---|---|
P1 | 6 | 2 |
P2 | 2 | 5 |
P3 | 8 | 1 |
P4 | 3 | 0 |
P5 | 4 | 4 |
Krok 0) V čase=0 dorazí P4 a spustí provádění.
Krok 1) V čase = 1 přichází proces P3. Ale P4 stále potřebuje k dokončení 2 prováděcí jednotky. Bude pokračovat v provádění.
Krok 2) V čase =2 dorazí proces P1 a přidá se do čekající fronty. P4 bude pokračovat v provádění.
Krok 3) V čase = 3 proces P4 dokončí své provádění. Porovná se doba burstu P3 a P1. Proces P1 se provede, protože jeho doba shluku je kratší ve srovnání s procesem P3.
Krok 4) V čase = 4 dorazí proces P5 a přidá se do čekající fronty. P1 bude pokračovat v provádění.
Krok 5) V čase = 5 dorazí proces P2 a přidá se do čekající fronty. P1 bude pokračovat v provádění.
Krok 6) V čase = 9 proces P1 dokončí své provádění. Porovná se doba burstu P3, P5 a P2. Proces P2 se provede, protože jeho doba burstu je nejnižší.
Krok 7) V čase=10 se P2 provádí a P3 a P5 jsou ve frontě čekajících.
Krok 8) V čase = 11 proces P2 dokončí své provádění. Porovná se doba burstu P3 a P5. Proces P5 se provede, protože jeho doba burstu je kratší.
Krok 9) V čase = 15 proces P5 dokončí své provádění.
Krok 10) V čase = 23 proces P3 dokončí své provádění.
Krok 11) Vypočítejme průměrnou dobu čekání pro výše uvedený příklad.
Wait time P4= 0-0=0 P1= 3-2=1 P2= 9-5=4 P5= 11-4=7 P3= 15-1=14 Average Waiting Time= 0+1+4+7+14/5 = 26/5 = 5.2
Příklad preventivního plánování
Zvažte to následující tři procesy v Round-robin
Fronta procesů | Čas prasknutí |
---|---|
P1 | 4 |
P2 | 3 |
P3 | 5 |
Krok 1) Provádění začíná procesem P1, který má dobu shluku 4. Zde se každý proces provádí po dobu 2 sekund. P2 a P3 jsou stále ve frontě.
Krok 2) V čase =2 se P1 přidá na konec fronty a P2 se spustí
Krok 3) V čase=4 je P2 vyřazen a přidán na konec fronty. P3 se spustí.
Krok 4) V čase=6 je P3 vyřazen a přidán na konec fronty. P1 se spustí.
Krok 5) V čase=8 má P1 dobu shluku 4. Dokončilo provádění. P2 zahájí provádění
Krok 6) P2 má dobu shluku 3. Proběhl již 2 interval. V čase=9 dokončí P2 provádění. Poté P3 zahájí provádění, dokud nebude dokončeno.
Krok 7) Vypočítejme průměrnou dobu čekání pro výše uvedený příklad.
Wait time P1= 0+ 4= 4 P2= 2+4= 6 P3= 4+3= 7