View difference between Paste ID: 9UEQcMTJ and mj7Ud5M1
SHOW: | | - or go back to the newest paste.
1-
sem sTabM[m] = -1;
1+
2-
sem sGotowe = -m;
2+
3-
sem sTabN = -n;
3+
4
5
//ilosc proc
6
int n;
7-
int tabM[m];
7+
8
void proces_P(intid_procesu)
9-
//ilosc proc wyznacz_min
9+
10
int x = generuj_int();
11
int minimum = MONITOR.znajdz_min(x, id_procesu);
12-
//tablica lokalnych wynikow kazdego z proc
12+
printf(”minimum = %d\n”, minimum);
13-
int tabN[n];
13+
14
15-
void WYDRUK(void)
15+
monitor MONITOR {
16
	private: 
17-
	P(sGotowe);
17+
		int num = 0;
18-
	printf("min = %d\n", min);
18+
		int min;
19
		cond allDone;
20
	public: 
21-
void WYZNACZ_MIN(int i)
21+
		int znajdz_min(x, idp){
22
			if (num = 0) {
23-
	int localMin;
23+
				min = x;
24-
	int localElements = m / n; 
24+
			}
25-
	for ( int k = localElements * i; k < localElements * (i + 1); k++) {
25+
			else {
26-
		P(tabM[k]);
26+
					if (x < min) {
27-
		if (tabM[k] < localMin) {
27+
						min = x;
28-
			localMin = k;
28+
					}	
29
			}
30-
	}
30+
			if (num < n - 1){
31-
	tabN[i] = localMin;
31+
				num++;
32-
	V(sTabN);
32+
				wait(allDone);
33
			}
34-
	// znajdowanie min tabN - 1 raz wykonane przez 1 najszybszy proces 
34+
			signal(allDone);
35-
	P(sTabN);
35+
			return min;
36-
	for (int i = 0; i < n; i++) {
36+
37-
		if (tabN[i] < min) {
37+