Prostředky pro synchronizaci procesů

Z FAV wiki
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(kategorizace)
Řádka 57: Řádka 57:
  
 
{{fav-kiv-bzinf}}
 
{{fav-kiv-bzinf}}
 +
 +
 +
[[Kategorie:fav-kiv-bzinf]]

Verze z 20. 2. 2014, 06:46

Zakázání přerušení

Řešení s aktivním čekáním Základní předpoklady o systému:

  1. Zápis a čtení ze společné datové oblasti jsou nedělitelné operace
  2. Kritické sekce nemohou mít přiřazenou prioritu
  3. Relativní rychlost procesů je neznámá
  4. Proces se může pozastavit mimo kritickou sekci

Průběžně se testuje, zra už může proces do kritické sekce vstoupit - plýtvání časem CPU


Petersonovo řešení


Spin-lock s instrukcí TSL

Většina současných počítačů má instrukci, která otestuje hodnotu a nastaví paměťové místo v jedné nedělitelné operaci (TSL - „Test and Set Lock“) - HW podpora


Další možnosti


Předávání zpráv - primitiva send a receive

  1. Čeká-li primitivum send na převzetí zprávy příjemcem, je blokující (synchronní). Ve většině systémů je neblokující.
  2. Pokud při zavolání recese není ve frontě žádná zpráva, může se recese buď zablokovat, nebo se může vrátit s chybou. Ve většině systémů je blokující.


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