Termin przesłania rozwiązania przez moodle: 23.03.2014 23:59. Za każde rozpoczęte 12 godzin opóźnienia odejmujemy jeden punkt.
(i = 0 .. N-1) proces P(i) {
powtarzaj {
chce[i] = true;
czekaj, aż dla wszystkich k z [0..N-1] zachodzi !(chce[k] && we[k]);
we[i] = true;
jeśli dla pewnego k z [0..N-1] zachodzi chce[k] && !we[k], to wykonaj (*)
{
chce[i] = false;
czekaj, aż dla pewnego k z [0..N-1] zachodzi wy[k]; (**)
chce[i] = true;
};
wy[i] = true;
czekaj, aż dla wszystkich k z [i+1..N-1] zachodzi !we[k] || wy[k];
czekaj, aż dla wszystkich k z [0..i-1] zachodzi !we[k];
/* SEKCJA KRYTYCZNA */
wy[i] = false; we[i] = false; chce[i] = false; (***)
}
}
Intuicyjne znacznie zmiennych:
czekaj, aż dla wszystkich k z [0..N-1] zachodzi (!we[k] || wy[k]);
Zmodyfikuj protokół następująco (modyfikacja ta opisana jest w pracy [1]):
Uwagi i pytania proszę kierować do Sławka Lasoty. Ostatnia modyfikacja: 20/03/2014