Algorytm Petersona
Z Wikipedii
Algorytm Petersona jest algorytmem stosowanym w programowaniu współbieżnym dla realizacji sekcji krytycznych (mutex), który pozwala na dostęp dwóch procesów do zasobów niepodzielnych bez konfliktu przy użyciu współdzielonej pamięci dla komunikacji. Z punktu widzenia sprzętu algorytm Petersona zazwyczaj nie jest potrzebny aby uzyskać atomowość dostępu. Pamięci pozwalające na niemal jednoczesny odczyt i zapis Dual-ported RAM (DPRAM) posiadają mechanizmy sprzętowe pozwalające na poprawny odczyt/zapis przy wielodostępie.
chce1 : boolean := false; chce2 : boolean := false; kto_czeka : 1..2 := 1; P1: chce1 := true; P2: chce2 := true; kto_czeka := 1; kto_czeka := 2; while chce2 and (kto_czeka = 1) while chce1 and (kto_czeka = 2) do {nic}; do {nic}; { sekcja krytyczna } { sekcja krytyczna } chce1 := false; chce2 := false;
[edytuj] Linki zewnętrzne
http://www.algorytm.org/index.php?option=com_content&task=view&id=21&Itemid=28 http://wazniak.mimuw.edu.pl/index.php?title=Programowanie_wsp%C3%B3%C5%82bie%C5%BCne_i_rozproszone/PWR_%C4%86wiczenia_1