O algoritmo de Peterson é um algoritmo de programação concorrente para exclusão mútua, que permite a dois ou mais processos ou subprocessos compartilharem um recurso sem conflitos, utilizando apenas memória compartilhada para a comunicação. Ele foi formulado por Gary L. Peterson em 1981.G. L. Peterson: "Myths About the Mutual Exclusion Problem", Information Processing Letters 12(3) 1981, 115–116 Embora a formulação original de Peterson funcionasse apenas com dois processos, o algoritmo pode ser estendido para mais processos.Conforme discutido em Operating Systems Review, Janeiro de 1990 ("Proof of a Mutual Exclusion Algorithm", M Hofri).
O algoritmo //flag é booleana; e turn é um inteiro flag = 0; flag = 0; turn;P0: flag = 1; turn = 1; while (flag == 1 && turn == 1)
// ocupado, espere
// parte crítica ... // fim da parte crítica flag = 0;P1: flag = 1; turn = 0; while (flag == 1 && turn == 0)
// ocupado, espere
// parte crítica ... // fim da parte crítica flag = 0;
Peterson Categoria:Computação concorrente