Algorytm Petersona

Algorytm Petersona

Algorytm Petersona to metoda przetwarzania współbieżnego, która gwarantuje wzajemne wykluczenie, pozwalając dwóm procesom lub wątkom na konfliktowe korzystanie z współdzielonego zasobu (sekcji krytycznej). Został on stworzony przez Gary’ego L. Petersona w 1981 roku. Algorytm ten zapewnia wzajemne wykluczanie jedynie dla dwóch procesów, jednak istnieje jego uogólniona wersja, znana jako algorytm piekarniany, przeznaczona do użycia z większą liczbą procesów.

Algorytm

Każdemu wątkowi przypisane jest pole w tablicy zainteresowany, które ustawiane jest na true, gdy wątek pragnie wejść do sekcji krytycznej. Dodatkowo, używane jest pole czyja_kolej, które przechowuje informacje o tym, który proces ma pierwszeństwo w dostępie do sekcji krytycznej. Wątek P0 uzyskuje dostęp do sekcji krytycznej, jeśli P1 nie jest zainteresowany jej wykonaniem lub ustępuje pierwszeństwa wstępu P0.

Algorytm Petersona gwarantuje wzajemne wykluczanie, eliminując zagłodzenie oraz zakleszczenie.

Przypisy

Zobacz też

  • Algorytm Dekkera

Linki zewnętrzne

Algorytm Petersona na stronie MIMUW

Przeczytaj u przyjaciół: