Kritická sekce (též kritický kód, ) 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.
Popis činnosti 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 z kritické sekce, například semafor nebo mutex.
Problém kritické sekce Při řízení přístupu do kritické sekce musí být dodrženy tři podmínky:
výhradní přístup – vstup do kritické sekce je povolen nejvýše jednomu procesu vývoj – rozhodování o vstupu je pouze na procesech, které o něj usilují 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
Související články Synchronizační primitivum Semafor (synchronizace)
Kategorie:Synchronizace