zkouška 2008-01-08

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.
GreedyX
Matfyz(ák|ačka) level I
Příspěvky: 8
Registrován: 15. 6. 2006 18:36
Typ studia: Informatika Bc.

zkouška 2008-01-08

Příspěvek od GreedyX »

zhruba takhle jsem si poznamenal zadání

program 2 parametry
cislo, filename
cislo je rozmer pole
soubor - matice cisel
121

345

138


nemusi se kontrolovat, jak to vypada
-> do dvojrozmerneho pole

1) spustit n vlaken, kazde vlanko zpracuje jeden radek
-spocist celociselny prumer na radku a nahradit cisla prumerem
-upspat se na bariere
-posledni vlakno probude vsechny ostatni

2) kazde vlakno dostane sloupec, secte cisla, cislo na pozici sveho indexu pricte dvakrat
-uspat se na bariere
-to same co u jedniciky
-vypsat ten soucet

vypisovat :
vytvoreni vlakna
kazde vlakno ma id(ID)
prichod na barieru
probouzeni z bariery
specialni hlaska pro posledni vlakno na bariere (co probouzi ostatni)



A jak se to udela?
viz. http://wiki.matfyz.cz/wiki/SWI015_P%C5%99%C3%ADklady úplně dole + trocha triviálního kódění

pozn. místo
for (i = 1; i < NTHREADS; i++) pthread_cond_signal(ts->cv);
je lepší použít
pthread_cond_broadcast(ts->cv);

Hodně štěstí na dalších termínech.

:wq
Je těžké být debilem, konkurence je příliš velká...
Odpovědět

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