Čo je preventívne plánovanie?
Preventívne plánovanie je metóda plánovania, pri ktorej sú úlohy väčšinou prideľované s prioritami. 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á.
V tom čase úloha s nižšou prioritou nejaký čas trvá a obnoví sa, keď úloha s vyššou prioritou dokončí svoje vykonávanie.
V tejto príručke k operačnému systému sa dozviete:
- Čo je preventívne plánovanie?
- Čo je nepreventívne plánovanie?
- Rozdiel medzi preventívnym a nepre preventívnym plánovaním v OS
- Výhody preventívneho plánovania
- Výhody nepreventívneho plánovania
- Nevýhody preventívneho plánovania
- Nevýhody nepreventívneho plánovania
- Príklad nepreventívneho plánovania
- Príklad preventívneho plánovania
Čo je 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 špecializovaný hardvér (napríklad časovač), ako je napríklad preventívne plánovanie.
K nepreventívnemu plánovaniu dochádza, keď proces dobrovoľne vstúpi do stavu čakania alebo sa ukončí.
Rozdiel medzi preventívnym a nepre preventívnym plánovaním v OS
Tu uvádzame preventívne a nepre preventívne plánovanie v operačnom systéme
Preventívne plánovanie | Nepreventívne plánovanie |
U procesora je možné predpokladať, že bude vykonávať rôzne procesy uprostred aktuálneho vykonávania procesu. | Hneď ako procesor zaháji vykonávanie, musí ho dokončiť pred vykonaním druhého. Uprostred sa to nedá pozastaviť. |
Využitie procesora je efektívnejšie v porovnaní s nepreventívnym plánovaním. | Využitie procesora je v porovnaní s preventívnym plánovaním menej efektívne. |
Čakanie a doba odozvy na preventívne plánovanie sú kratšie. | Čakacia doba a doba odozvy nepreventívnej metódy plánovania sú vyššie. |
Preventívne plánovanie je prioritou. Proces s najvyššou prioritou je proces, ktorý sa v súčasnosti využíva. | Keď ktorýkoľvek proces prejde do stavu spustenia, stav tohto procesu sa z plánovača nikdy neodstráni, kým nedokončí svoju úlohu. |
Preventívne plánovanie je flexibilné. | Nepreventívne plánovanie je prísne. |
Príklady: - Najkratší zostávajúci čas, každý s každým, atď. | Príklady: kto prv príde, ten prvý slúži, najkratšia práca ako prvá, prioritné plánovanie atď. |
Je možné predísť preventívnemu algoritmu plánovania, ktorý znamená, že proces je možné naplánovať | V nepreventívnom procese plánovania nie je možné naplánovať |
V tomto procese je CPU pridelená procesom na konkrétne časové obdobie. | V tomto procese je CPU pridelená procesu, kým sa neukončí alebo neprepne do stavu čakania. |
Preventívny algoritmus má réžiu prepínania procesu z pripraveného stavu do prevádzkového stavu a naopak. | Nepreventívne plánovanie nemá takú réžiu pri prepínaní procesu z chodu do pripraveného stavu. |
Výhody preventívneho plánovania
Tu sú výhody a výhody metódy preventívneho plánovania:
- Metóda preventívneho plánovania je robustnejšia, takže jeden proces nemôže monopolizovať CPU
- Po každom prerušení sa výber spustenej úlohy prehodnotí.
- Každá udalosť spôsobí prerušenie bežiacich úloh
- OS zaisťuje, že využitie procesora je rovnaké pre všetky spustené procesy.
- V tomto je využitie CPU rovnaké, tj. Všetky spustené procesy budú využívať procesor rovnako.
- Táto metóda plánovania tiež improvizuje priemerný čas odozvy.
- Preventívne plánovanie je výhodné, keď ho používame pre prostredie viacerých programov.
Výhody nepreventívneho plánovania
Tu sú výhody a výhody metódy nepreventívneho plánovania:
- Ponúka nízke režijné náklady na plánovanie
- Má tendenciu ponúkať vysokú priepustnosť
- Je to koncepčne veľmi jednoduchá metóda
- Na plánovanie je potrebných menej výpočtových zdrojov
Nevýhody preventívneho plánovania
Tu sú nevýhody / nevýhody metódy preventívneho plánovania:
- Na plánovanie potrebujete obmedzené výpočtové zdroje
- Plánovaču trvá dlhšie, kým pozastaví spustenú úlohu, prepne kontext a odošle novú prichádzajúcu úlohu.
- Proces, ktorý má nízku prioritu, musí čakať dlhší čas, ak niektoré procesy s vysokou prioritou prichádzajú nepretržite.
Nevýhody nepreventívneho plánovania
Tu sú nevýhody / nevýhody metódy nepreventívneho plánovania:
- Môže to viesť k hladu, najmä pri úlohách v reálnom čase
- Chyby môžu spôsobiť zamrznutie stroja
- Môže to sťažiť plánovanie v reálnom čase a priority
- Zlá doba odozvy procesov
Príklad nepreventívneho plánovania
V nepreventívnom plánovaní SJF, akonáhle je cyklus CPU pridelený procesu, proces ho drží, kým nedosiahne stav čakania alebo sa neukončí.
Zvážte nasledujúcich päť procesov, z ktorých každý má svoj vlastný jedinečný čas roztrhnutia a čas príchodu.
Procesný front | Čas prasknutia | Čas príchodu |
P1 | 6 | 2 |
P2 | 2 | 5 |
P3 | 8 | 1 |
P4 | 3 | 0 |
P5 | 4 | 4 |
Krok 0) V čase = 0 dorazí P4 a začne vykonávanie.
Krok 1) V čase = 1 dorazí proces P3. Na dokončenie však P4 stále potrebuje 2 exekučné jednotky. Bude pokračovať v exekúcii.
Krok 2) V čase = 2 prichádza proces P1 a je pridaný do čakacieho radu. P4 bude pokračovať v exekúcii.
Krok 3) V čase = 3 proces P4 dokončí svoje vykonávanie. Porovnáva sa čas roztrhnutia P3 a P1. Proces P1 sa vykoná, pretože jeho čas roztrhnutia je menší v porovnaní s P3.
Krok 4) V čase = 4 dorazí proces P5 a je pridaný do čakacieho radu. P1 bude pokračovať v exekúcii.
Krok 5) V čase = 5 dorazí proces P2 a je pridaný do čakacieho radu. P1 bude pokračovať v exekúcii.
Krok 6) V čase = 9 proces P1 ukončí svoje vykonávanie. Porovnáva sa čas roztrhnutia P3, P5 a P2. Proces P2 sa vykoná, pretože jeho čas roztrhnutia je najnižší.
Krok 7) V čase = 10 sa vykonáva P2 a P3 a P5 sú v čakacej rade.
Krok 8) V čase = 11 proces P2 ukončí svoje vykonávanie. Porovnáva sa čas roztrhnutia P3 a P5. Proces P5 sa vykoná, pretože jeho čas roztrhnutia je nižší.
Krok 9) V čase = 15 proces P5 ukončí svoje vykonávanie.
Krok 10) V čase = 23 proces P3 dokončí svoje vykonávanie.
Krok 11) Vypočítajme priemernú dobu čakania pre vyššie uvedený prí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
Príklad preventívneho plánovania
Zvážte to pri nasledujúcich troch procesoch v Round-robin
Procesný front | Čas prasknutia |
P1 | 4 |
P2 | 3 |
P3 | 5 |
Krok 1) Vykonanie sa začína procesom P1, ktorý má čas roztrhnutia 4. Tu sa každý proces vykonáva po dobu 2 sekúnd. P2 a P3 sú stále v čakacej rade.
Krok 2 ) V čase = 2 sa na koniec frontu pridá P1 a P2 sa začne vykonávať
Krok 3) V čase = 4 je predinštalovaný P2 a pridaný na konci poradia. P3 sa začne vykonávať.
Krok 4) V čase = 6 je zabránený P3 a pridaný na konci frontu. P1 sa začne vykonávať.
Krok 5) V čase = 8 má P1 čas roztrhnutia 4. Dokončilo sa vykonávanie. P2 začne vykonávanie
Krok 6) P2 má čas roztrhnutia 3. Už sa vykonával pre 2 intervaly. V čase = 9 P2 dokončí vykonávanie. Potom P3 začne vykonávanie, kým sa nedokončí.
Krok 7) Vypočítajme priemernú dobu čakania pre vyššie uvedený príklad.
Wait timeP1= 0+ 4= 4P2= 2+4= 6P3= 4+3= 7
KĽÚČOVÉ ROZDIELY
- Pri preventívnom plánovaní je CPU alokovaná procesom na konkrétne časové obdobie a CPU, ktorá nie je preventívne plánovaná, je procesu alokovaná až do jej ukončenia.
- V preventívnom plánovaní sa úlohy prepínajú na základe priority, zatiaľ čo v preventívnom plánovaní nedochádza k žiadnemu prepínaniu.
- Preventívny algoritmus má réžiu prepínania procesu z pripraveného stavu do prevádzkového stavu, zatiaľ čo nepreventívne plánovanie takéto réžie prepínania nemá.
- Preventívne plánovanie je flexibilné, zatiaľ čo preventívne plánovanie je rigidné.