Preemptivní a nepřeberatelné plánování v operačních systémech

Anonim

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 například Preventivní a Nepreemptivní plánování (také známý jako Kooperativní plánování).

Starší systémy by mohly pracovat v jednoduchých samostatných režimech, ale s rostoucí potřebou pružných a flexibilních systémů, stejně jako virtualizace, umožňuje efektivní správu vícenásobného zpracování rychle reagovat na všechny požadavky na zpracování úloh.

Plánovací jednotky jsou často označovány jako a úkol a je úkolem Plánovače spouštět a spravovat tyto úkoly vždy, když je to nutné; Plánovač vybírá úlohu, která má být odebrána a přidělena CPU ke zpracování, podle použitého modelu plánování.

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

Plánovač musí spravovat spravedlivý a efektivní proces výběru, s přihlédnutím k proměnným, dynamickým požadavkům na zpracování a maximálnímu využití cyklů CPU.

Úkoly mohou být ve zpracování ve dvou stavech:

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

Pokud je procesor nečinný, čte program Plánovač Ready queue, a vybírá další úkol, který má být spuštěn. Pak je to Odesílatel který dává vybranou úlohu řízení CPU, takže musí být rychlé! Kdykoli je Dispečer obsazen, je známo jako Latexita odeslání.

Existují různé struktury a vlastní parametry pro definování Ready queue, stejně jako několik metod, které lze použít k řízení složitosti procesu plánování.

Obecně je jeho optimalizace a maximalizace využití CPU, propustnosti apod.

Plánovač musí rozhodnout během jedné z následujících fází:

  1. Při změně úlohy z a Běh do a Čekací stav (například při čekání na žádost I / O).
  2. Při změně úlohy z Běh na Připraveno (například reagovat na přerušení).
  3. Při změně úlohy z Čekání na Připraveno (například je dokončena žádost I / O).
  4. Když Úkol

Nová úloha musí být zvolena, jestliže stadium 1 nebo 4 zajistí plné využití procesoru a v obou fázích 2 a 3 může úloha pokračovat v běhu nebo je vybrána nová.

Po pochopení způsobu zpracování úkolu se podíváme na dva modely plánování, které se zabývají přerušeními procesoru.

Obě funkce mají podobné vlastnosti jako úkoly, úlohy, fronty a priority (statické nebo dynamické):

  • Nepreemptivní plánování je úloha běží, dokud se nezastaví (dobrovolně) nebo dokončí. Systém Windows® měl nepreemptivní plánování až do Windows 3.x, po kterém se změnil na Preemptive z Windows 95.
  • Preemptivní plánování je místo, kde úloha může být násilně pozastavena přerušením procesoru, na rozdíl od Non-Preemptive, kde úloha běží, dokud neuvolní kontrolu nad CPU.

Nepreemptivní plánování

Úkoly v systému Non-Preemptive budou spuštěny, dokud nebudou dokončeny.

Plánovač pak kontroluje stavy všech úloh a naplánuje úlohu s nejvyšší prioritou a Připraveno Stát.

Při neplánovaném plánování, jakmile úloha má přiřazení CPU, nemůže být odebrána, i když krátké úkoly musí čekat na dokončení delších úkolů.

Řízení plánování všech úkolů je "spravedlivé" a časy reakce jsou předvídatelné, protože úkoly s vysokou prioritou nemohou narazit na čekající úlohy dále po frontu.

Plánovač zajišťuje, že každý úkol získá svůj "podíl na procesoru, čímž se vyhne jakémukoli zpoždění s jakýmkoli úkolem. "Doba" přidělená CPU nemusí být nutně stejná, protože záleží na tom, jak dlouho má úkol dokončit.

Preemptivní plánování

Tento plánovací plán umožňuje přerušit úkoly - na rozdíl od Nepreemptive Scheduling, který má přístup "běh k dokončení".

Přerušení, které lze iniciovat z externích volání, vyvolá Plánovač k pozastavení běžící úlohy při správě jiné úlohy s vyšší prioritou - takže může být předem vyloučeno řízení CPU.

Úloha s nejvyšší prioritou v a Připraveno stav, který umožňuje rychlou reakci na události v reálném čase.

Některé nevýhody s Preemptive Scheduling zahrnují zvýšení režijních nákladů na prostředky při použití přerušení a problémy mohou nastat při dvou úkolech sdílení dat, protože jeden může být přerušený při aktualizaci sdílených datových struktur a může negativně ovlivnit integritu dat.

Na druhou stranu je praktické, aby bylo možné pozastavit úkol, aby spravoval jiný, který by mohl být kritický.

Celkem

Můžeme definovat mnoho odchylek a závislostí v různých politikách, jako například použití a "Politika Round Robin [i]" kde každý úkol (se stejnou prioritou) běží jednou a pak umístěn na konec fronty pro další cyklus.

Další zásady zahrnují Nejprve v první chvíli, Nejkratší úloha - první, Nejkratší úloha-Další, Nejkratší zbývající čas, atd.

Analýza historických dat může poskytnout informace o aspektech, jako je rychlost, s jakou přijíždějí nové úkoly, CPU a I / O Bursts atd., Takže rozdělení pravděpodobnosti dokáže vypočítat charakteristiky čekacích dob, čímž vyzbrojí administrátorům příslušná data pro definování plánovacích modelů.