Preventivní vs. nepreventivní plánování: Klíčové rozdíly

Obsah:

Anonim

Co je preventivní plánování?

Preemptivní plánování je metoda plánování, kdy 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ěží.

V té době úkol s nižší prioritou nějakou dobu trvá a obnoví se, když úkol s vyšší prioritou dokončí své provádění.

V tomto kurzu operačního systému se naučíte:

  • Co je preventivní plánování?
  • Co je nepreventivní plánování?
  • Rozdíl mezi preventivním a nepreventivním plánováním v operačním systému
  • Výhody preventivního plánování
  • Výhody nepreventivního plánování
  • Nevýhody preventivního plánování
  • Nevýhody nepreventivního plánování
  • Příklad nepreventivního plánování
  • Příklad preventivního plánování

Co je 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 specializovaný hardware (například časovač), jako je preventivní plánování.

K nepreventivnímu plánování dochází, když proces dobrovolně přejde do stavu čekání nebo se ukončí.

Rozdíl mezi preventivním a nepreventivním plánováním v operačním systému

Zde jsou preventivní a nepreventivní plánování v operačním systému

Preventivní plánování Nepreventivní plánování
Procesoru lze předjímat provádění různých procesů uprostřed jakéhokoli aktuálního provádění procesu. Jakmile procesor zahájí provádění, musí jej dokončit před provedením druhého. Uprostřed to nelze pozastavit.
Využití procesoru je efektivnější ve srovnání s nepreventivním plánováním. Využití CPU je ve srovnání s preventivním plánováním méně efektivní.
Čekací doba a doba odezvy preventivního plánování je kratší. Čekací doba a doba odezvy nepreemptivní metody plánování je vyšší.
Preventivní plánování je prioritou. Proces s nejvyšší prioritou je proces, který je aktuálně využíván. Když jakýkoli proces vstoupí do stavu běhu, stav tohoto procesu se nikdy neodstraní z plánovače, dokud nedokončí svou úlohu.
Preventivní plánování je flexibilní. Nepreventivní plánování je přísné.
Příklady: - Nejkratší zbývající čas, Round Robin atd. Příklady: První, první, první, nejkratší úloha, prioritní plánování atd.
Lze předem vyloučit algoritmus preventivního plánování, který umožňuje naplánovat proces V nepreventivním procesu plánování nelze naplá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 nedojde k jeho ukončení nebo přepnutí do stavu čekání.
Preventivní algoritmus má režii přepínání procesu z připraveného stavu do provozního stavu a naopak. Nepreventivní plánování nemá takové režijní náklady na přepnutí procesu z běhu do stavu připravenosti.

Výhody preventivního plánování

Zde jsou výhody / výhody metody preventivního plánování:

  • Preventivní metoda plánování je robustnější, přístup tak, aby jeden proces nemohl monopolizovat CPU
  • Po každém přerušení je znovu zvážena možnost spuštění úlohy.
  • Každá událost způsobí přerušení spuštěných úkolů
  • OS zajišťuje, že využití CPU je u všech spuštěných procesů stejné.
  • V tomto je využití CPU stejné, tj. Všechny běžící procesy budou CPU využívat stejně.
  • Tato metoda plánování také improvizuje průměrnou dobu odezvy.
  • Preventivní plánování je výhodné, když jej používáme pro prostředí s více programování.

Výhody nepreventivního plánování

Zde jsou výhody / výhody metody nepreventivního plánování:

  • Nabízí nízké režijní náklady na plánování
  • Má tendenci nabízet vysokou propustnost
  • Je to koncepčně velmi jednoduchá metoda
  • Pro plánování je potřeba méně výpočetních zdrojů

Nevýhody preventivního plánování

Zde jsou nevýhody / nevýhody metody preventivního plánování:

  • Potřebujete pro plánování omezené výpočetní zdroje
  • Plánovač trvá déle, než pozastaví spuštěnou úlohu, přepne kontext a odešle novou příchozí úlohu.
  • Proces, který má nízkou prioritu, musí čekat delší dobu, pokud některé procesy s vysokou prioritou dorazí nepřetržitě.

Nevýhody nepreventivního plánování

Tady jsou nevýhody / nevýhoda metody Non-Preemptive Scheduling:

  • Může to vést k hladovění, zejména u těchto úkolů v reálném čase
  • Chyby mohou způsobit zamrznutí stroje
  • To může ztěžovat plánování v reálném čase a priority
  • Špatná doba odezvy procesů

Příklad nepreventivního plánování

V nepreventivním plánování SJF, jakmile je cyklus CPU přidělen procesu, proces ho drží, dokud nedosáhne stavu čekání nebo nebude ukončen.

Zvažte následujících pět procesů, z nichž každý má svůj vlastní jedinečný čas roztržení a čas příjezdu.

Procesní fronta Č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 přijde P4 a zahájí provádění.

Krok 1) V čase = 1 dorazí proces P3. K dokončení však P4 stále potřebuje 2 popravní jednotky. Bude pokračovat v provádění.

Krok 2) V čase = 2 dorazí proces P1 a je přidán 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ává se doba roztržení P3 a P1. Proces P1 je proveden, protože jeho doba roztržení je kratší ve srovnání s P3.

Krok 4) V čase = 4 dorazí proces P5 a je přidán do čekající fronty. P1 bude pokračovat v provádění.

Krok 5) V čase = 5 dorazí proces P2 a je přidán do čekající fronty. P1 bude pokračovat v provádění.

Krok 6) V čase = 9 proces P1 dokončí své provádění. Srovnává se doba roztržení P3, P5 a P2. Proces P2 je spuštěn, protože jeho doba roztržení je nejnižší.

Krok 7) V čase = 10 se provádí P2 a P3 a P5 jsou ve frontě čekání.

Krok 8) V čase = 11 dokončí proces P2 proces P2. Srovnává se doba roztržení P3 a P5. Proces P5 je spuštěn, protože jeho doba roztržení je nižší.

Krok 9) V čase = 15 dokončí proces P5 jeho provádění.

Krok 10) V čase = 23 dokončí proces P3 jeho provádění.

Krok 11) Vypočítáme průměrnou čekací dobu pro výše uvedený příklad.

Wait timeP4= 0-0=0P1= 3-2=1P2= 9-5=4P5= 11-4=7P3= 15-1=14Average Waiting Time= 0+1+4+7+14/5 = 26/5 = 5.2

Příklad preventivního plánování

Zvažte následující tři procesy v Round-robin

Procesní fronta Čas prasknutí
P1 4
P2 3
P3 5

Krok 1) Provádění začíná procesem P1, který má čas roztržení 4. Zde se každý proces provádí po dobu 2 sekund. P2 a P3 jsou stále ve frontě čekání.

Krok 2 ) V čase = 2 se na konec fronty přidá P1 a P2 se spustí

Krok 3) V čase = 4 je P2 předjímán a přidán na konci fronty. P3 se spustí.

Krok 4) V čase = 6 je P3 předjímán a přidán na konci fronty. P1 se spustí.

Krok 5) V čase = 8 má P1 čas roztržení 4. Dokončilo provedení. P2 zahájí provádění

Krok 6) P2 má čas shluku 3. Již byl proveden pro 2 intervaly. V čase = 9 dokončí P2 provádění. Poté P3 zahájí provádění, dokud se nedokončí.

Krok 7) Vypočítáme průměrnou čekací dobu pro výše uvedený příklad.

Wait timeP1= 0+ 4= 4P2= 2+4= 6P3= 4+3= 7

KLÍČOVÉ ROZDÍLY

  • V Preemptivním plánování je CPU přiděleno procesům na konkrétní časové období a neprováděcí plánování CPU je přiděleno procesu, dokud nedojde k jeho ukončení.
  • V preventivním plánování se úkoly přepínají na základě priority, zatímco v nepředpjaté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 provozního stavu, zatímco neprováděcí plánování takové přepínání nemá.
  • Preventivní plánování je flexibilní, zatímco nepreventivní plánování je rigidní.