Pseudokod - co oznacza taki zapis?

0

Witam. Mam problem ze zrozumieniem pewnego zapisu podanego w pseudokodzie:

(numer[j],j) < (numer[i],i)

Mógłby mi ktoś wyjaśnić, o co tu chodzi? Zapisałem to w ten sposób:

thread->number[k]<thread->number[i] && k<i

ale nie jestem pewien tego rozwiązania.

EDIT: Jednak ten zapis jest błędny. Synchronizacja nie działa. Zapomniałem wcześniej dołączyć cały pseudokod:

do {
wybieranie[i] = true;
numer[i] = max(numer[0], ..., numer[n-1]) + 1;
wybieranie[i] = false;
for (j = 0; j < n; j++){
while (wybieranie[j]); // czekaj
while ( numer[j] != 0 &&
(numer[j],j) < (numer[i],i) ); // czekaj
}
sekcja krytyczna
numer[i] = 0;
reszta
} while (1);
2

Masz na Wikipedii:

https://en.m.wikipedia.org/wiki/Lamport's_bakery_algorithm

To jest porownanie watkow.

0

Napisałem program, który w założeniu ma działać wg tego algorytmu. Niestety, z jakiejś przyczyny wartość zmiennej globalnej nie jest równa sumie przejść wszystkich wątków do sekcji krytycznej. Co może być nie tak?
Paczka z plikami źródłowymi.

1 użytkowników online, w tym zalogowanych: 0, gości: 1