Advertisement
Guest User

Untitled

a guest
Dec 16th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. sem sTabM[m] = -1;
  2. sem sGotowe = -m;
  3. sem sTabN = -n;
  4.  
  5. //shared
  6. int min;
  7. int tabM[m];
  8.  
  9. //ilosc proc wyznacz_min
  10. int n;
  11.  
  12. //tablica lokalnych wynikow kazdego z proc
  13. int tabN[n];
  14.  
  15. void WYDRUK(void)
  16. {
  17.     P(sGotowe);
  18.     printf("min = %d\n", min);
  19. }
  20.  
  21. void WYZNACZ_MIN(int i)
  22. {
  23.     int localMin;
  24.     int localElements = m / n;
  25.     for ( int k = localElements * i; k < localElements * (i + 1); k++) {
  26.         P(tabM[k]);
  27.         if (tabM[k] < localMin) {
  28.             localMin = k;
  29.         }
  30.     }
  31.     tabN[i] = localMin;
  32.     V(sTabN);
  33.  
  34.     // znajdowanie min tabN - 1 raz wykonane przez 1 najszybszy proces
  35.     P(sTabN);
  36.     for (int i = 0; i < n; i++) {
  37.         if (tabN[i] < min) {
  38.             min = tabN[i];
  39.         }
  40.     }
  41.     V(sGotowe);
  42. }
  43.  
  44. void GENERUJ(void)
  45. {
  46.     for (int i = 0; i < m; i++) {
  47.         tab[i] = generuj_int();
  48.         V(tabM[i]);
  49.     }
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement