Správce operačního systému

Plánování úloh  je jedním z klíčových konceptů multitaskingu a multiprocesingu v operačních systémech pro obecné účely i v operačních systémech pracujících v reálném čase . Plánování spočívá v přiřazování priorit procesům ve frontě priorit . Programový kód, který provádí tuto úlohu, se nazývá plánovač ( přepínač úloh , plánovač ) . 

Nejdůležitějším cílem plánování úloh je využití procesoru na maximum. Propustnost  je počet procesů, které dokončí provádění za jednotku času. Doba čekání –  Doba, po kterou proces čeká ve frontě připravenosti. Doba odezvy  je doba, která uplyne od začátku požadavku do první odpovědi na požadavek.

Ve výpočetních prostředích v reálném čase , například na mobilních zařízeních určených pro automatické řízení v průmyslu (například robotika ), musí plánovač úloh zajistit, aby procesy byly zpracovávány ve stanovených časových intervalech (doba odezvy); to je rozhodující pro udržení správného provozu systému v reálném čase.

Typy plánovačů v operačních systémech

Operační systémy mohou obsahovat až tři různé typy plánovačů: dlouhodobý plánovač (nebo plánovač za běhu), střednědobý plánovač a krátkodobý plánovač (také známý jako dispečer ). Samotné názvy již popisují relativní frekvenci, s jakou plánovač plní své funkce.

Dlouhodobý plánovač

Dlouhodobý plánovač rozhoduje o tom, které úlohy nebo procesy budou přidány do fronty procesů připravených ke spuštění; to znamená, že když se proces pokusí spustit, dlouhodobý plánovač buď přidá nový proces do fronty připravených procesů (umožní jeho spuštění), nebo tuto akci odloží. Dlouhodobý plánovač tedy rozhoduje o tom, které procesy poběží souběžně, a tím řídí míru paralelismu a poměr mezi procesy náročnými na I/O a procesy náročnými na CPU. Stolní počítače obvykle nepoužívají dlouhodobý plánovač a umožňují automatické spouštění nových procesů. Tento plánovač je však velmi důležitý pro systémy pracující v reálném čase, protože pokud je systém přetížen paralelními procesy, může se doba odezvy systému prodloužit, než je požadováno, což je nepřijatelné.

Střednědobý plánovač

Ve všech systémech s virtuální pamětí střednědobý plánovač dočasně přesune (odlehčí) procesy z hlavní paměti do sekundární paměti (například na pevný disk) a naopak. Tyto akce se nazývají stránkování nebo swapování . Střednědobý plánovač se může rozhodnout vyměnit proces z hlavní paměti, pokud:

Proces se vrátí do hlavní paměti, když bude k dispozici požadované množství volné paměti nebo když se proces probudí (v takovém případě plánovač odloží jiný proces z hlavní paměti, aby uvolnil hlavní paměť).

V mnoha moderních systémech, které podporují mapování virtuálního adresního prostoru do sekundární paměti jiné než je stránkovací soubor, může střednědobý plánovač také hrát roli dlouhodobého plánovače, který s novými procesy zachází jako s procesy, které byly vyměněny z hlavní paměti. Tímto způsobem může systém načíst kód do hlavní paměti pouze tehdy, když jej proces potřebuje k provedení (toto se nazývá načítání na vyžádání nebo „ líné načítání “).

Krátkodobý plánovač

Plánovač na této úrovni rozhoduje o tom, které z připravených a načtených procesů poběží na CPU po přerušení (podle času, I/O operace, volání operačního systému nebo jiného signálu). Rozhodnutí na této úrovni je třeba činit velmi často (alespoň v každém časovém období). Plánovač také může nebo nemusí podporovat preemptivní multitasking (tj. být schopen přerušit provádění procesu).

Dispečer

Dispečer je další součástí plánovacího systému. Jedná se o modul, který přenáší řízení procesoru na proces, který byl vybrán na úrovni krátkodobého plánování. Mezi jeho úkoly patří přepnutí kontextu, přepnutí do uživatelského režimu a skok na správné místo v uživatelském programu pro spuštění nebo pokračování jeho provádění. Hlavním požadavkem na dispečera je rychlost, protože provádí každé přepnutí procesu.

Viz také