Tech moves fast! Stay ahead of the curve with Techopedia!
Join nearly 200,000 subscribers who receive actionable tech insights from Techopedia.
Peterson's algorithm is a concurrent programming algorithm developed by Gary L. Peterson in a 1981 paper. It is known as a simple algorithm when compared to others. Peterson proved the algorithm using both the 2-process case and the N-process case.
Peterson's algorithm is used for mutual exclusion and allows two processes to share a single-use resource without conflict. It uses only shared memory for communication. Peterson's formula originally worked only with two processes, but has since been generalized for more than two.
Just as in Dekker's algorithm, turn variables (turn) and status flags (flag) are conditions or variables that are used in Peterson's algorithm. Because of these two conditions, and because of waiting for a turn only if other flags are set, the need to clear and reset flags is avoided. After a flag is set, the turn is immediately given away when using Peterson's algorithm.
Mutual exclusion, no progress and bounded waiting are three essential criteria used to solve the critical section problem when using the algorithm.