Problém kritické sekce

Z FAV wiki
Přejít na: navigace, hledání

[editovat] Časový souběh

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

Příklad - Přístup do souboru

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

[editovat] Kritická sekce

= místo programu, kde je prováděn přístup ke společným datům

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