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 porovnanie | Preemptive Scheduling | Nepreferatí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. |
hladovania | Ak 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. |
flexibilita | Preempčné plánovanie je flexibilné. | Nepreemptivne plánovanie je tuhé. |
náklady | Predbež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.
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.
Kľúčové rozdiely medzi preventívnym a neprednostným plánovaním
- 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 .
- 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.
- 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.
- 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.
- 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ý.
- 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.