Search
Na tomto cvičení byste si měli vyzkoušet jak vytvořit vlákno v jazyce C s využitím knihovny pthread a jak vlákna synchronizovat tak, aby nedošlo k poškození dat se kterými se pracuje z více vláken.
Pro toto cvičení budete potřebovat znalosti o tom
Potřebná teorie byla vyložena na přednášce, včetně ukázek použití funkcí knihovny pthread. Před cvičením je doporučeno podívat se na manuálové stránky potřebných funkcí, zejména
Implementujte vícevláknový program prod-cons splňující následující požadavky:
prod-cons
main()
argv[1]
sysconf(_SC_NPROCESSORS_ONLN)
scanf("%u %ms", ...)
malloc()
new
\n
Do odevzdávacího systému nahrajte svůj zdrojový kód a Makefile, který vygeneruje program prod-cons ve stejném adresáři jako Makefile. Program překládejte s přepínači -Wall a -g. Překladač nesmí generovat žádná varování.
-Wall
-g
Před uploadem do BRUTE tyto přepínače zase odstraňte, protože program pak díky pomalosti a paměťovým nárokům neprojde některými testy a navíc vygenerované kontroly nejsou kompatibilní s kontrolami, které provádí BRUTE.
Nastudujte si použití podmínkový proměnných a k tomu příslušné funkce v knihovně pthread: