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í.
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:
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í:
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é):
Ú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á.
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ý.
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ů.