Kritická sekce

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

Kritická sekce (též kritický kód, anglicky critical section) je v informatice nejmenší část zdrojového kódu, kde dochází k přístupu ke sdílenému prostředku (např. sdílená data, která označujeme jako kritická oblast), ke kterému nemohou současně přistupovat dva nebo více procesů či vláken. Programy, které usilují o vstup do kritické sekce, musí použít nějaké synchronizační primitivum, které má za úkol zajistit do kritické sekce exkluzivní přístup a zároveň konečnou dobu čekání na povolení ke vstupu.[1]

Popis činnosti[editovat | editovat zdroj]

Pokud je vykonáván kód kritické sekce, musí ostatní vlákna nebo procesy vyčkat. Proto je nutné použít nějaké synchronizační primitivum, které je vyvoláno při vstupu a následně též při výstupu a kritické sekce, například semafor nebo mutex.

Související informace naleznete také v článku Synchronizační primitivum.

Problém kritické sekce[editovat | editovat zdroj]

Při řízení přístupu do kritické sekce musí být dodrženy tři podmínky:[1]

  1. výhradní přístup – vstup do kritické sekce je povolen nejvýše jednomu procesu
  2. vývoj – rozhodování o vstupu je pouze na procesech, které o něj usilují
  3. omezené čekání – rozhodnutí o vstupu nesmí být pro některého čekajícího odkládáno do nekonečna

Při usilování o vstup do kritické sekce mohou procesy použít aktivní čekání (neustále se pokoušejí vstoupit do kritické sekce). Pro odstranění aktivního čekání jsou některá synchronizační primitiva rozšířena o frontu čekajících procesů (typicky např. semafory).

Reference[editovat | editovat zdroj]

  1. a b KOLÁŘ, Petr. Operační systémy [online]. Liberec: 2005-02-01, [cit. 2010-05-27]. S. 28–33. Dostupné online.  

Související články[editovat | editovat zdroj]