Hledat:

Set-top-boxy Parfémy Krása Produkty pro zdraví Hodinky Elektro Šperky Nábytek Nářadí a zahrada Outdoor Počítače a notebooky
 

Plánování procesů

Plánování procesů (anglicky scheduling) je v informatice úkol jádra operačního systému, ve kterém je spuštěno více procesů najednou. Týká se tedy víceúlohových systémů podporujících multitasking, které využívají pseudoparalelismus. Plánování procesů řeší výběr, kterému následujícímu procesu bude přidělen procesor a proces tak poběží, přičemž výběr je závislý na prioritách jednotlivých procesů a algoritmu, kterým výběr proběhne.

Běžné operační systémy (pro desktopové počítače) vyžadují, aby byla při přidělování procesoru jednotlivým procesům zachována jistá míra spravedlnosti. Operační systém reálného času (anglicky real-time operating system) vyžadují, aby navíc byly splněny dodatečné podmínky, například aby výběr byl preciznější, deterministický a pracoval se zárukami.

Obsah

[editovat] Druhy plánování procesů

Operační systém může podporovat až 3 druhy plánování procesů [KOLÁŘ, 20]: krátkodobé (anglicky short-term), střednědobé (anglicky mid-term) a dlouhodobé (anglicky long-term). Název typu plánování vyjadřuje frekvenci, s jakou k ní dochází. Typy plánování též rozlišují, v jakém stavu procesu k němu dochází.

Podrobnější informace naleznete v článku Proces (počítač).

[editovat] Dlouhodobé plánování

Dlouhodobé plánování (anglicky long-term) se označuje též jako plánování úloh (anglicky job scheduling) je výběr, která úloha bude spuštěna. Má význam zejména u dávkového zpracování. Jeho účelem je naplánovat spouštění úloh tak, aby byl počítač maximálně využit, například vhodného mixu úloh, které jsou náročné na I/O nebo CPU. V současné době není obvykle u desktopových systémů implementován, avšak je velmi důležitý u operačních systémů reálného času, protože systém by v případě spuštění více procesů, než může bezpečně zvládnout, nemohl plnit garantované limity. [Stallings, 399]

[editovat] Střednědobé plánování

Střednědobé plánování (anglicky mid-term) používají systémy s virtuální pamětí. Jde o výběr, který blokovaný nebo připravený proces bude odsunut z vnitřní paměti na pevný disk, je-li vnitřní paměti nedostatek (anglicky swapping out a swapping in). Je chybou považovat stránkování za střednědobé plánování, protože v tomto případě se odkládá celý proces. Důvodem pro odložení procesu může být absence aktivity procesu, nízká priorita, časté výpadky stránek, odblokovaný proces, který již nečeká na systémové prostředky nebo alokace příliš velké části paměti, když je potřeba paměť pro jiné procesy. [Stallings, 396] [Stallings, 370]

[editovat] Krátkodobé plánování

Krátkodobé plánování (anglicky short-term) se označuje též jako plánování procesoru (anglicky CPU scheduling – viz další odstavec), při němž se vybírá, kterému z připravených procesů bude přidělen procesor. Používá se ve všech víceúlohových systémech.

[editovat] Plánování procesoru

Při plánování procesoru se v operačním systému plánovač (anglicky scheduler) rozhoduje, kterému procesu bude přidělen procesor, a tedy který proces v následujícím časovém úseku bude procesor počítače využívat pro svůj běh. K plánování procesoru dochází v následujících situacích (podrobnosti o stavech procesu viz článek o procesech):

  1. pokud některý běžící proces přejde do stavu blokovaný
  2. pokud některý proces skončí
  3. pokud je běžící proces převeden do stavu připravený
  4. pokud je některý proces převeden ze stavu čekající do stavu připravený

[editovat] Preemptivnost

Pokud k plánování procesoru dochází jen v prvních dvou výše uvedených případech, označujeme takový operační systém (resp. plánovač procesů) jako nepreemptivní. Jinak se jedná o preemptivní plánování procesoru. Čtvrtý případ přeplánování používá operační systém reálného času.

Preemptivní
U preemptivního plánování procesoru je operační systém kdykoliv schopen procesu odebrat CPU, tj. drží si absolutní kontrolu nad počítačem a všemi prostředky, které procesům přiděluje (CPU, operační paměť, I/O zařízení, …). Dochází k němu zpravidla po uplynutí časového kvanta určeného pro běh procesu a je vyvoláno přerušením od časovače. Do této kategorie patří například všechny 32bitové systémy pro IBM PC kompatibilní počítače (Windows NT, Linux, Mac OS X, …).
Nepreemptivní
U nepreemptivního plánování procesoru musí operační systém vyčkat, až mu proces nabídne přeplánování procesoru speciálním voláním služby operačního systému. Tj. nemůže násilně odebrat procesu přidělené systémové prostředky a nedrží tedy absolutní kontrolu nad počítačem [Stallings, 396]. Důvodem může být absence příslušných hardwarových možností procesoru (16bitové procesory x86) nebo nedostatečné využití schopností pokročilejšího procesoru operačním systémem (tj. systémy Microsoft Windows 3.x, avšak například OS/2 dokázal pokročilých schopností procesorů IA-32 využít).
Podrobnější informace naleznete v článku Preempce (informatika).

[editovat] Přepnutí kontextu

Ve víceúlohových systémech je obvykle k dispozici méně procesorů, než je procesů, které by měly zároveň běžet. Proto se u takových systémů využívá pseudoparalelismus, který umožňuje mít zdánlivě spuštěno zároveň více procesů. Procesy čekají ve frontě a postupně je jim na určitou dobu (tzv. časové kvantum) přidělován procesor. Je-li přepínání dostatečně rychlé, vzniká dojem, že procesy běží zároveň. K přepínání dochází zhruba 100 až 1000 krát za vteřinu (podle výkonu počítače nebo podle výše režie přepínání, kterou chceme obětovat ve prospěch plynulosti).

Při přepínání procesů je nutné, aby proces po opětovném spuštění pokračoval od stejného místa, ve kterém byl přerušen a aby v procesu až na časové zpoždění nebylo poznat, že k přerušení došlo. Z tohoto důvodu je nutné při přerušení vykonávání procesu (mezi dvěma libovolnými strojovými instrukcemi) uschovat kompletní stav procesoru a při opětovném přidělení procesoru stejnému procesu tento stav kompletně obnovit. Kompletní uložení stavu procesu označujeme jako uložení kontextu (anglicky context save) a obnovení kontextu (anglicky context restore). Při výměně procesů na procesoru dochází k uložení kontextu jednoho a obnovení kontextu druhého. Tuto činnost označujeme souhrnně jako změna kontextu (anglicky context switch).

Podrobnější informace naleznete v článku Změna kontextu.

[editovat] Tabulka popisu procesů (PCB)

Tabulka popisu procesů (anglicky process control block, zkratka PCB) je datová struktura v jádře operačního systému, která uchovává data potřebná k běhu procesu. Každý proces má svoji PCB, která je využívána při změně kontextu (anglicky context switch) k uložení stavu procesu.

Podrobnější informace naleznete v článku Process control block.

[editovat] Strategie plánování procesoru

Strategie použitá pro výběr, kterému z připravených procesů bude přidělen procesor, může zohledňovat různá kritéria [KOLÁŘ, 21]:

[editovat] Příklady strategií plánování procesoru

Podle toho, které z výše uvedených kritérií bere tvůrce strategie plánování procesoru v úvahu a jakou jim přikládá váhu, se používají (a nadále vznikají) různé strategie. Používají se nejen v operačních systémech pro rozdělení času procesoru mezi jednotlivé procesy a thready, ale i pro prioritní směrování síťového provozu v routerech. Hlavním úkolem strategie je zamezit stárnutí procesů (anglicky starvation) a zajistit spravedlivé rozdělení času procesoru.

[editovat] Literatura

 
Plánování procesů v jiných jazycích: Català, Deutsch, English, Español, Eesti, Français, Italiano, 日本語, 한국어, Nederlands, Polski, Português, Русский, Slovenščina, 中文
Tento článek je převzat z české wikipedie - otevřené encyklopedie, originální článek naleznete na adrese: „http://cs.wikipedia.org/wiki/Pl%C3%A1nov%C3%A1n%C3%AD_proces%C5%AF
Stránka byla naposledy upravena v Stránka byla naposledy editována 21. 11. 2008 v 11:09.
Veškerý text je dostupný za podmínek GNU Free Documentation License (Autorské právo pro podrobnosti).
Další služby: Portál | Katalog | Hledej | Zprávy | Počasí | Kurzy | Práce | Slovník | TV | Online hry | Java hry | SMS | Loga a melodie | Chat | Fórum | Kontakt | Set-top-boxy