1. To rozwiązanie zapewnia wzajemne wykluczanie - nigdy dwa procesy nie znajdą się jednocześnie w sekcji krytycznej. Zapewnia to zmienna czyja >:ol ej określająca uprawnionego do wejścia do sekcji krytycznej.
2. To rozwiązanie nigdy nie doprowadza do blokady - aby w programie wystąpiła blokada procesy muszą nieskończenie długo testować wartość zmiennej czyja_kole j, przy czym warunek musi być stale fałszywy.
3. W tym rozwiązaniu nie może wystąpić zagłodzenie - jeden proces musi nieskończenie wiele razy wchodzić do sekcji krytycznej, podczas gdy drugi wciąż wykonuje swój protokół wstępny.
4. Niestety w przypadku braku współzawodnictwa to rozwiązanie może zawieść - gdy jeden z procesów utknie w swojej sekcji lokalnej, to drugi proces może wejść do sekcji krytycznej co najwyżej jeden raz. Pkt. 4 wyklucza przyjęcie tego rozwiązania.
5. Niestety oba procesy są zmuszane do pracy w tym samym tempie -
gdy jeden z procesów musi wchodzić bardzo często do sekcji krytycznej (np. co 1 sekundę) a drugi bardzo rzadko (np. raz na dobę), to takie rozwiązanie nie może być przyjęte. Naprzemienne przekazywanie prawa wejścia do sekcji krytycznej w takim przypadku wyklucza zadawalającą pracę programu. Podobnie może być w przypadku, gdy dwa procesy są wykonywane na różnych procesorach . Wtedy nawet zakładając jednakową liczbę instrukcji w każdym procesie, może dojść do sytuacji kiedy znaczne różnice obciążenia każdego z procesorów będą wypaczać działanie programu. Proces na mocniej obciążonym procesorze będzie blokował pracę procesu z mniej obciążonego procesora. Pkt. 5 wyklucza przyjęcie tego rozwiązania.
6. Technika programowania polegająca na jawnym przekazywaniu prawa do wykonywania się nazywana jest współprogramowaniem.
7. Protokół wstępny: linie 6-8,17-19 Protokół końcowy: linie 10, 21
Dziedziny zastosowań . Wzajemne wyklućzanie. 6