Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- sem sTabM[m] = -1;
- sem sGotowe = -m;
- sem sTabN = -n;
- //shared
- int min;
- int tabM[m];
- //ilosc proc wyznacz_min
- int n;
- //tablica lokalnych wynikow kazdego z proc
- int tabN[n];
- void WYDRUK(void)
- {
- P(sGotowe);
- printf("min = %d\n", min);
- }
- void WYZNACZ_MIN(int i)
- {
- int localMin;
- int localElements = m / n;
- for ( int k = localElements * i; k < localElements * (i + 1); k++) {
- P(tabM[k]);
- if (tabM[k] < localMin) {
- localMin = k;
- }
- }
- tabN[i] = localMin;
- V(sTabN);
- // znajdowanie min tabN - 1 raz wykonane przez 1 najszybszy proces
- P(sTabN);
- for (int i = 0; i < n; i++) {
- if (tabN[i] < min) {
- min = tabN[i];
- }
- }
- V(sGotowe);
- }
- void GENERUJ(void)
- {
- for (int i = 0; i < m; i++) {
- tab[i] = generuj_int();
- V(tabM[i]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement