Rozdiel medzi preventívnym a ne preventívnym plánovaním v operačných systémoch

Plánovanie procesora (alebo Plánovanie CPU) určuje, ktoré procesy sú priradené k CPU a odstránené z CPU na základe modelov plánovania, napr preemptivní a Nepreventívne plánovanie (taktiež známy ako Kooperatívne plánovanie).

Staršie systémy by mohli fungovať v jednoduchých samostatných režimoch, ale s narastajúcou potrebou pružných pružných systémov, ako aj virtualizácie, efektívne spravovanie viacerých procesov poskytuje rýchlu reakciu na všetky požiadavky na spracovanie úloh..

Plánovacie jednotky sa často označujú ako a úloha a úlohou plánovača je spravovať a spravovať tieto úlohy kedykoľvek je to potrebné; plánovač vyberie úlohu, ktorá má byť odstránená a priradená CPU na spracovanie, podľa použitého modelu plánovania.

Ako plánovač vie, ktoré úlohy sú prioritné?

Plánovač musí spustiť spravodlivý a efektívny výberový proces, pričom musí zohľadniť variabilné, dynamické spracovateľské požiadavky a čo najlepšie využiť cykly CPU..

Počas spracovania môžu byť úlohy v dvoch stavoch:

  1. V Burst CPU kde CPU vykonáva výpočty na spracovanie úlohy (perióda pre CPU Burst sa mení od úlohy k úlohe a od programu k programu).
  2. V an Burst vstupu / výstupu (I / O) čakanie na prijatie alebo odoslanie údajov zo systému.

Keď je CPU nečinný, plánovač načíta Pripravený front, a vyberie ďalšiu úlohu, ktorá sa má spustiť. Potom je to odosielateľ ktorý dáva vybranej úlohe kontrolu nad CPU, takže musí byť rýchly! Kedykoľvek čas, ktorý dispečer zaberie, je známy ako Latencia odoslania.

Definujú sa rôzne štruktúry a vlastné parametre Pripravený front, ako aj niekoľko metód, ktoré možno použiť na riadenie zložitosti procesu plánovania.

Vo všeobecnosti ide o optimalizáciu a maximalizáciu využitia CPU, priepustnosti atď.

Plánovač sa musí rozhodnúť v jednej z nasledujúcich etáp:

  1. Keď sa úloha zmení z a beh do a Čakajúci štát (napríklad čakanie počas žiadosti I / O).
  2. Keď sa úloha zmení z beh na pripravený (napríklad reakcia na prerušenie).
  3. Keď sa úloha zmení z čakania na pripravený (napríklad žiadosť o V / V je dokončená).
  4. Keď úloha

Nová úloha musí byť vybraná, ak dôjde k etape 1 alebo 4, aby sa zabezpečilo plné využitie CPU, a vo fázach 2 a 3 môže úloha pokračovať v prevádzke alebo je vybraná nová..

Po pochopení spôsobu spracovania úlohy sa pozrime na dva modely plánovania, ktoré sa zaoberajú prerušeniami CPU.

Obaja majú podobné vlastnosti s úlohami, stavmi úloh, frontami a prioritami (statickými alebo dynamickými):

  • Nepreventívne plánovanie je, keď sa úloha spustí, kým sa nezastaví (dobrovoľne) alebo nedokončí. Systém Windows® mal neemprektívne plánovanie do systému Windows 3.x, potom sa zmenil na systém Preempive from Windows 95.
  • Preventívne plánovanie je miesto, kde môže byť úloha násilne prerušená prerušením CPU, na rozdiel od Non-Preempive, kde úloha beží, kým neuvoľní kontrolu CPU.

Nepreventívne plánovanie

Úlohy v rámci systému, ktorý nie je preventívny, budú prebiehať až do dokončenia.

Plánovač potom skontroluje stavy všetkých úloh a naplánuje ďalšiu úlohu s najvyššou prioritou pomocou pripravený štát.

V prípade nevyplývajúceho plánovania, akonáhle má nejaká úloha priradené k CPU, nemožno ju odobrať, aj keď krátke úlohy musia čakať na dokončenie dlhších úloh..

Riadenie plánovania vo všetkých úlohách je „spravodlivé“ a časy odozvy sú predvídateľné, pretože úlohy s vysokou prioritou nemôžu narážať čakajúce úlohy ďalej v rade..

Plánovač zabezpečí, aby každá úloha získala svoj podiel CPU, čím sa vyhne akémukoľvek oneskoreniu pri akejkoľvek úlohe. „Množstvo času“ pridelené CPU nemusí byť nevyhnutne rovnaké, pretože závisí od toho, ako dlho trvá dokončenie úlohy.

Preventívne plánovanie

Tento model plánovania umožňuje prerušenie úloh - na rozdiel od neplánovaného plánovania, ktoré má prístup „run-to-dokončení“..

Prerušenia, ktoré by mohli byť iniciované z externých hovorov, vyvolávajú plánovač, aby pozastavil bežiacu úlohu, aby spravoval ďalšiu úlohu s vyššou prioritou - takže je možné vopred vylúčiť riadenie CPU..

Úloha s najvyššou prioritou v a pripravený stav, ktorý umožňuje rýchlu reakciu na udalosti v reálnom čase.

Niektoré z nevýhod preventívneho plánovania zahŕňajú zvýšenie režijných nákladov na zdroje pri používaní prerušení a môžu sa vyskytnúť problémy s dvoma úlohami zdieľania údajov, pretože jedna môže byť prerušená pri aktualizácii štruktúr zdieľaných údajov a mohla by negatívne ovplyvniť integritu údajov..

Na druhej strane je praktické pozastaviť úlohu na spravovanie inej úlohy, ktorá by mohla byť kritická.

V súhrne

Je možné definovať mnoho odchýlok a závislosti v rôznych politikách, napríklad pomocou a „Zásady okrúhleho Robin [i]“ kde je každá úloha (s rovnakou prioritou) vykonaná raz a potom umiestnená na koniec frontu, pre ďalší cyklus.

Medzi ďalšie politiky patrí Prvý dnu prvý von, Najkratšia-Job-First, Najkratšia-Job-Next, Najkratší zostávajúci čas, atď.

Analýza historických údajov môže poskytnúť informácie o aspektoch, ako je rýchlosť, akou prichádzajú nové úlohy, CPU a I / O bursts atď., Takže distribúcie pravdepodobnosti môžu vypočítať charakteristiky čakacích dôb úloh, a tak správcom vyzvať príslušné údaje, aby definovali modely plánovania..