Rozdíl mezi preventivním a ne-preventivním plánováním v operačních systémech

Plánování procesoru (nebo Plánování CPU) určuje, které procesy jsou přiřazeny a odebrány z CPU na základě plánovacích modelů, jako je Preventivní a Nepreemptivní plánování (také známý jako Kooperativní plánování).

Starší systémy by mohly fungovat v jednoduchých samostatných režimech, ale s rostoucí potřebou pružných systémů reagujících na flexibilitu, jakož i virtualizací, umožňuje efektivní správa více procesů rychle reagovat na všechny požadavky na zpracování úkolů..

Plánovací jednotky jsou často označovány jako a úkol a úkolem Plánovače je tyto úkoly spouštět a spravovat, kdykoli je to potřeba; plánovač vybere úkol, který má být odebrán a přiřazen CPU ke zpracování, podle použitého modelu plánování.

Jak plánovač ví, které úkoly jsou prioritou?

Plánovač musí spustit spravedlivý a efektivní výběrový proces, přičemž musí brát v úvahu proměnné, požadavky na dynamické zpracování a co nejvíce využívat cykly CPU.

Úlohy mohou být při zpracování ve dvou stavech:

  1. V Burst CPU kde CPU provádí výpočty pro zpracování úlohy (období pro CPU Burst se liší od úlohy k úkolu a od programu k programu).
  2. V a Burst vstupu / výstupu (I / O) čekání na přijetí nebo odeslání dat ze systému.

Když je CPU nečinný, plánovač načte Připravená fronta, a vybere další úlohu, která má být spuštěna. Pak je to Odesílatel který dává vybranému úkolu kontrolu nad CPU, takže musí být rychlý! Jakýkoli čas, který Dispečer zabere, se nazývá Odeslání latence.

Existují různé struktury a vlastní parametry pro definování Připravená fronta, stejně jako několik metod, které lze použít ke správě složitosti procesu plánování.

Obecně jde o optimalizaci a maximalizaci využití CPU, propustnosti atd.

Plánovač musí učinit rozhodnutí v jedné z následujících fází:

  1. Když se úloha změní z a Běh a Čekající stát (například čekání během žádosti I / O).
  2. Když se úloha změní z Běh na Připraveno (například reagovat na přerušení).
  3. Když se úloha změní z Čekání na Připraveno (například žádost o V / V je dokončena).
  4. Když Úkol

Nový úkol musí být vybrán, pokud dojde k fázi 1 nebo 4, aby bylo zajištěno plné využití procesoru, a v obou fázích 2 a 3 může být úloha spuštěna nebo je vybrána nová..

Po pochopení způsobu zpracování úlohy se podívejme na dva modely plánování, které se zabývají přerušením CPU.

Oba mají podobné funkce s úkoly, stavy úloh, fronty a priority (statické nebo dynamické):

  • Nepreemptivní plánování je, když se úloha spustí, dokud se nezastaví (dobrovolně) nebo nedokončí. Systém Windows® měl předběžné plánování do systému Windows 3.x, poté se změnil na systém předběžné z Windows 95.
  • Preventivní plánování je místo, kde může být úkol násilně přerušen přerušením CPU, na rozdíl od Non-Preemptive, kde úloha běží, dokud neuvolní kontrolu CPU.

Nepreemptivní plánování

Úkoly v systému, který neprochází preventivním řízením, budou spuštěny do dokončení.

Plánovač poté zkontroluje stavy všech úkolů a naplánuje další úkol s nejvyšší prioritou pomocí Připraveno Stát.

S nepředvolebním plánováním, jakmile má úkol přiřazeno k CPU, nelze jej odebrat, i když krátké úkoly musí čekat na dokončení delšího úkolu.

Správa plánování napříč všemi úkoly je „spravedlivá“ a doba odezvy je předvídatelná, protože úkoly s vysokou prioritou nemohou narážet na čekající úkoly dále ve frontě.

Plánovač zajišťuje, že každá úloha získá svůj podíl CPU, čímž se vyhne jakémukoli zpoždění při jakékoli úloze. „Množství času“ přidělené CPU nemusí být nutně stejné, protože závisí na tom, jak dlouho úkol trvá.

Preventivní plánování

Tento model plánování umožňuje přerušení úkolů - na rozdíl od předběžného plánování, které má přístup „run-to-dokončení“.

Přerušení, která by mohla být iniciována z externích hovorů, vyvolá Plánovač, aby pozastavil běžící úlohu, aby spravoval další úkol s vyšší prioritou - aby bylo možné předcházet řízení CPU.

Úkol s nejvyšší prioritou v a Připraveno stav je vykonán, což umožňuje rychlou reakci na události v reálném čase.

Některé z nevýhod preventivního plánování zahrnují zvýšení režijních nákladů na zdroje při používání přerušení a mohou nastat problémy se dvěma úkoly sdílení dat, protože jeden může být přerušen při aktualizaci struktur sdílených dat a mohl by negativně ovlivnit integritu dat.

Na druhé straně je praktické pozastavit úkol za účelem řízení jiného úkolu, který by mohl být kritický.

Celkem

Lze definovat mnoho variací a závislostí v různých politikách, například pomocí a „Zásady kulatého Robin [i]“ kde každý úkol (se stejnou prioritou) běží jednou a poté umístěn na konec fronty, pro další cyklus.

Mezi další politiky patří First-In-First-Out, Nejkratší-Job-First, Nejkratší-práce-další, Nejkratší zbývající čas, atd.

Analýza historických dat může poskytnout informace o aspektech, jako je rychlost, s jakou nové úkoly přicházejí, CPU a I / O bursts atd., Takže distribuce pravděpodobnosti mohou vypočítat charakteristiky čekacích časů úkolů, a tak správcům aktivovat příslušná data pro definování plánovacích modelů.