Zkouška - 17.2.2010

Programování v UNIXu. Cvičení probíhá v laboratoři UNIX a poskytuje posluchačům průpravu v programování v jazyce C v prostředí UNIX.
marxin
Matfyz(ák|ačka) level I
Příspěvky: 45
Registrován: 30. 1. 2008 13:24
Typ studia: Informatika Mgr.

Zkouška - 17.2.2010

Příspěvek od marxin »

./a.out <n> <m>
Úkolem je napsat program, který vytvoří n-týmů po m vláknech. Z main vlákna je náhodně vygenerováno číslo v intervalu 1..#týmů, a je odeslán broadcast na podmínkovou proměnnou, poté se probudí jedno vlákno týmu, jehož číslo main vlákno vybralo, vypíše o tom hlášku a vygeneruje číslo týmu, který se bude budit. Opět pomocí volání pthread_cond_broadcast se vzbudí jedno vlákno vybraného teamu a atd. dokud jsou nějaká vlákna.

Podmínky: pouze 1 mutex a 1 cond. proměnná
Vytvořit čítač vláken skupin, tedy např. [1,2,3] značí, že v 1. skupině je ještě 1 vlákno, ve 2. 2, atd...

Řešení není těžké, trochu jsem se zamotal do alokace dynamického pole s informacemi pro vlákna.
Přílohy
team.c
Zdrojový kód
(4.25 KiB) Staženo 296 x
Odpovědět

Zpět na „SWI015 Programování v Unixu“