Kritická sekce

From Wikipedia, the free encyclopedia

Remove ads

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]

Remove ads

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.

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

Problém kritické sekce

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).

Remove ads

Reference

Související články

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads