Synchronizacja niskopoziomowa. Algorytm Dekkera (1)
• Algorytm Dekkera jest algorytmem synchronizacji dwóch procesów/wątków współbieżnych bez konieczności odwoływania się do gotowych narzędzi synchronizacyjnych
• Algorytm Dekkera sprowadza się do odpowiedniego zakodowania sekcji wejściowej i wyjściowej chroniących sekcję krytyczną
• Przy założeniu dwóch procesów wymaga 3 zmiennych współdzielonych
- czyja_koiej = (i,2). Zmienna pełni rolę arbitra rozstrzygającego,
który proces może wejść do sekcji krytycznej. Ustawienie inicjalne wartości zmiennej łamie symetrię pomiędzy procesami/wątkami i określa kolejność w jakiej będą one wykonywane
- dwuelementowa tablica flag k. Każdy z procesów ma dostęp do jednego pola tablicy. Pole jest ustawiane na true, gdy dany proces chce wejść do sekcji krytycznej. Inicjalnie flagi ustawione są na faise
• Każdy z procesów posiada swój identyfikator (np. identyfikator liczbowy)