Odporúčaná, 2024

Redakcia Choice

Rozdiel medzi preventívnym a nepreferenčným plánovaním v systéme OS

Je zodpovednosťou plánovača CPU prideliť proces CPU vždy, keď je procesor v nečinnom stave. Plánovač CPU vyberie proces z hotovej fronty a prideľuje proces CPU. Plánovanie, ktoré sa uskutoční vtedy, keď sa proces prepne z bežiaceho stavu do stavu pripraveného alebo z stavu čakania na pripravený stav, sa nazýva Preemptive Scheduling . Na rukách plánovanie, ku ktorému dochádza vtedy, keď sa proces ukončí alebo sa prepne z chodu na čakanie na stav tohto typu plánovania CPU, sa nazýva Nepreemptivne plánovanie . Základný rozdiel medzi preventívnym a neprednostným plánovaním spočíva v ich samotnom názve. To je predbežné plánovanie, ktoré je predbežné; procesy môžu byť naplánované. V Nepreemptivnom plánovaní nie je možné naplánovať procesy.

Prediskutujte rozdiely medzi predbežným aj neprednostným plánovaním pomocou stručnej tabuľky porovnávania.

Porovnávacia tabuľka

Základ pre porovnaniePreemptive SchedulingNepreferatívne plánovanie
základnéZdroje sú pridelené procesu na obmedzený čas.Akonáhle sú zdroje pridelené procesu, proces ho drží, kým nedokončí jeho čas roztrhnutia alebo sa prepne do čakacieho stavu.
PrerušiťProces môže byť medzičasom prerušený.Proces nemožno prerušiť, kým sa nezastaví alebo neprejde na čakací stav.
hladovaniaAk proces s vysokou prioritou často prichádza do fronty pripravenosti, proces s nízkou prioritou môže skončiť hladom.Ak proces s dlhým časom roztrhnutia prebieha procesorom CPU, ďalší proces s menším časom roztrhnutia CPU môže zomierať.
hornýPredbežné plánovanie má režijné náklady na plánovanie procesov.Nezabezpečovacie plánovanie nemá režijné náklady.
flexibilitaPreempčné plánovanie je flexibilné.Nepreemptivne plánovanie je tuhé.
nákladyPredbežné plánovanie je spojené s nákladmi.Nepreemptivné plánovanie nie je asociačné.

Definícia predbežného plánovania

Predbežné plánovanie je taký, ktorý sa dá vykonať za okolností, keď sa proces prepne z bežiaceho stavu do stavu pripraveného alebo z čakacieho stavu na pripravený stav . Tu sú zdroje (cykly CPU) pridelené procesu na obmedzený čas a potom sa odoberú a proces sa znova vráti do frontu pripravených znova, ak ešte stále zostáva čas trvania prasknutia CPU. Proces zostáva v čakacom rade, kým sa nestane ďalšou šancou na vykonanie.

Ak proces s vysokou prioritou dorazí do fronty pripravenosti, nemusí čakať na to, aby sa súčasný proces skončil s časom roztrhnutia. Namiesto toho je súčasný proces prerušený uprostred vykonávania a je umiestnený do fronty pripravenosti, kým proces s vysokou prioritou nevyužíva cykly procesora. Týmto spôsobom každý proces v fronte na prípravu dostane určitý čas na spustenie procesora. Znemožňuje flexibilné plánovanie, ale zvyšuje režijné náklady spojené s prepínaním procesu z bežiaceho stavu na pripravený stav a vertikálne.

Algoritmy, ktoré pracujú na predbežnom plánovaní, sú Round Robin. Najskôr najskoršie pracovné miesto (SJF) a prioritné plánovanie môžu alebo nemusia byť predmetom predbežného plánovania.

Vezmime si príklad Preemptive Scheduling, pozri obrázok nižšie. Máme štyri procesy P0, P1, P2, P3. Z toho P2 príde v čase 0. Takže procesor je priradený k procesu P2, pretože v rade nie je žiadny iný proces. Medzitým P2 prebiehal, P3 príde v čase 1, teraz zostávajúci čas pre proces P2 (5 milisekúnd), ktorý je väčší ako čas požadovaný P3 (4 milli-sec). Takže procesor je priradený procesoru P3.

Postupne P3 pribehlo, proces P1 príde v čase 2. Teraz zostávajúci čas pre P3 (3 milisekundy) je menší ako čas potrebný procesmi P1 (4 milisekundy) a P2 (5 milisekúnd). Takže P3 je dovolené pokračovať. Zatiaľ čo P3 pokračuje, proces P0 príde v čase 3, teraz zostávajúci čas pre P3 (2 milisekundy) sa rovná času požadovanému P0 (2 milisekundy). Takže P3 pokračuje a po ukončení P3 je procesor priradený k P0, pretože má menej času na roztrhnutie než iné. Po ukončení P0 je procesor priradený k P1 a potom k P2.

Definícia nepredpokladaného plánovania

Nepreemptivné plánovanie je taký, ktorý sa dá použiť za okolností, keď sa proces ukončí, alebo proces sa prepne z režimu spustenia do čakania . Pri neprepracovanom plánovaní, akonáhle sú zdroje (CPU) priradené procesu, proces drží CPU, kým sa nedokončí alebo nedosiahne čakací stav.

Na rozdiel od predbežného plánovania neplánované plánovanie neprerušuje proces, ktorý beží procesorom v strede výkonu. Namiesto toho čaká, kým proces dokončí čas burstovania CPU a potom môže prideliť procesor do iného procesu.

V Nepreemptivnom plánovaní, ak sa proces s dlhým časom burstovania CPU vykoná, potom druhý proces bude musieť počkať dlhý čas, čo zvyšuje priemernú čakaciu dobu procesov vo fronte. Nepreemptivné plánovanie však nemá žiadne režijné náklady na prepínanie procesov z hotovej fronty na procesor, ale robia plánovanie rigidné, pretože proces vykonávania nie je dokonca predpísaný pre proces s vyššou prioritou.

Vyriešme uvedený príklad plánovania nepreemptivným spôsobom. Spočiatku proces P2 príde v čase 0, takže CPU je priradený k procesu P2, ktorý sa vykoná v priebehu 6 milisekúnd. Medzi všetkými procesmi, tj P0, P1, P3, prichádza do fronty ready. Ale všetci čakajú, kým proces P2 nedokončí čas burstovania CPU. Potom proces, ktorý príde po P2, tj P3 je potom pridelené CPU až do dokončenia je čas prasknutia. Podobne potom vykoná P1 a procesor je neskôr daný procesom P0.

Kľúčové rozdiely medzi preventívnym a neprednostným plánovaním

  1. Základný rozdiel medzi preventívnym a nepredempčným plánovaním spočíva v tom, že v predbežnom plánovaní je procesor priradený procesom na obmedzený čas. Zatiaľ čo v nepreemptivnom plánovaní je procesor priradený procesu až do jeho ukončenia alebo prepnutia do čakacieho stavu .
  2. Vykonávací proces v predbežnom plánovaní je prerušený uprostred vykonávania, zatiaľ čo vykonávací proces v neprepracovnom plánovaní nie je prerušený uprostred vykonávania.
  3. Preemptive Scheduling má režijné náklady na prepínanie procesu z pripraveného stavu do bežiaceho stavu, vertikálnej verzie a udržiavania frontu pripravenosti. Na druhej strane neprepracované plánovanie nemá žiadnu réžiu prechodu procesu z bežiaceho stavu do stavu pripraveného.
  4. V predbežnom plánovaní, ak proces s vysokou prioritou často prichádza do fronty pripravenosti, potom proces s nízkou prioritou musí čakať dlho a možno bude musieť hladovať. Na druhej strane, v neprepracovanom plánovaní, ak je procesor priradený k procesu s väčším časom roztrhnutia, procesy s malým časom roztrhnutia môžu mat hladovku.
  5. Predbežné plánovanie je pomerne flexibilné, pretože kritické procesy majú prístup k procesoru pri príchode do fronty pripravenosti bez ohľadu na to, aký proces sa práve vykonáva. Nepreemptivne plánovanie je tuhé, aj keď kritický proces prechádza do fronty pripraveného procesu, ktorý nie je narušený.
  6. Predbežné plánovanie je nákladovo asociatívne, pretože musí zachovať integritu zdieľaných údajov, čo nie je prípad nepreemptivného plánovania.

záver:

Nie je to tak, že predplatené plánovanie je lepšie ako nepredempčné plánovanie alebo vise-verse. Všetko závisí od toho, ako plánovanie minimalizuje priemernú čakaciu dobu procesov a maximalizuje využitie procesora.

Top