Cvičení 1

Zápočtové podmínky

Viz stránky předmětu.

Průběh cvičení

Úkoly

  1. Ve svém oblíbeném programovacím jazyce implementujte sdílěný (globální) čítač (bez synchronizace) a ověřte, že řešení není funkční. Vytvořte funkci, která dle zadaného parametru spustí daný počet vláken. Každé vlákno inkrementuje čítač. K inkrementaci čítače použijte funkci, která:
    1. náhodný čas počká
    2. zkopíruje hodnotu z globálního čítače do jeho lokální kopie
    3. náhodný čas počká
    4. inkrementuje lokální kopii čítače
    5. náhodný čas počká
    6. uloží hodnotu z lokálního kopie do globálního čítače
  2. Promyslete, kde a proč vznikají chyby.