Problém kritické sekce

Z FAV wiki
Verze z 8. 8. 2011, 15:22; Tester (diskuse | příspěvky)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Přejít na: navigace, hledání

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

Osobní nástroje
Jmenné prostory
Varianty
Akce
Navigace
Nástroje