zkouška 2008-01-08

GreedyX at 2008-02-08 18:29:30

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