Problém kritické sekce
Pokud procesy sdílejí společnou paměť, kterou čtou a zapisují, může nastat časový souběh. Hledání časových souběhů v reálných programech není jednoduché, protože časový souběh se obvykle projevuje nedeterministicky a programy běží po většinu času bez problémů.
Problém kritické sekce nastává v situacích, kdy: - Procesy soupeří o zdroj - Ke zdroji nemůže přistupovat více než jeden proces v daném čase - Každý proces může existovat bez ostatních, interakce je nutná pouze pro zajištění serializace přistupu ke zdroji
Řešení - časový souběh by nenastal, pokud by čtení+modifikace proběhli atomicky, tj. jako jedna nedělitelná operace. Zařídit HW většinou není praktické. SW řešení - v jednom okamžiku dovolíme číst a zapisovat společná data pouze jednomu procesu.
Dobré řešení musí mít 3 vlastnosti: 1. Vzájemné vyloučení: žádné 2 procesy nesmějí být současně uvnitř své kritické sekce 2. Proces běžící mimo svou kritickou sekci nesmí blokovat jiné procesy 3. Žádný proces nesmí na vstup do své kritické sekce čekat nekonečně dlouho