Univerzitet u Tuzli
Fakultet elektrotehnike
Operativni sistemi
Zadaća 3
Decembar 2011.
Problem 1
Potrebno je napisati program koji će omogućiti paralelno računanje suma nizova realnih brojeva.
Sabiranje jednog niza se odvija u jednoj niti. Za svaki niz kreirati posebnu nit za računanje sume. Za
realizaciju niti koristiti pthreadove. Funkcija koja će se koristiti za sve nizove je ista (naziv je
suma_niza), izvršavaće se u posebnoj niti za svaki niz i treba da na neki način prihvati tri parametra:
pokazivač na niz realnih brojeva čija suma se računa, broj elemenata niza i pokazivač na varijablu u
koju treba smjestiti sumu.
U glavnom programu definisati 3 realna niza, unijeti elemente, kreirati 3 niti koje će izvršiti računanje
sume za svaki niz posebno, te u glavnom programu ispisati sume na ekranu.
Da li je potrebno vršiti sinhronizaciju?
– Ako jeste, zašto jeste i koji ste mehanizam koristili?
– Ako nije, zašto nije?
Problem 2
Potrebno je napisati program koji će omogućiti paralelno računanje sume redova matrice na Linux
operativnom sistemu. Program nakon startanja zahtijeva unos matrice [A]nxm. Sumu svakog reda je
potrebno smjestiti u odgovarajući element niza [S]n. Za računanje sume jednog reda koristiti funkciju iz
prethodnog problema koja se izvršava u posebnoj niti. Kreirati potreban broj niti za računanje suma
redova. U glavnom programu ispisati rezultantni niz S.
Da li ste trebali modifikovati funkciju suma_niza u odnosu na Problem 1?
Koliko niti je potrebno kreirati?
Da li je potrebno vršiti sinhronizaciju niti?
– Ako jeste, zašto jeste i koji ste mehanizam koristili?
– Ako nije, zašto nije?
Problem 3
Potrebno je modifikovati program iz problema 2 tako da program računa sumu svih elemenata bez
korištenja pomoćnog niza, te ispisuje sumu na ekranu.
Da li ste trebali modifikovati funkciju suma_niza u odnosu na Problem 2?
Koliko niti je potrebno kreirati?
Da li je potrebno vršiti sinhronizaciju niti?
– Ako jeste, zašto jeste i koji ste mehanizam koristili?
– Ako nije, zašto nije?
Napomena: Program implementirati u C ili C++ programskom jeziku. Rok za izradu zadaće je
04.01.2012. godine.
Download

Zadaća 3 - Fakultet elektrotehnike